Pregunta Ansible no recoge group_vars sin cargarlo manualmente


En mi local.yml Soy capaz de ejecutar el libro de jugadas y las variables de referencia dentro group_vars/all Sin embargo, no puedo acceder a las variables dentro de group_vars/phl-stage. Supongamos lo siguiente.

ansible-playbook -i phl-stage site.yml

Tengo una variable, llamémosla deploy_path eso es diferente para cada entorno. Coloco la variable dentro de group_vars/< environment name >. Si incluyo el archivo group_vars/phl-stage dentro vars_files funciona, pero pensé que el archivo del grupo se cargaría automáticamente.

site.yml

- include: local.yml

local.yml

- hosts: 127.0.0.1
  connection: local

  vars_files:
    - "group_vars/perlservers"
    - "group_vars/deploy_list"

group_vars / phl-stage

[webservers]
phl-web1
phl-web2

[perlservers]
phl-perl1
phl-perl2

[phl-stage:children]
webservers
perlservers

Estructura de directorios:

group_vars
  all
  phl-stage
  phl-prod
site.yml
local.yml

24
2018-05-20 18:54


origen


Respuestas:


Estás confundiendo la estructura un poco.

  • los group_vars directorio contiene archivos para cada grupo de host definido en tu archivo de inventario Los archivos definen variables que los hosts miembros pueden usar.
  • El archivo de inventario no reside en group_vars dir, debería estar afuera.
  • Solamente los hosts que son miembros de un grupo pueden usar sus variables, por lo tanto, a menos que coloque 127.0.0.1 en un grupo, no podrá usar ningún group_vars al lado de los definidos en group_vars/all.

Lo que quieres es esta estructura dir:

group_vars/
   all
   perlservers
   phl-stage
hosts
site.yml
local.yml

Su archivo de hosts debería verse así, suponiendo que 127.0.0.1 es solo un servidor de etapas y no un servidor perl o web:

[webservers]
phl-web1
phl-web2

[perlservers]
phl-perl1
phl-perl2

[phl-stage]
127.0.0.1

[phl-stage:children]
webservers
perlservers

Entonces usted define qué hosts pertenecen a qué grupo en el inventario, y luego para cada grupo define variables en su archivo group_vars.


52
2018-05-21 13:32