如何在同一个语句中使用ifif和else jinja条件

时间:2018-10-29 07:14:38

标签: ansible jinja2

下面是我在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"
  }

在client_dc选项中,我需要添加elif的方式是,如果在主机名中找到“ jira-next”,则将client_dc分配给“ jira-next”。 因此,如果在主机名中找到“ jira-app”,则client_dc:jira 在主机名client_dc中找到了elif'jira-next-app':jira-next 否则为client_dc:host_name(变量预分配在变量文件中)

我该如何实现?

2 个答案:

答案 0 :(得分:1)

尝试一下:

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

答案 1 :(得分:0)

在 Ansible Jinja 中使用 else if 的另一个例子

- name: Set Service status
   set_fact:
     service_status: "{{ 'Not Installed' if status is not defined else ( 'Running' if status == 200 else 'Not Running' ) }}"