Ansible变量赋值
Ansible variable assignment
我想 运行 一个剧本中的角色 10 次,并且只在该角色的第 5 次 运行,我想要 运行 第二次 shell从该角色中执行 cmd。我该如何解决?
剧本:
- name: bla bla
hosts: ALL
remote_user: root
vars:
some_variable: 0
roles:
- role: nonreg
whentorun:
- post
实际作用是这样的:
- 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 ????
我该怎么做?
如何声明一个变量并为其赋值(在 运行 或 role/playbook 期间)?语法是什么?在 ansible 文档中,在变量处,没有一个简单的示例说明如何为变量赋值(不使用寄存器:P)
您可以使用 set_fact
模块来递增您的变量:
- set_fact: some_variable={{ some_variable | int + 1 }}
你的 运行 额外任务的条件应该是这样的:
when: some_variable | int == 5
确保您始终使用 | int
将值转换为 int,否则它将作为字符串处理。
我想 运行 一个剧本中的角色 10 次,并且只在该角色的第 5 次 运行,我想要 运行 第二次 shell从该角色中执行 cmd。我该如何解决? 剧本:
- name: bla bla
hosts: ALL
remote_user: root
vars:
some_variable: 0
roles:
- role: nonreg
whentorun:
- post
实际作用是这样的:
- 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 ????
我该怎么做? 如何声明一个变量并为其赋值(在 运行 或 role/playbook 期间)?语法是什么?在 ansible 文档中,在变量处,没有一个简单的示例说明如何为变量赋值(不使用寄存器:P)
您可以使用 set_fact
模块来递增您的变量:
- set_fact: some_variable={{ some_variable | int + 1 }}
你的 运行 额外任务的条件应该是这样的:
when: some_variable | int == 5
确保您始终使用 | int
将值转换为 int,否则它将作为字符串处理。