Nama Template
ACS-ECS-ApplyAnsiblePlayBooks
Deskripsi Template
Menjalankan Ansible playbook pada instance Elastic Compute Service (ECS). Mendukung hanya Ansible playbook yang kompatibel dengan CentOS, Alibaba Cloud Linux, dan Ubuntu.
Tipe Template
Otomatis
Pemilik
Alibaba Cloud
Parameter Input
Parameter | Deskripsi | Tipe | Diperlukan | Nilai Default | Batasan | |
targets | Instance ECS tempat Anda ingin menjalankan Ansible playbook. | Json | Ya | |||
sourceType | Tipe penyimpanan dari playbook. | String | Ya | |||
sourcePath | URL dari playbook. | String | Ya | |||
playbookFile | Nama dari playbook. | String | Ya | |||
regionId | ID wilayah. | String | Tidak | {{ ACS::RegionId }} | ||
tokenInfo | Token yang digunakan untuk mengunduh playbook. | String | Tidak | "" | ||
hosts | Host yang digunakan untuk menjalankan playbook. | String | Tidak | /etc/ansible/hosts | ||
installDependencies | Menentukan apakah akan menggunakan CloudOps Orchestration Service (OOS) untuk menginstal Ansible dan dependensinya dari repositori Python Package Index (PyPI). | Boolean | Tidak | True | ||
workingDir | Direktori tempat playbook dijalankan. | String | Tidak | /root/ansible-workspace | ||
check | Menentukan apakah akan memeriksa eksekusi Ansible. | Boolean | Tidak | True | ||
extraVariables | Variabel tambahan yang diteruskan ke Ansible saat playbook dijalankan. | String | Tidak | color=red | Ekspresi reguler untuk verifikasi string: ^$ | ^\w+=\S+(\s\w+=\S+)*$ |
verbose | Tingkat verbosity yang digunakan untuk mencatat proses selama playbook dijalankan. | String | Tidak | -v | ||
rateControl | Pengaturan kontrol laju. | Json | Tidak | {'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10} | ||
OOSAssumeRole | Peran Resource Access Management (RAM) yang diasumsikan oleh OOS. | String | Tidak | "" |
Parameter Output
Parameter | Deskripsi | Tipe |
commandOutput | String |
Kebijakan Izin yang Diperlukan untuk Menjalankan Template
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Referensi
Untuk informasi lebih lanjut, lihat ACS-ECS-ApplyAnsiblePlayBooks.yml di GitHub.
Konten Template
FormatVersion: OOS-2019-06-01
Description:
en: 'Gunakan template ini untuk menjalankan Ansible playbook pada Instance ECS. Hanya mendukung CentOS, Alibaba Cloud Linux, dan Ubuntu.'
zh-cn: deskripsi dalam bahasa Cina
name-en: ACS-ECS-ApplyAnsiblePlayBooks
name-zh-cn: deskripsi dalam bahasa Cina
categories:
- run_command
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: deskripsi dalam bahasa Cina
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Label:
en: TargetInstance
zh-cn: deskripsi dalam bahasa Cina
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
sourceType:
Type: String
Label:
en: SourceType
zh-cn: deskripsi dalam bahasa Cina
AllowedValues:
- oss
- https
- github
sourcePath:
Type: String
Label:
en: SourcePath
zh-cn: deskripsi dalam bahasa Cina
Description:
en: 'Anda dapat menentukan URL dalam format berikut: https://example.com/playbook.yml'
zh-cn: deskripsi dalam bahasa Cina
playbookFile:
Label:
en: PlaybookFile
zh-cn: deskripsi dalam bahasa Cina
Description:
en: ' Contoh: example.yml'
zh-cn: deskripsi dalam bahasa Cina
Type: String
tokenInfo:
Type: String
Label:
en: TokenInfo
zh-cn: deskripsi dalam bahasa Cina
Description:
en: 'Hanya diperlukan saat mengunduh palybook dari GitHub'
zh-cn: deskripsi dalam bahasa Cina
Default: ""
hosts:
Type: String
Label:
en: Hosts
zh-cn: deskripsi dalam bahasa Cina
Default: /etc/ansible/hosts
installDependencies:
Label:
en: InstallDependencies
zh-cn: deskripsi dalam bahasa Cina
Description:
en: 'Jika disetel ke True, OOS menginstal Ansible dan dependensinya, termasuk Python, dari repositori PyPI. Jika disetel ke False, pastikan Ansible dan dependensinya telah terinstal pada instance target.'
zh-cn: deskripsi dalam bahasa Cina
Type: Boolean
Default: true
workingDir:
Label:
en: WorkingDir
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: /root/ansible-workspace
check:
Label:
en: Check
zh-cn: deskripsi dalam bahasa Cina
Type: Boolean
Default: true
extraVariables:
Type: String
Label:
en: ExtraVariables
zh-cn: deskripsi dalam bahasa Cina
Description:
en: 'Masukkan daftar pasangan key/value yang dipisahkan spasi. Contoh: color=red flavor=lime'
zh-cn: deskripsi dalam bahasa Cina
Default: color=red
AllowedPattern: ^$|^\w+\=\S+(\s\w+\=\S+)*$
verbose:
Type: String
Label:
en: Verbose
zh-cn: deskripsi dalam bahasa Cina
Description:
en: 'Tentukan -v untuk verbosity rendah, -vv atau -vvv untuk verbosity sedang, dan -vvvv untuk level debug.'
zh-cn: deskripsi dalam bahasa Cina
AllowedValues:
- '-v'
- '-vv'
- '-vvv'
- '-vvvv'
Default: '-v'
rateControl:
Label:
en: RateControl
zh-cn: deskripsi dalam bahasa Cina
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: deskripsi dalam bahasa Cina
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Melihat instance ECS
zh-cn: deskripsi dalam bahasa Cina
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: Terapkan playbook yang ditentukan
zh-cn: deskripsi dalam bahasa Cina
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: deskripsi dalam bahasa Cina
en: Konfigurasi Parameter
- Parameters:
- regionId
- targets
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Pilih Instance
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: deskripsi dalam bahasa Cina
en: Opsi Kontrol