Ansible 劇本錯誤

Ansible 劇本錯誤

你好,我剛開始學習ansible。我正在嘗試將劇本寫為:

vpc-setup.yml其中包括

hosts: localhost
connection: local
gather_facts: False
tasks:
 - name: Import VPC Variables
   include_vars: vars/vpc_setup.md

 - name: Create vprofile VPC
   ec2_vpc_net:
    name: "{{vpc_name}}"
    cidr_block: "{{vpcCidr}}"
    region: "{{region}}"
    dns_hostnames: yes
    tenancy: default
    state: "{{state}}"
    register: vpcout

錯誤出現在第一行:

[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match
'all'
ERROR! A playbook must be a list of plays, got a <class 'ansible.parsing.yaml.objects.AnsibleMapping'> instead

The error appears to be in '/home/ubuntu/ansible-aws-vpc/vpc-setup.yml': line 1, column 1, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:


hosts: localhost
^ here

請幫忙

答案1

Ansible 劇本是一個包含劇本清單(可能不只一個)的 YAML 文件。因為它是一個列表,所以文件的外部部分需要 YAML 列表表示法,因此-.

- name: VPC for thing
  hosts: localhost
  gather_facts: False
  tasks:

該劇的其餘部分如下。

Ansible 中的更多範例指南介紹劇本。請密切注意縮進,以及-表示 YAML 清單的外部。


獎金提示:

name播放中的關鍵字記錄了一個目的。名稱盡量簡短,不超過 50 個字元。

connection: local在播放等級刪除。如果針對具有多個主機的模式運行,它將運行多次,這不太可能是您想要的。隱式本地主機已經是本地的,或者您可以在清單層級設定每個主機或群組的連接插件。

相關內容