- name: H - Set FIM Flag - RW
win_domain_group:
when: share_fim_managed == "yes" and share_azure_managed == "no"
domain_server: "{{ h_domain_server }}"
domain_username: "{{ h_domain_username }}"
domain_password: "{{ h_domain_password }}"
scope: global
name: "{{ h_g_prefix }}{{ g_name }}{{suffix_RW}}"
attributes:
NCHIDMMGI: FIM Managed - '{{ dateformat }}'
- name: H - Set Azure Flag - RW
win_domain_group:
domain_server: "{{ h_domain_server }}"
domain_username: "{{ h_domain_username }}"
domain_password: "{{ h_domain_password }}"
scope: global
name: "{{ h_g_prefix }}{{ g_name }}{{suffix_RW}}"
attributes:
NCHIDMMGI: Azure Managed - '{{ dateformat }}'
when: share_fim_managed == "no" and share_azure_managed == "yes"
- name: R - Set FIM/Azure Flag - RW
win_domain_group:
domain_server: "{{ r_domain_server }}"
domain_username: "{{ r_domain_username }}"
domain_password: "{{ r_domain_password }}"
scope: global
protect: yes
name: "{{ r_g_prefix }}{{ g_name }}{{suffix_RW}}"
attributes:
NCHIDMMGI: FIM / Azure Managed - '{{ dateformat }}'
when: share_fim_managed == "yes" and share_azure_managed == "yes"
## from the include file
share_fim_managed: "no"
share_azure_managed: "yes"
|
So,
I'm having fits with when conditionals matching stringsNo matter what I do, it applies each conditional, the combination of the variables doesn't seem to count for ... anything.
what the heck am I doing wrong? additionally, is there a better way to do this?
Are you actually comparing the strings "yes" and "no" to the variables? If they're actual booleans, you will be better off by doing:
when: share_fim_managed and not share_azure_managed
when: not share_fim_managed and share_azure_managed
when: share_fim_managed and share_azure_managed
All nonempty strings are true, even if they contain the strings "false" or "true", you should be careful when comparing truth values. See here:
---
- hosts: localhost
vars:
truestringvar: "true"
falsestringvar: "false"
trueboolvar: true
falseboolvar: false
tasks:
- debug:
msg: Since booleans matter, this message is not shown.
when: trueboolvar == 'true'
- debug:
msg: boolean values DO matter (this string is shown)
when: trueboolvar
- debug:
msg: The string that says false is not false, this message
will not be shown
when: not falsestringvar