模板名稱
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 | 字符串校驗正則表達式 : ^$ | ^\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