Sample Systems Manager Document for Deploying a Package to AWS
Below is a sample Systems Management document that can be used as the basis to create a new document to deploy a Cloudhouse Alchemy Compatibility Package to Amazon Web Services (AWS).
{
"schemaVersion": "2.2",
"description": "Execute scripts stored in a remote location. The following remote locations are currently supported: GitHub (public and private) and Amazon S3 (S3). The following script types are currently supported: #! support on Linux and file associations on Windows.",
"parameters": {
"sourceType": {
"description": "(Required) Specify the source type; either S3 or GitHub.",
"type": "String",
"allowedValues": [
"GitHub",
"S3"
]
},
"sourceInfo": {
"description": "(Required) Specify the information required to access the resource from the source. If source type is GitHub, then you can specify any of the following: 'owner', 'repository', 'path', 'getOptions', 'tokenInfo'. If source type is S3, then you can specify 'path'.",
"type": "StringMap",
"displayType": "textarea",
"default": {}
},
"sourceZIP": {
"description": "(Required) Specify the information required to access the ZIP from the source. If source type is GitHub, then you can specify any of the following: 'owner', 'repository', 'path', 'getOptions', 'tokenInfo'. If source type is S3, then you can specify 'path'.",
"type": "StringMap",
"displayType": "textarea",
"default": {}
},
"commandLine": {
"description": "(Required) Specify the command line to be executed. The following formats of commands can be run: 'DeployZippedPackage.ps1 -sourcezip PackageName.zip -deploycmd Cloudhouse.Container.Deployment.exe -deployargs '/deploydir c:\\programdata /deploytype user /acceptEULA'",
"type": "String",
"default": ""
},
"workingDirectory": {
"type": "String",
"default": "c:\\temp",
"description": "(Optional) The path where the content will be downloaded and executed from on your instance.",
"maxChars": 4096
},
"executionTimeout": {
"description": "(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 1800 (30 mins). Maximum is 28800 (8 hours).",
"type": "String",
"default": "1800",
"allowedPattern": "([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9]{1,3})|(28[0-7][0-9]{1,2})|(28800)"
}
},
"mainSteps": [
{
"precondition": {
"StringEquals": [
"platformType",
"Windows"
]
},
"action": "aws:downloadContent",
"name": "downloadContent",
"inputs": {
"sourceType": "{{ sourceType }}",
"sourceInfo": "{{ sourceInfo }}",
"destinationPath": "{{ workingDirectory }}"
}
},
{
"precondition": {
"StringEquals": [
"platformType",
"Windows"
]
},
"action": "aws:downloadContent",
"name": "downloadContainer",
"inputs": {
"sourceType": "{{ sourceType }}",
"sourceInfo": "{{ sourceZIP }}",
"destinationPath": "{{ workingDirectory }}"
}
},
{
"precondition": {
"StringEquals": [
"platformType",
"Windows"
]
},
"action": "aws:runPowerShellScript",
"name": "runPowerShellScript",
"inputs": {
"runCommand": [
"",
"$directory = Convert-Path .",
"$env:PATH += \";$directory\"",
" {{ commandLine }}",
"if ($?) {",
" exit $LASTEXITCODE",
"} else {",
" exit 255",
"}",
""
],
"workingDirectory": "{{ workingDirectory }}",
"timeoutSeconds": "{{ executionTimeout }}"
}
}
]
}