Ansible playbook exécuter dans cet ordre: tâche, rôle, tâche, rôle, tâche

Pardonnez ma question de débutant, mais je voudrais exécuter trois tâches et utiliser deux rôles dans un playbook, dans l'ordre:

  1. tâche
  2. rôle
  3. tâche
  4. rôle
  5. tâche

C'est ce que j'ai jusqu'à présent (tâche, rôle, tâche):

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

Est-ce possible ou devrais-je changer mes tâches en rôles?

27
demandé sur simon 2015-06-10 20:48:49

3 réponses

Je vous recommande de créer des rôles pour les tâches post et pre pour vous ansible.

Votre site.yml doit être comme ceci:

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

Dans le dossier rôles, vous devez avoir trois rôles, pre, post et main_role.

16
répondu siavolt 2015-06-10 17:55:54

Chaque bloc"hosts:" sera exécuté un par un. Vous pouvez donc utiliser plusieurs blocs pour forcer l'ordre d'exécution souhaité:

---
- 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
22
répondu Michael Wyraz 2016-06-02 07:06:23
---
- name: Task Role Task
  hosts: 127.0.0.1
  connection: local
  gather_facts: false

  tasks:
    - name: task1
      foo: 

    - name: include role1
      include_role: 
        name: myrole1

    - name: task2
      foo:

    - name: include role2
      include_role: 
        name: myrole2

Voir documents officiels

4
répondu Roy Zeng 2018-07-12 06:46:03