将多个默认变量从Chef转换为Ansible

时间:2019-02-27 22:27:22

标签: ansible jinja2

Chef中由案例设置的节点属性如何转换为Ansible中的变量?

示例:

case node['custom_attribute']
when 'security_standard_1'
  security_standard = 'ss1'
when 'security_standard_2'
  security_standard = 'ss2'
else
  security_standard = 'off'
end

我只看到用jinja设置了两个可能值的东西。

security_standard: "{{ security_standard_1 | security_standard_2 }}"

这个思考过程甚至在Ansible中可行吗?

1 个答案:

答案 0 :(得分:1)

您可以使用具有if-else条件的jinja模板来定义变量,以满足您的需求。

这是一个例子:

security_standard: "{%- if (security_standard_1 is defined) -%}ss1
                    {%- elif (security_standard_2 is defined) -%}ss2
                    {%- else -%}off
                    {%- endif -%}"