Ansible 连接字符串以在jinja2中创建变量
我正在尝试使用模板来管理一些服务器信息。Ansible 连接字符串以在jinja2中创建变量,ansible,jinja2,Ansible,Jinja2,我正在尝试使用模板来管理一些服务器信息。 对于prod或stage,代码的工作方式相同 {%- for key_uber, value_uber in uber_dict|dictsort -%} {%- for env_item in ["stage" , "prod"] -%} {#SET UP OPERATION#} {%- if value_uber.environment.prod == false and value_uber.prod !=
对于prod或stage,代码的工作方式相同
{%- for key_uber, value_uber in uber_dict|dictsort -%}
{%- for env_item in ["stage" , "prod"] -%}
{#SET UP OPERATION#}
{%- if value_uber.environment.prod == false and value_uber.prod != [] -%}
{%- set operation_type = 'create' -%}
{%- elif value_uber.environment.prod != false and value_uber.prod != [] -%}
{%- set operation_type = 'update' -%}
{%- else -%}
{%- set operation_type = 'cancel' -%}
{%- endif -%}
{%- endfor -%}
{{- card_list.append(operation_type) -}}
{%- endfor -%}
基本上,我想做的是为所有产品或阶段重新保存env_项。是否可以连接或联接变量以创建新变量 澄清和示例
所以,让我尝试添加一些澄清和一些uber_dict的示例 这是uber_dict的基本组成部分:
{
"app_1": {
"criticality": "3 - Normal",
"owner": [
"owner1@nomail.com"
],
"prod": [
"server1",
"server2"
],
"stage": [
"server3",
"server4"
]
},
"app_2": {
"criticality": "3 - Normal",
"owner": [
"owner2@nomail.com"
],
"prod": [
"server1"
],
"stage": [
"server5"
]
}
}
我试图做的是使模板的代码独立于环境。当我调用value_uber.environment.prod时,我可以使用prod或stage代替prod 例如: value\u uber.environment.prod-->value\u uber.environment.env\u项目
谢谢最后,这比我想象的要容易
{%- for key_uber, value_uber in uber_dict|dictsort -%}
{%- for env_item in ["stage" , "prod"] -%}
{#SET UP OPERATION#}
{%- if value_uber.environment[env_item] == false and value_uber[env_item] != [] -%}
{%- set operation_type = 'create' -%}
{%- elif value_uber.environment[env_item] != false and value_uber[env_item] != [] -%}
{%- set operation_type = 'update' -%}
{%- else -%}
{%- set operation_type = 'cancel' -%}
{%- endif -%}
{%- endfor -%}
{{- card_list.append(operation_type) -}}
{%- endfor -%}
你有很多代码,但它不是;你想做什么,用最小的例子演示?