On Sun, 2 Jul 2023 17:12:33 +0200 (CEST) dulhaver via Ansible Project <ansible-project@googlegroups.com> wrote:
> - ansible.builtin.set_fact: > level: keycloak > when: ansible_fqdn == VM-0312.step.zrz.internal Make your live easier and put the logic into the *vars*. For example, shell> cat group_vars/all/level.yml level_dict: VM-0311.step.zrz.internal: passkey VM-0312.step.zrz.internal: keycloak VM-0313.step.zrz.internal: falsekey level: "{{ level_dict[ansible_fqdn] }}" Given the inventory for testing shell> cat hosts host1 ansible_fqdn=VM-0311.step.zrz.internal host2 ansible_fqdn=VM-0312.step.zrz.internal host3 ansible_fqdn=VM-0313.step.zrz.internal use *set_fact" if you want to 'instantiate' the variable (put the variable into the *hostvars*). You can omit *set_fact* if you don't need hostvars.*.level. For example, the play - hosts: all tasks: - set_fact: level: "{{ level }}" - debug: var: level gives (abridged) ok: [host1] => level: passkey ok: [host2] => level: keycloak ok: [shot3] => level: falsekey As a result, the code is cleaner. Also the concentration of data into a single point of failure (a dictionary and assignment isolated in *vars*) makes the code more robust. -- Vladimir Botka -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/20230703113413.5372d6c1%40gmail.com.
pgp4HQt7dfawf.pgp
Description: OpenPGP digital signature