I am having issues with using multiple conditions in when to validate whether or not to run a task.
Basically I am using extrended variables within the ansible command to state what sort of updates I want to run like this:
ansible-playbook site.yml -i inventory --ask-vault -u (username)-e "security=true restart=true" -k -K
- name: Update all packages
yum:
name: "*"
state: latest
exclude: "kernel*"
when: security is not defined or kernel is not defined or specified_packages is not defined and ansible_os_family == "RedHat"
However I can not figure out a combination to get this conditional to run properly. Everytime I run it the playbook continues to run the task when I dont want it to. I already experimented with adding another variable to specify if I want to skip this task only but I would prefer it to automatically get skipped when I specify to run another type of update.
I've tried the following:
(security is not defined or kernel is not defined or specified_packages is not defined) and (ansible_os_family == "RedHat")
(security is not defined or kernel is not defined or specified_packages is not defined) and ansible_os_family == "RedHat"
or even:
when: ansible_os_family == "RedHat"
when: security is not defined or kernel is not defined or specified_packages is not defined