ady*_*531 6 variables roles increment ansible
我想在一个剧本中运行10次角色,并且仅在该角色的第5次运行时,我希望它从该角色中运行第二个shell cmd.我该如何解决这个问题?剧本:
- name: bla bla
hosts: ALL
remote_user: root
vars:
some_variable: 0
roles:
- role: nonreg
whentorun:
- post
Run Code Online (Sandbox Code Playgroud)
实际的角色是这样的:
- name: basic
shell: /scripts/nonReg/expoNonRegTest.sh {{ item }}
{{ some variable }} ++ ???
with_items: "{{ whentorun }}"
- name: on 5th run
shell: /scripts/nonReg/expoNonRegTest.sh diff
when: {{ some variable }} == 5 ????
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?如何声明变量并为其赋值(在角色/剧本的运行期间)?语法是什么?在ansible文档中,在变量中,没有一个简单的例子说明如何为变量赋值(不是使用寄存器:P)
udo*_*dan 15
您可以使用该set_fact模块增加变量:
- set_fact: some_variable={{ some_variable | int + 1 }}
Run Code Online (Sandbox Code Playgroud)
您运行额外任务的条件应如下所示:
when: some_variable | int == 5
Run Code Online (Sandbox Code Playgroud)
确保始终将值转换为int,| int或者将其作为字符串处理.
| 归档时间: |
|
| 查看次数: |
9566 次 |
| 最近记录: |