Variables 可解变量赋值

Variables 可解变量赋值,variables,ansible,increment,roles,Variables,Ansible,Increment,Roles,我想在剧本中运行一个角色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/ex

我想在剧本中运行一个角色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 ????
我该怎么做?
如何声明变量并为其赋值(在运行角色/剧本期间)?语法是什么?在ansible文档中,对于变量,没有一个简单的示例说明如何为变量赋值(不使用寄存器:P)

您可以使用

set\u fact
模块增加变量:

- set_fact: some_variable={{ some_variable | int + 1 }}
运行额外任务的条件应如下所示:

  when: some_variable | int == 5
确保始终使用
|int
将值强制转换为int,否则将作为字符串处理