vars set_fact practices playbook hostvars example debug best ansible ansible-inventory

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: