I have been trying to add conditionals for my tasks and roles.
But, the one I entered for role is getting evaluated to true always and the one on the tasks are evaluated to false.
Can you help on what needs to be changed.
Below is my playbook
hosts: sec
roles:
role: service-operations
when: (bName == ‘security’) or (bName == ‘all’)
hosts: core
roles:
role: service-operations
when: (bName == ‘core’) or (bName == ‘all’)
hosts: composition
roles:
role: service-operations
when: (bName == ‘composition’) or (bName == ‘all’)
The above playbook is getting executed for all hosts, even though the bName ‘security’.
Below are the tasks
name: Adding the User account to Log on as a service
win_user_right:
name: SeServiceLogonRight
users:
name: Start the service with logon
win_service:
name: “{{ service }}”
start_mode: auto
state: started
username: “{{ srvLogOnUsr }}”
password: “{{ srvLogOnPassword }}”
when:
opr == “Start”
uselogonUser == “true”
Both these tasks are gettign skipped even though uselogonUser = true & opr = Start
The above playbook is getting executed for all hosts, even though the bName 'security'.
Where is bName defined?
Below are the tasks
- name: Adding the User account to Log on as a service
win_user_right:
name: SeServiceLogonRight
users:
- '{{ srvLogOnUsr }}'
action: add
when: uselogonUser
- name: Start the service with logon
win_service:
name: "{{ service }}"
start_mode: auto
state: started
username: "{{ srvLogOnUsr }}"
password: "{{ srvLogOnPassword }}"
when:
- opr == "Start"
- uselogonUser == "true"
Both these tasks are gettign skipped even though uselogonUser = true & opr = Start
true (boolean value) is different from "true" (string).
I have been trying to add conditionals for my tasks and roles.
But, the one I entered for role is getting evaluated to true always and the one on the tasks are evaluated to false.
Can you help on what needs to be changed.
Below is my playbook
hosts: sec
roles:
role: service-operations
when: (bName == ‘security’) or (bName == ‘all’)
hosts: core
roles:
role: service-operations
when: (bName == ‘core’) or (bName == ‘all’)
hosts: composition
roles:
role: service-operations
when: (bName == ‘composition’) or (bName == ‘all’)
The above playbook is getting executed for all hosts, even though the bName ‘security’.
But the conditional has an OR in it, so the entire expression will be influenced by two sub expressions.
You can add debug tasks for both variables to each play section. This will reveal what values are being used, giving a hint as where to look why these variables get overridden.