-
Notifications
You must be signed in to change notification settings - Fork 17
/
ACS-ECS-ApplyAnsiblePlayBooks.yml
207 lines (207 loc) · 5.9 KB
/
ACS-ECS-ApplyAnsiblePlayBooks.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
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