2015-03-16 7 views
4

Я хочу запустить роль 10 раз в playbook и только на 5-м запуске этой роли, я хочу, чтобы она запускала второй shell-код из этой роли. Как я могу обратиться к этому? Playbook:Назначение переменных переменных

- 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 ???? 

Как я могу это сделать? Как я могу объявить переменную и присвоить ей значение (во время выполнения роли/playbook)? Что такое синтаксис? В анзибль документации, в переменных, не существует простой пример того, как можно присвоить значение переменной (не с регистром: P)

ответ

12

Вы можете использовать set_fact модуль для увеличения вашей переменной:

- set_fact: some_variable={{ some_variable | int + 1 }} 

Ваше условие для запуска дополнительных задач, то должен выглядеть следующим образом:

when: some_variable | int == 5 

Убедитесь, что вы всегда отбрасывать значение к междунар с | int или он будет обработан в виде строки.

Смежные вопросы