2017-03-20 2 views
0

Ich möchte 2 "Unteraufgaben" in einer Hauptaufgabe haben, aber aus irgendeinem Grund bekomme ich einen Syntaxfehler.Ansible Unteraufgaben in Hauptaufgaben

In meinem /etc/ansible Verzeichnis habe ich auf folgende Struktur:

playbooks/ 
     set_users.yml 
roles/ 
    users/ 
      tasks/ 
       main.yml 
       create_admin.yml 
       update_root.yml 
      vars/ 
       main.yml 

In der create_admin.yml Datei ich folgende Voraussetzungen erfüllt sein:

--- 
- name: Create srv_admin user 
    user: name=srv_admin password="{{ admin_password }}" groups=wheel shell=/bin/bash 

Und in update_root.yml:

--- 
- name Update root password 
    user: name=root password="{{ root_password }}" 

ich dann Schließen Sie diese Aufgaben in main.yml ein :

--- 
- name: Modify users 
    tasks: 
    - include: update_root.yml 
    - include: create_admin.yml 

Mein vars/main.yml enthält meine Passwörter:

--- 
- name: create user 
    hosts: servers 
    remote_user: root 
    roles: 
    - users 

Aber ich offensichtlich falsch, etwas zu tun:

--- 
admin_password: SHA512HASH 
root_password: SHA512HAS 

Nun, sie alle zusammen in playbooks/set_users.yml zu bringen. Als ich das Textbuch laufen lasse, erhalte ich folgende Fehlermeldung:

ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path. 

The error appears to have been in '/etc/ansible/roles/users/tasks/main.yml': line 2, column 3, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

--- 
- name: Modify users 
^here 

Wie kann ich diese beiden „sub“ Aufgaben in tasks/main.yml verwenden, so dass ich einfach die Rolle in dem Textbuch importieren?

EDIT Nach @Konstantin Suvorov Vorschlag der Umsetzung:

The error appears to have been in '/etc/ansible/roles/users/tasks/update_root.yml': line 3, column 7, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

- name Update root password 
    user: name=root password="{{ root_password }}" 
    ^here 
We could be wrong, but this one looks like it might be an issue with 
missing quotes. Always quote template expression brackets when they 
start a value. For instance: 

    with_items: 
     - {{ foo }} 

Should be written as: 

    with_items: 
     - "{{ foo }}" 

Antwort

3

tasks/main.yml eine Liste von Aufgaben sein sollte, so dass keine Notwendigkeit in tasks: Stichwort:

--- 
- include: update_root.yml 
- include: create_admin.yml 

Und vermeiden key=value Syntax, es‘ lch schieße irgendwann ins Bein, verwende reines YAML:

- name: Update root password 
    user: 
    name: root 
    password: "{{ root_password }}" 
+0

Das hat geholfen, aber jetzt bekomme ich einen weiteren Fehler. Bitte beachten Sie den Fehler oben. – rhillhouse

+0

Aktualisierte Antwort. Aber, bitte, sei nett - lies Fehlermeldungen von Ansible. –

+0

Vielen Dank! Sorry, ich bin noch sehr neu bei Ansible und habe den Fehler nicht verstanden. Ich versuche immer noch, die Syntax zu verstehen. Die aktualisierte Antwort enthält auch einen Syntaxfehler, aber ich könnte es beheben, indem ich '- name ...' zu '- name: ...' – rhillhouse