【发布时间】:2023-01-12 03:55:19
【问题描述】:
我这里有这个变量,在 .yaml 变量文件中设置
patch_plan: 'foo-{{ patch_plan_week_and_day }}-bar'
我希望根据role动态设置我的patch_plan_week_and_day变量和environment 这是在该变量文件之外的其他地方(现在无关紧要)设置的另外 2 个变量。
例如,我将解释3种情况:
- 如果
role = 'master'和environment = 'srvb'那么patch_plan_week_and_day = 'Week1_Monday'就是patch_plan = 'foo-Week1_Monday-bar'的最终结果。 - 如果
role != 'master'和environment = 'srvb'那么patch_plan_week_and_day = 'Week1_Tuesday'就是patch_plan = 'foo-Week1_Tuesday-bar'的最终结果 - 如果
role = 'slave'和environment = 'pro'那么patch_plan_week_and_day = 'Week3_Wednesday'和patch_plan = 'foo-Week3_Wednesday-bar'的最终结果
这是代码的想法:
patch_plan: 'foo-{{ patch_plan_week_and_day }}-bar'
# Patch Plans
## I want something like this:
# case 1
patch_plan_week_and_day: Week1_Monday
when: role == 'master' and environment == 'srvb'
# case 2
patch_plan_week_and_day: Week1_Tuesday
when: role != 'master' and environment == 'srvb'
# case 3
patch_plan_week_and_day: Week3_Wednesday
when: role == 'slave' and environment == 'pro'
我总共有14个案例。
【问题讨论】:
标签: variables ansible conditional-statements case