Ansible: Loop sobre modelo com variáveis ​​relacionadas

Ansible: Loop sobre modelo com variáveis ​​relacionadas

Considerando avariávelestrutura

syncjobs:
  - filename: output1.bash
    content: data1
  - filename: output2.bash
    content: data2

Quero fazer um loop criando os arquivos comansible.builtin.templateusando o camponome do arquivopara odestino. Eu posso conseguir isso com

- name: Create scripts
  ansible.builtin.template:
    src: template.bash.j2
    dest: /opt/bin/{{ item.filename }}
    owner: root
    mode: "u+x,o-r"
    backup: true
  with_items: "{{ syncjobs }}"

no entanto, não consigo descobrir como abordar o problema específicocontentecampo dotrabalhos de sincronizaçãodict no arquivo de modelo. Claro que posso acessar a variáveltrabalhos de sincronização, mas preciso abordar ocontentecampo do relacionadodicionáriopara cada iteração específica.

Tentei definir um fato adicional comonome_do_arquivo_atualparaitem.nome do arquivodentro de umansible.builtin.block, mas infelizmente os loops não parecem ser suportados por blocos.

Responder1

Exatamente da mesma forma que no manual. Existe a mesma {{ item }}variável no modelo, então você pode consultá-la {{ item.content }}no arquivo de modelo. (Na verdade,todosas variáveis ​​do playbook estão disponíveis no modelo, exatamente o mesmo conjunto que existe naquele local específico do playbook onde foi ansible.builtin.templatechamado.)

informação relacionada