Responible con "Diseño de directorio alternativo" y con bóvedas
Estoy tratando de usar elDiseño de directorio alternativo y bóvedas ansibles dentro. Pero cuando ejecuto mi libro de jugadas, las variables que están encriptadas en almacén no pueden resolverse con esa estructura de directorios. Entonces, ¿qué estoy haciendo mal?
Ejecuto a través de:
ansible-playbook -i inventories/inv/hosts playbooks/inv/invTest.yml --check --ask-vault
Aquí está mi estructura:
.
├── inventories
│ ├── inv
│ │ ├── group_vars
│ │ │ ├── var.yml
│ │ │ └── vault.yml
│ │ └── hosts
│ └── staging
│ ├── group_vars
│ │ ├── var.yml
│ │ └── vault.yml
│ └── hosts
├── playbooks
│ ├── staging
│ │ └── stagingTest.yml
│ └── inv
│ ├── invTest.retry
│ └── invTest.yml
└── roles
├── basic-linux
│ ├── defaults
│ │ └── main.yml
│ └── tasks
│ └── main.yml
├── test
│ ├── defaults
│ │ └── main.yml
│ └── tasks
│ └── main.yml
└── webserver
├── defaults
│ └── main.yml
├── files
├── handler
│ └── main.yml
├── tasks
│ └── main.yml
└── templates
este es mi archivo de hosts (inventories/inv/hosts
):
[inv]
testvm-01 ansible_ssh_port=22 ansible_ssh_host=172.16.0.101 ansible_ssh_user=root
testvm-02 ansible_ssh_port=22 ansible_ssh_host=172.16.0.102 ansible_ssh_user=root
libro de jugadas (playbooks/inv/invTest.yml
):
---
- name: this is test
hosts: inv
roles:
- { role: ../../roles/test }
...
rol que utiliza la bóveda encriptada var (roles/test/tasks/main.yml
):
---
- name: create test folder
file:
path: "/opt/test/{{ app_user }}/"
state: directory
owner: "{{ default_user }}"
group: "{{ default_group }}"
mode: 2755
recurse: yes
...
var que apunta a la bóveda (inventarios / inv / group_vars / var.yml):
---
app_user: '{{ vault_app_user }}'
app_pass: '{{ vault_app_pass }}'
...
archivo de almacenamiento (ansible-vault edit inventories/inv/group_vars/vault.yml
):
vault_app_user: itest
vault_app_pass: itest123
El mensaje de error que iam está obteniendo es algo como esto:
¡HA FALLADO! => {"falló": verdadero, "mensaje": "el campo 'args' tiene un valor no válido, que parece incluir una variable que no está definida. El error fue: {{app_user}}: 'app_user' está indefinido \ n \ nEl error parece haber estado en 'roles / test / tareas / main.yml': pero puede \ n estar en otra parte del archivo dependiendo del problema exacto de sintaxis. \ n \ nLa línea ofensiva parece ser: \ n \ n \ n - nombre: crear carpeta de prueba \ n ^ aquí \ n "}