2016-10-29 8 views
0

Ich habe ein sprechbares Playbook. Wenn ich das Playbook ausführe, gebe ich an, welche Umgebungsdatei verwendet werden soll.Ein Playbook in ein Playbook einfügen und eine Umgebungsdatei definieren

ansible-playbook playbooks/release-deploy.yaml -i env/LAB3 

Im ansible-Textbuch ich einen anderen Textbuch nenne, und ich möchte die gleiche Umgebungsdatei verwendet werden.

Meine aktuelle Konfiguration ist:

- include: tasks/replace_configs.yaml 

Also, wenn ich das Textbuch laufen lasse, erhalte ich die Fehlermeldung:

TASK [include] ***************************************************************** 
fatal: [10.169.99.70]: FAILED! => {"failed": true, "reason": "no action detected in task. This often indicates a misspelled module name, or incorrect module path. 

The error appears to have been in '/home/ansible/playbooks/tasks/replace_configs.yaml': line 2, column 3, but may 
be elsewhere in the file depending on the exact syntax problem. 

The offending line appears to be: 

--- 
- hosts: cac 
^here 


The error appears to have been in '/home/ansible/playbooks/tasks/replace_configs.yaml': line 2, column 3, but may 
be elsewhere in the file depending on the exact syntax problem. 


The offending line appears to be: 

--- 
- hosts: cac 
^here 
"} 

tasks/replace_configs.yaml muss auch env/LAB3

verwenden Sieht aus wie es doesn Ich weiß, was cac ist. Muss ich eine andere Konfiguration vornehmen? Diese

+0

Teilen Sie Ihre Include-Datei sowie Env-Datei – Shasha99

Antwort

2

My current config is:

- include: tasks/replace_configs.yaml 

ist nicht „config“, das ist eine Linie, die eine Datei mit Aufgaben umfasst.

ist unter der folgenden „Aufgabe“ Werfen wir einen Blick:

The offending line appears to be: 

--- 
- hosts: cac 
^here 

Es ist nicht wie ein Aufgabe sieht, es sieht aus wie ein Spiel. Es enthält höchstwahrscheinlich keine Modul-Direktive, daher beschwert sich Ansible mit Recht, dass in der erwarteten Aufgabe kein Modul-Name angegeben ist: no action detected in task.

Wenn Sie include Richtlinie in ansible verwenden legt sie den eingeschlossenen Inhalt an der Einrückung der include, also wenn Sie Aufgaben gehören, sollten Sie nur Aufgaben

Ihre Datei enthalten enthalten sollte wie folgt aussehen:

--- 
- name: This is a task 
    debug: msg="One task" 

- name: This is another task 
    debug: msg="Another task" 

und sollte keine anderen Definitionen enthalten, insbesondere solche, die zu einer höheren Ebene gehören.

+0

Vielen Dank für die detaillierte Antwort. Es funktionierte perfekt, sobald ich die - hosts Zeile entfernt habe. –

Verwandte Themen