Condicionales en Ansible con dictionary

Creo que podría malinterpretar algo en Ansible.

Quiero build un rol para la subversión.

Aquí está mi file de hosts:

[locaton1] server-location1.domain.com [location2] server-location2.domain.com 

Tengo un file vars como este:

 - repos_location1: repo1: reponame: project1 repogrp: grp-project1 repo2: reponame: project2 repogrp: grp-project2 subrepo: reponame: subproject2 repogrp: grp-subproject2 - repos_location2: repo1: reponame: project3 repogrp: grp-project3 repo2: reponame: project4 repogrp: grp-project4 

Entonces, tengo mi file de tareas. Esto es solo un fragment:

 - name: Build configuration template: src=subversion.conf.j2 dest=/etc/httpd/conf.d/subversion.conf with_dict: ???? 

Ahora viene la pista: quiero tener una statement when, como: "Cuando el host está en [location1], use repos_location1, pero use repos_location2, cuando esté en [location2].

Espero, entiendes mi punto. De lo contrario, tendría que hacer un papel svn-location1 y svn-location2.

Adicional Quiero tener una statement en mi file de plantilla, como esta:

"Si existe el" subrepo ", haz algo"

En este caso, sería mucho mejor utilizar variables de grupo .

En su lugar, define su variable como un repos genérico y lo establece para cada grupo para que tenga algo como esto:

group_vars / location1:

 repos: repo1: reponame: project1 repogrp: grp-project1 repo2: reponame: project2 repogrp: grp-project2 subrepo: reponame: subproject2 repogrp: grp-subproject2 

group_vars / location2:

 repos: repo1: reponame: project3 repogrp: grp-project3 repo2: reponame: project4 repogrp: grp-project4 

Puede usarlo así:

 - name: Build configuration template: src=subversion.conf.j2 dest=/etc/httpd/conf.d/subversion.conf with_dict: repos 

Sin embargo, le sugiero que cambie su nueva variable de repos para que sea una list de dictionarys que le permita iterar más fácilmente a través de ella y agregar / eliminar repos a la variable. Entonces algo como esto en su lugar:

 repos: - reponame: project3 repogrp: grp-project3 - reponame: project4 repogrp: grp-project4 

Luego iterarías a través de los repos con un iterador with_items .