vars template set_fact playbook debug variables conditional ansible ansible-playbook

variables - set_fact - ansible template



Ansible: verificar si la variable es igual a la cadena (1)

Tenga cuidado con una variable llamada environment , puede causar problemas porque Ansible lo usa internamente. No recuerdo si está en los documentos, pero aquí hay un hilo de la lista de correo:

https://groups.google.com/forum/#!topic/ansible-project/fP0hX2Za4I0

Usamos una variable llamada stage .

Parece que terminarás con un montón de estos en una fila:

- include_vars: testing_vars.yml when: stage == "testing" - include_vars: staging_vars.yml when: stage == "staging" - include_vars: production_vars.yml when: stage == "production"

Pero también podrías incluir tu entorno:

- include_vars: "{{ stage }}_vars.yml"

O bien, use vars_files en un nivel de libro de jugadas:

vars_files: - vars/{{ stage }}_vars.yml

Tengo una variable ansible pasada en la línea de comando como tal:

ansible-playbook -e environment=staging ansible/make_server.yml

Quiero cargar algunas variables en mi función que dependen del valor del entorno. He intentado muchos métodos diferentes, como:

- include_vars: staging_vars.yml when: environment | staging

y

- include_vars: staging_vars.yml when: "{{environment}} == "staging"

y

- include_vars: staging_vars.yml when: "{{environment}} | match(''staging'')"

Pero nada parece funcionar. ¿Cómo hago esto?

Detalles:

  • Estoy usando ansible 1.7.2