2017-08-18 3 views
1

enthalten Ich habe ein Textbuch I in eine Vorlage konvertieren möchten, und schließen es include an anderer Stelle verwenden und außer Kraft setzen einige Variablen, wie folgt aus:Mit vars_files ein mit in ansible

$ cat env_demo.yml 
--- 
- include: template_standalone.yml 
    vars: 
    hosts: demo.example.com 
    environment_name: "Demo environment" 

Dies funktioniert gut, aber ich würde dann gerne einige der Variablen verschlüsseln, wie folgt aus:

$ cat env_demo_secret.yml 
--- 
- include: template_standalone.yml 
    vars: 
    hosts: demo.example.com 
    vars_files: 
    - secrets/demo.example.com.yml 

Jetzt habe ich diesen Fehler:

ERROR! 'vars_files' is not a valid attribute for a PlaybookInclude 

Meine template_standalone.yml eine Liste der verschiedenen Rollen enthält ...:

$ cat template_standalone.yml 
--- 
- name: Setting up standalone environment 
    hosts: "{{ hosts }}" 
    roles: 
    - role: php7 
    - role: nginx 
    ... 

... das Bedürfnis Konfiguration wie Server Passwörter, etc., die ich lieber nicht in Klartext in der Hauptdatei haben. Irgendwelche Gedanken darüber, was ich stattdessen tun könnte?

Antwort

1

vars_files ist nicht für enthalten Playbooks (Stand ansible 2.3) unterstützt

Sie entscheiden können zusätzliche Variablen verwenden Datei:

ansible-playbook -e @secrets/demo.example.com.yml env_demo.yml 

oder benutzen Gruppenvariablen für all Gruppe Datei - geben Sie Ihre verschlüsselten Datei in ./group_vars/all/demo.example.com.yml.

+0

Danke, die Extra-Variablen-Methode funktioniert für mich. Ich füge nur einen Kommentar hinzu, der besagt, dass Sie es angeben müssen. –