I have this task in a play for group ‘dbservers’:
name: test
debug: msg=‘{{ is_master }}’
sudo: true
sudo_user: postgres
when: is_master
with_items: groups[‘dbservers’][1::]
I wrote this because I wanted only master ( which is groups[‘dbservers’][0] with hostname ‘pgserver-1’ ) to show the message for every slave.
is_master is evaluated before based on the hostname.
With 1 master and 1 slave it doesn’t work:
TASK: [database | test] *******************************************************
<…> ESTABLISH CONNECTION FOR USER: root
<…> ESTABLISH CONNECTION FOR USER: root
ok: [pgserver-2] => (item=pgserver-2) => {
“item”: “pgserver-2”,
“msg”: “False”
}
ok: [pgserver-1] => (item=pgserver-2) => {
“item”: “pgserver-2”,
“msg”: “True”
}
The first message shouldn’t be shown but be skipped. It’s like ‘when’ isn’t working but is_master is correctly evaluated. what am I doing wrong?