vars playbook hostvars yaml ansible-playbook

yaml - playbook - Pase la matriz en--extra-vars-Ansible



ansible inventory (2)

¿Cómo puedo pasar la matriz de --extra-vars a --extra-vars en el libro de jugadas de Ansible? La documentación de Ansible no declara su sintaxis ni puedo encontrarla en ningún recurso de Internet.

Quiero decir, si tengo un libro de jugadas:

--- - hosts: {{hostName}} - remote_user: admin ...

Entonces debería llamar a mi libro de jugadas como

ansible-playbook DeployWar.yml --extra-vars="hostName=tomcat-webApp"

Pero quiero ejecutar este libro de jugadas en dos servidores, dicen tomcat-webApp y tomcat-all , y quiero controlarlo desde fuera, es decir, usando --extra-vars . Lo que he tratado de hacer es:

ansible-playbook DeployWar.yml --extra-vars="hostName=[tomcat-webApp, tomcat-all]" ansible-playbook DeployWar.yml --extra-vars="hostName={tomcat-webApp, tomcat-all}" ansible-playbook DeployWar.yml --extra-vars="[{hostName: tomcat-webApp}, {hostName: tomcat-all}]"

Pero en todos los casos el libro de jugadas falla al declarar un error de sintaxis en mi llamada. Cualquier ayuda apreciada.



Para responder a su primera pregunta "¿Cómo puedo pasar yaml array a --extra-vars en el libro de jugadas de Ansible"? puedes pasar una cadena json formateada a extra-vars .

Aquí hay un juego de ejemplo:

- hosts: all gather_facts: no tasks: - debug: var=test_list

Y cómo pasar test_list a ansible-playbook:

ansible-playbook -c local -i localhost, test.yml --extra-vars=''{"test_list": [1,2,3]}''

Aunque puede usar una variable para hosts, recomiendo consultar el mecanismo de Ansible para la administración del host, que es el inventory junto con la opción --limit .