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

エラーは1行目にあります:

[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 プレイブックは、プレイのリスト (複数の場合もある) を含む 1 つの YAML ドキュメントです。リストであるため、ドキュメントの外側の部分には YAML リスト表記が必要です-

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

劇の残りの部分は次の通りです。

Ansibleのその他の例プレイブックの紹介ガイド-インデントと、 YAML リストを示す外側に注意してください。


ボーナスのヒント:

name再生に関するキーワードは目的を文書化します。名前は 50 文字以下に短くしてください。

connection: local再生レベルで削除します。複数のホストを持つパターンに対して実行すると、何度も実行されることになり、これは望ましくない結果となる可能性があります。暗黙のローカルホストすでにローカルになっているか、インベントリ レベルでホストまたはグループごとに接続プラグインを設定できます。

関連情報