Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 连接字符串以在jinja2中创建变量_Ansible_Jinja2 - Fatal编程技术网

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 -%}

你有很多代码,但它不是;你想做什么,用最小的例子演示?