全部产品
Search
文档中心

CloudOps Orchestration Service:ACS-ECS-ApplyAnsiblePlayBooks

更新时间:Jun 28, 2025

Nama Template

ACS-ECS-ApplyAnsiblePlayBooks

Eksekusi Sekarang

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