set_fact - ansible playbook example
¿Es posible escribir archivos/hosts de Ansible en YAML? (3)
En la página de mejores prácticas, hay un ejemplo que utiliza hosts.yml
para los archivos de hosts:
En la documentación, sin embargo, solo puedo encontrar la sintaxis INI para escribir archivos de hosts.
¿Cuál es la sintaxis de los archivos de inventario en YAML?
Acabo de descubrir el convertidor de inventario INI a YAML de Ansible en github
que funcionó bien para mí:
Este repositorio contiene una secuencia de comandos de Python para convertir inventarios de Ansible en formato INI a formato YAML.
Por alguna razón, la conversión terminó con rangos de host ( [01:03]
) separados por =
lugar de los mostrados y correctos :
Las respuestas anteriores son correctas, pero aquí están los hosts sencillos.yaml y el INI como lado a lado en la captura de pantalla y solo estoy copiando los hosts.yaml reales aquí también, así que si quieres copiar y pegar y editarlo por ti mismo.
---
all:
hosts:
xmp:
ansible_connection: ssh
ansible_host: "192.1.0.1"
ansible_port: 7822
ansible_user: nanoseco
más información:
https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html
Sí.
Ha quedado en deprecated en la versión 0.6 en 2012 y se ha vuelto a reintroduced en un commit incluido por primera vez en la versión 2.1 en 2016.
El archivo de ejemplo en GitHub contiene las pautas y ejemplos:
- Los comentarios comienzan con el carácter ''#''.
- Las líneas en blanco son ignoradas
- Se asume que las entradas de nivel superior son grupos
- Los hosts deben especificarse en los hosts de un grupo: y deben ser una clave (: terminado)
- Los grupos pueden tener llaves de niños, hosts y vars.
- Se asume que cualquier cosa definida bajo un host es una var
- Puedes ingresar nombres de host o direcciones ip
- Un nombre de host / ip puede ser miembro de varios grupos
Ej 1: hosts desagrupados, poner en el grupo ''desagrupado''
ungrouped: hosts: green.example.com: ansible_ssh_host: 191.168.100.32 blue.example.com: 192.168.100.1: 192.168.100.10:
Ej 2: una colección de hosts que pertenecen al grupo de ''webservers''
webservers: hosts: alpha.example.org: beta.example.org: 192.168.1.100: 192.168.1.110:
Ej 3: puede crear hosts utilizando rangos y agregar grupos secundarios y vars a un grupo. El grupo secundario puede definir cualquier cosa que normalmente agregarías a un grupo
testing: hosts: www[001:006].example.com: vars: testing1: value1 children: webservers: hosts: beta.example.org: