variables - sucursal - Establecer hecho con el nombre de la clave dinámica en ansible
sucursal virtual (2)
Estoy tratando de reducir varios fragmentos de código similar que se ve así:
- ... multiple things is going here
register: list_register
- name: Generating list
set_fact: my_list="{{ list_register.results | map(attribute=''ansible_facts.list_item'') | list }}"
# the same code repeats...
De hecho, la única diferencia entre ellos es que estoy usando diferentes nombres de lista aquí en lugar de my_list
De hecho, quiero hacer esto:
set_fact:
"{{ some var }}" : "{{ some value }}"
Me encontré con esta publicación, pero no encontré ninguna respuesta aquí.
¿Es posible hacerlo o hay alguna solución?
echa un vistazo a este libro de jugadas de muestra:
---
- hosts: localhost
vars:
iter:
- key: abc
val: xyz
- key: efg
val: uvw
tasks:
- set_fact: {"{{ item.key }}":"{{ item.val }}"}
with_items: "{{iter}}"
- debug: msg="key={{item.key}}, hostvar={{hostvars[''localhost''][item.key]}}"
with_items: "{{iter}}"
Lo anterior no funciona para mí. Lo que finalmente funciona es
- set_fact:
example_dict: "{''{{ some var }}'':''{{ some other var }}''}"
Que es al final obvio. Usted construye una cadena (las comillas dobles exteriores) que luego se interpreta como un hash. En hashes, la clave y el valor deben ser comillas simples (las comillas simples internas alrededor de los reemplazos variables). Y finalmente colocas tus reemplazos variables como en cualquier otra cadena.
Stefan