gpt4 book ai didi

条件中的 ansible join 字符串和变量

转载 作者:行者123 更新时间:2023-12-05 04:10:47 26 4
gpt4 key购买 nike

我不知道如何在条件中连接字符串和 {{ item }}。我不确定这是否可行或是否受支持

这是我的任务 block :

- name: enable repos
command: "subscription-manager repos --enable {{ item }}"
when: enable_repo_{{ item }} == 'yes'
with_items:
- rhel-7-server-rpms
- rhel-7-server-optional-rpms
- rhel-7-server-extras-rpms
- rhel-7-server-satellite-tools-6.2-rpms
- rhel-7-server-thirdparty-oracle-java-rpms
- jws-3-for-rhel-7-server-rpms

我得到的错误是:

TASK [satellite_client : enable repos] *****************************************
fatal: [10.187.15.31]: FAILED! => {"failed": true, "msg": "The conditional check 'enable_repo_item == 'yes'' failed. The error was: error while evaluating conditional (enable_repo_item == 'yes'): 'enable_repo_item' is undefined\n\nThe error appears to have been in '/home/marcp/git/satellite_client/tasks/main.yml': line 21, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: enable repos\n ^ here\n"}

PLAY RECAP *********************************************************************
10.187.15.31 : ok=1 changed=0 unreachable=0 failed=1

我如何将字符串与 {{ item }} 连接起来,或者我应该以不同的方式进行连接?

最佳答案

when 中的条件应该是一个 Jinja2 表达式(所以你可以认为它隐含在 {{ ... }} 中,因此不能打开另一个 Jinja2表达在里面)。

您可以使用 vars 字典并将变量名称作为连接字符串传递:

when: vars['enable_repo_' + item] == 'yes'

关于条件中的 ansible join 字符串和变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com