在ansible中,如何根据条件为变量赋值?

在ansible中,如何根据条件为变量赋值?,ansible,Ansible,我想根据我的环境名称为变量赋值。如果env=e1,则某些变量名“var”的值应为“x”。如果env=e2,“var”的值应为“y” 让我知道你的建议 假设您有一个名为FOO的环境变量 - hosts: localhost gather_facts: "False" vars: my_env_var: "{{ lookup('env','FOO') }}" tasks: - name: "set e1" set_fact: my_ansibl

我想根据我的环境名称为变量赋值。如果env=e1,则某些变量名“var”的值应为“x”。如果env=e2,“var”的值应为“y”


让我知道你的建议

假设您有一个名为FOO的环境变量

- hosts: localhost
  gather_facts: "False"
  vars:
    my_env_var: "{{ lookup('env','FOO') }}"
  tasks:
    - name: "set e1"
      set_fact:
        my_ansible_var: "x"
      when: my_env_var == "e1"
    - name: "set e2"
      set_fact:
        my_ansible_var: "y"
      when: my_env_var == "e2"

现在,您可以在任何需要的地方引用{{my\u ansible\u var}}值。

非常感谢Russ,一个小问题。。。如何用e1和e2值定义我的env var FOO?有没有办法从var->main.yml调用变量进行查找。我正在将一个变量定义为env_hn=e{{ansible_hostname}},它将根据这个变量值选择值e1、e2或e3,我想给几个变量赋值。另外,您能告诉我一些关于这个警告的想法吗:[警告]:当语句不应该包括jinja2模板分隔符,例如{}或{%}。发现:“{env_hn}}”==“e2”Monika:警告告诉您确切的操作方法,请删除“when”语句中变量周围的花括号。看我的例子。