2015-06-10 3 views
21

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

  1. задача
  2. роль
  3. задача
  4. роль
  5. задача

Это я то, что я до сих пор (задача, роль, задачи):

--- 
- name: Task Role Task 
    hosts: 127.0.0.1 
    connection: local 
    gather_facts: false 

    pre_tasks: 
    - name: Do this task first 
    foo: 

    roles: 
    - role: this role second 
    foo: 

    post_tasks: 
    - name: Do this task third 
    foo: 

Возможно ли это или я должен быть меняющегося свои задачи в роли?

ответ

13

Я рекомендую вам создавать роли для задач post и pre для вас.

Ваш site.yml должен быть какой-то вроде этого:

--- 
- hosts: localhost 
    remote_user: "{{remote_user}}" 
    sudo: yes 
    gather_facts: false 
    roles: 
    - pre 
    - main_role 
    - post 

в роли папки вы должны иметь три роли, заранее, пост и main_role.

+1

Это правильный подход, так как он будет корректно работать для прокатки обновлений, в отличие от отдельных разделов узлов. – MattK

19

Каждый блок «hosts:» будет выполняться один за другим. Таким образом, вы можете использовать несколько блоков для принудительного выполнения заказа:

--- 
- hosts: 127.0.0.1 
    tasks: 
    - name: Do this task first 

- hosts: 127.0.0.1 
    roles: 
    - role: this role second 

- hosts: 127.0.0.1 
    tasks: 
    - name: Do this task third 
+3

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

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