Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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 通过分析列表项值将字符串添加到列表中(如果项==';valor';,则将字符串a添加到列表中)_Ansible_Ansible Facts - Fatal编程技术网

Ansible 通过分析列表项值将字符串添加到列表中(如果项==';valor';,则将字符串a添加到列表中)

Ansible 通过分析列表项值将字符串添加到列表中(如果项==';valor';,则将字符串a添加到列表中),ansible,ansible-facts,Ansible,Ansible Facts,有必要在列表中添加字符串,以确保列表中的所有文件都是基于文件的 我需要在列表中添加一个字符串,其值取决于列表中某个属性的值 #ambprueba.yml 列出所有基础: -{BASE:'ambprueba_sc',TWO_TASK:'sc'} -{BASE:'ambprueba_si',TWO_TASK:'si'} -{BASE:'ambprueba_slucs',TWO_TASK:'001'} -{BASE:'ambprueba_slud',TWO_TASK:'105'} --------

有必要在列表中添加字符串,以确保列表中的所有文件都是基于文件的


我需要在列表中添加一个字符串,其值取决于列表中某个属性的值

#ambprueba.yml
列出所有基础:
-{BASE:'ambprueba_sc',TWO_TASK:'sc'}
-{BASE:'ambprueba_si',TWO_TASK:'si'}
-{BASE:'ambprueba_slucs',TWO_TASK:'001'}
-{BASE:'ambprueba_slud',TWO_TASK:'105'}
--------------------------
#预期结果
列出所有基础:
-{BASE:'ambprueba_sc',TWO_TASK:'sc',TIPO:'sc'}
-{BASE:'ambprueba_si',TWO_TASK:'si',TIPO:'si'}
-{BASE:'ambprueba_slucs',TWO_TASK:'001',TIPO:'slu'}
-{BASE:'ambprueba_slud',TWO_TASK:'105',TIPO:'slu'}
试试这个:

  - set_fact:
      LIST_BASES: []

  - name: "adding string value tipo to list"
    set_fact:
      LIST_BASES: "{{ LIST_BASES + [item | combine({'TIPO': item.TWO_TASK if item.TWO_TASK=='sc' or item.TWO_TASK=='si' else 'slu'})] }}"
    with_items: "{{ INFO_AMBIENTE.LIST_BASES }}"
第一个
set\u fact
任务将变量初始化为列表。第二个
set\u fact
任务附加了一个新的列表条目,该条目是“TIPO”键的原始
dict
与新的
dict
组合。“TIPO”的值是根据您的要求有条件设置的

#error:
fatal: [xxx.xxx.xxx.xxx]: FAILED! => {"msg": "template error while templating string: unexpected '%'. String: {{ ITEM.BASE + ITEM.TWO_TASK + [{'TIPO':{% if ITEM.TWO_TASK=='sc' or ITEM.TWO_TASK=='si' %}ITEM.TWO_TASK{% else% }slu }] }}"}

  - set_fact:
      LIST_BASES: []

  - name: "adding string value tipo to list"
    set_fact:
      LIST_BASES: "{{ LIST_BASES + [item | combine({'TIPO': item.TWO_TASK if item.TWO_TASK=='sc' or item.TWO_TASK=='si' else 'slu'})] }}"
    with_items: "{{ INFO_AMBIENTE.LIST_BASES }}"