Ansible Playbook-Fehler

Ansible Playbook-Fehler

Hallo, ich habe gerade angefangen, Ansible zu lernen. Ich versuche, ein Playbook wie folgt zu schreiben:

vpc-setup.ymlwelche einschließlich

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

der Fehler tritt in der 1. Zeile auf:

[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

Freundlich helfen

Antwort1

Ein Ansible-Playbook ist ein YAML-Dokument, das eine Liste von Plays enthält, möglicherweise mehr als eins. Da es sich um eine Liste handelt, benötigt der äußere Teil des Dokuments die YAML-Listennotation, also -

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

Der Rest des Stückes folgt.

Weitere Beispiele in AnsiblesLeitfaden zur Einführung von Playbooks. Achten Sie genau auf die Einrückung und den äußeren -Hinweis auf eine YAML-Liste.


Bonus-Tipps:

nameStichworte zu Spielen dokumentieren einen Zweck. Halten Sie den Namen kurz, 50 Zeichen oder weniger.

connection: localAuf Wiedergabeebene löschen . Wenn es gegen ein Muster mit mehreren Hosts ausgeführt wird, wird es viele Male ausgeführt, was wahrscheinlich nicht das ist, was Sie wollen.Impliziter lokaler Hostist bereits lokal, oder Sie können das Verbindungs-Plugin pro Host oder Gruppe auf Inventarebene festlegen.

verwandte Informationen