2 votes

Comment utiliser la condition jinja if elif et else dans la même déclaration en ansible

Voici ma partie de mon fichier meta dans ansible.

---
dependencies:
- { role: nomad-agent,
      nomad_agent_type: client,
      client_dc: "{{ 'jira' if 'jira-app' in host_name else host_env }}",
      nomad_servers: ["{{ nomad1_ip }}","{{ nomad2_ip }}","{{ nomad3_ip }}"],
      tags: "nomad-agent"
  }

Dans l'option client_dc, je dois ajouter elif de telle manière que client_dc serait assigné à "jira-next" si 'jira-next' est trouvé dans le nom d'hôte. Ainsi, si 'jira-app' est trouvé dans le nom d'hôte, client_dc: jira sinon, si 'jira-next-app' est trouvé dans le nom d'hôte, client_dc: jira-next sinon, client_dc: host_name (variable préassignée dans le fichier de variables)

Comment puis-je y parvenir?

6voto

chenchuk Points 1960

Essayez ceci :

  client_dc: "{% if 'jira-app' in hostname %}jira{% elif 'jira-next' in hostname %}jira-next{% else %}{{ hostenv }}{% endif %}"

0voto

kts Points 51

Un autre exemple d'utilisation de else if dans Ansible Jinja

- name: Définir l'état du service
   set_fact:
     service_status: "{{ 'Non installé' if status is not defined else ( 'En cours d'exécution' if status == 200 else 'Arrêté' ) }}"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X