模板名称
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