Let\'s say that we have defined two machines in our inventory file:
[db-server-preprod]
172.16.0.1
172.16.0.2
If I run a playbook against this gr
You can use in the playbook main.yml
"serial = 1" so it executes one by one, and you can ensure that the playbook would execute on the master node and after that it would execute on the others nodes.
- hosts: allnodes
remote_user: "{{user}}"
become: True
serial: 1
roles:
- role: your_role
You may place your master host into separate group, then apply common role to all servers at once, then apply master-roles only to master server, and slave-roles to all servers except master using excluding pattern.
Inventory:
[all-servers]
host1
host2
host3
host4
[master-server]
host2
Playbook:
---
- hosts: all-servers
gather_facts: no
tasks:
- debug: msg=role-common
- hosts: master-server
gather_facts: no
tasks:
- debug: msg=role-master
- hosts: all-servers:!master-server
gather_facts: no
tasks:
- debug: msg=role-slave