模板名稱
ACS-ECS-ApplyAnsiblePlayBooks 在執行個體中執行Ansible PlayBook
模板描述
使用這個模板執行ECS執行個體中的Ansible PlayBook,僅支援CentOS,Alibaba Cloud Linux和Ubuntu
模板類型
自動化
所有者
Alibaba Cloud
輸入參數
參數名稱 | 描述 | 類型 | 是否必填 | 預設值 | 約束 | |
targets | 目標執行個體 | Json | 是 | |||
sourceType | playbook儲存的類型 | String | 是 | |||
sourcePath | 用於儲存playbook的URL | String | 是 | |||
playbookFile | 執行的playbook名稱 | String | 是 | |||
regionId | 地區ID | String | 否 | {{ ACS::RegionId }} | ||
tokenInfo | 指定令牌以下載playbook | String | 否 | “” | ||
hosts | 用於執行palybook的hosts | String | 否 | /etc/ansible/hosts | ||
installDependencies | OOS從PyPI存放庫中是否安裝Ansible及其依賴項 | Boolean | 否 | True | ||
workingDir | 執行playbook的目錄 | String | 否 | /root/ansible-workspace | ||
check | 使用check參數運行Ansible執行檢查 | Boolean | 否 | True | ||
extraVariables | 其他變數在運行時傳遞給Ansible | String | 否 | color=red | 字串校正Regex : ^$ | ^\w+=\S+(\s\w+=\S+)*$ |
verbose | 設定用於記錄Playbook執行情況的詳細程度 | String | 否 | -v | ||
rateControl | 任務執行的並發比率 | Json | 否 | {‘Mode’: ‘Concurrency’, ‘MaxErrors’: 0, ‘Concurrency’: 10} | ||
OOSAssumeRole | OOS扮演的RAM角色 | String | 否 | “” |
輸出參數
參數名稱 | 描述 | 類型 |
commandOutput | String |
執行此模板需要的權限原則
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
詳情
ACS-ECS-ApplyAnsiblePlayBooks詳情
模板內容
FormatVersion: OOS-2019-06-01
Description:
en: 'Use this template to run Ansible playbook on ECS Instance.Only supports CentOS, Alibaba Cloud Linux and Ubuntu.'
zh-cn: 使用這個模板執行ECS執行個體中的Ansible PlayBook,僅支援CentOS,Alibaba Cloud Linux和Ubuntu
name-en: ACS-ECS-ApplyAnsiblePlayBooks
name-zh-cn: 在執行個體中執行Ansible PlayBook
categories:
- run_command
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: 地區ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Label:
en: TargetInstance
zh-cn: 目標執行個體
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
sourceType:
Type: String
Label:
en: SourceType
zh-cn: playbook儲存的類型
AllowedValues:
- oss
- https
- github
sourcePath:
Type: String
Label:
en: SourcePath
zh-cn: 用於儲存playbook的URL
Description:
en: 'You can specify the URL in the following formats: https://example.com/playbook.yml'
zh-cn: '可以按以下格式指定URL:https://example.com/playbook.yml'
playbookFile:
Label:
en: PlaybookFile
zh-cn: 執行的playbook名稱
Description:
en: ' For example: example.yml'
zh-cn: '例如: example.yml'
Type: String
tokenInfo:
Type: String
Label:
en: TokenInfo
zh-cn: 指定令牌以下載playbook
Description:
en: 'It is only required when downloading palybook from GitHub'
zh-cn: '只有從GitHub上下載palybook時需要填'
Default: ""
hosts:
Type: String
Label:
en: Hosts
zh-cn: 用於執行palybook的hosts
Default: /etc/ansible/hosts
installDependencies:
Label:
en: InstallDependencies
zh-cn: OOS從PyPI存放庫中是否安裝Ansible及其依賴項
Description:
en: 'If set to True, OOS installs Ansible and its dependencies, including Python, from the PyPI repo. If set to False, then verify that Ansible and its dependencies are installed on the target instances.'
zh-cn: 如果設定為True,則OOS從PyPI存放庫中安裝Ansible及其依賴項,包括Python。如果設定為False,則需要驗證目標執行個體上是否安裝了Ansible及其依賴項。
Type: Boolean
Default: true
workingDir:
Label:
en: WorkingDir
zh-cn: 執行playbook的目錄
Type: String
Default: /root/ansible-workspace
check:
Label:
en: Check
zh-cn: 使用check參數運行Ansible執行檢查
Type: Boolean
Default: true
extraVariables:
Type: String
Label:
en: ExtraVariables
zh-cn: 其他變數在運行時傳遞給Ansible
Description:
en: 'Enter a space separated list of key/value pairs. For example: color=red flavor=lime'
zh-cn: 輸入以空格分隔的鍵/值對列表。 例如:color=red flavour=lime
Default: color=red
AllowedPattern: ^$|^\w+\=\S+(\s\w+\=\S+)*$
verbose:
Type: String
Label:
en: Verbose
zh-cn: 設定用於記錄Playbook執行情況的詳細程度
Description:
en: 'Specify -v for low verbosity, -vv or –vvv for medium verbosity, and -vvvv for debug level.'
zh-cn: 指定-v表示低層級,-vv或–vvv表示中等層級,-vvvv表示調試層級
AllowedValues:
- '-v'
- '-vv'
- '-vvv'
- '-vvvv'
Default: '-v'
rateControl:
Label:
en: RateControl
zh-cn: 任務執行的並發比率
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS扮演的RAM角色
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances
zh-cn: 擷取ECS執行個體
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: applyPlaybook
Action: 'ACS::ECS::ApplyAnsiblePlayBook'
Description:
en: Apply the specified playbook
zh-cn: 運行指定的playbook
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
sourceType: '{{ sourceType }}'
sourcePath: '{{ sourcePath }}'
playbookFile: '{{ playbookFile }}'
tokenInfo: '{{ tokenInfo }}'
hosts: '{{ hosts }}'
installDependencies: '{{ installDependencies }}'
workingDir: '{{ workingDir }}'
check: '{{ check }}'
extraVariables: '{{ extraVariables }}'
verbose: '{{ verbose }}'
Loop:
Items: '{{ getInstance.instanceIds }}'
RateControl: '{{ rateControl }}'
Outputs:
commandOutputs:
AggregateType: 'Fn::ListJoin'
AggregateField: commandOutput
Outputs:
commandOutput:
Type: String
ValueSelector: commandOutput
Outputs:
commandOutput:
Type: String
Value: '{{ applyPlaybook.commandOutputs }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- sourceType
- sourcePath
- playbookFile
- tokenInfo
- hosts
- installDependencies
- workingDir
- check
- extraVariables
- verbose
Label:
default:
zh-cn: 配置參數
en: Configure Parameters
- Parameters:
- regionId
- targets
Label:
default:
zh-cn: 選擇執行個體
en: Select Instances
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: 進階選項
en: Control Options