Te sugerimos que revises esta solución en un entorno controlado antes de enviarlo a producción, saludos.
Solución:
La función que describo a continuación ha estado disponible desde Ansible 2.6, pero se corrigió un error en v2.6.2 y otro (menor) en v2.7.
Para ver una solución para versiones anteriores, consulte la respuesta de Paul.
defaults/main/
en lugar de crear defaults/main.yml
crear un directorio — defaults/main/
– y coloque todos los archivos YAML allí.
defaults/main.yml
→defaults/main/*.yml
Ansible cargará cualquier *.yml
archivo dentro de ese directorio, por lo que puede nombrar sus archivos como roles/my-role/defaults/main/1,2.yml
.
Tenga en cuenta que el archivo antiguo: defaults/main.yml
— no debe existir. Vea este comentario de Github.
vars/main/
Por ciertola solución anterior también funciona para vars/
:
vars/main.yml
→vars/main/*.yml
más detalles
La función se introdujo en v2.6: confirmación de git, solicitud de extracción, problema principal de Github.
Ha habido dos correcciones de errores:
- Corrección v2.7: git commit, Solicitud de extracción — respaldado a v2.6.2: confirmación, solicitud de extracción
- Solución v2.7: confirmación de git, solicitud de extracción, discusión de errores
Si no está utilizando 2.6 (que probablemente debería, pero entiendo que no siempre es una opción), entonces puede encontrar útil include_vars.
- name: Include vars of stuff.yaml into the 'stuff' variable (2.2).
include_vars:
file: stuff.yaml
name: stuff
- name: Conditionally decide to load in variables into 'plans' when x is 0, otherwise do not. (2.2)
include_vars:
file: contingency_plan.yaml
name: plans
when: x == 0
- name: Load a variable file based on the OS type, or a default if not found. Using free-form to specify the file.
include_vars: " item "
with_first_found:
- " ansible_distribution .yaml"
- " ansible_os_family .yaml"
- default.yaml
- name: Bare include (free-form)
include_vars: myvars.yaml
- name: Include all .json and .jsn files in vars/all and all nested directories (2.3)
include_vars:
dir: vars/all
extensions:
- json
- jsn
- name: Include all default extension files in vars/all and all nested directories and save the output in test. (2.2)
include_vars:
dir: vars/all
name: test
- name: Include default extension files in vars/services (2.2)
include_vars:
dir: vars/services
depth: 1
- name: Include only files matching bastion.yaml (2.2)
include_vars:
dir: vars
files_matching: bastion.yaml
Sin embargo, tenga en cuenta que esta es una directiva de tarea. No es tan bueno como simplemente poder incluirlo en el archivo predeterminado.
Te mostramos reseñas y puntuaciones
Si guardas alguna desconfianza o capacidad de medrar nuestro sección te recomendamos añadir una interpretación y con mucho gusto lo estudiaremos.