when: ansible_fqdn == "VM-0213.step.zrz.internal"
 
does not create any error in the set_fact TASK. It does not set anything either 
unfortunately. Which, thinking of it, seems logical as we just compare the 
string ansible_fqdn with another string and not the value of the variale {{ 
ansible_fqdn }}. so that seems to be a dead end.
 
the second option seems too complex for my current scenario. I am trying to 
gather all variables into a singe place. And having to create a 
host_vars/<fqdn>.yml file for each host on each execution contradicts that a 
bit too much.
 

> On 07/02/2023 8:03 PM CEST Todd Lewis <[email protected]> wrote:
>  
>  
> Or, better yet in my opinion, set the default value for "level" in 
> group_vars/<name_of_group>.yml, then for hosts which need a different "level" 
> set that in an appropriately named host_vars file, like 
> host_vars/VM-0213.step.zrz.internal.yml.
> 
> This let's you expresses facts about hosts as data rather than as results of 
> expressions in set_fact or other tasks, task which you no longer need to run.
> --
> Todd
> 
> On 7/2/23 1:56 PM, Todd Lewis wrote:
> 
> > There's a problem with your "when:" conditionals.
> > 
> > First of all, throw out the second, because the strings that are "when:" 
> > expressions are already being evaluated in a Jinja2 context, so the 
> > mustaches shouldn't be there.
> > 
> > In the first option, on this line:
> > 
> > when: ansible_fqdn == VM-0213.step.zrz.internal
> > 
> > the "ansible_fqdn" part is okay, but the expression on the right-hand side 
> > "==" should be a string. Instead it's the value of the variable "VM" minus 
> > the octal number 0213's missing attribute "step"'s missing attribute 
> > "zrz"'s missing attribute "internal".
> > 
> > So, yeah, no wonder that doesn't work.
> > 
> > Try this instead:
> > 
> > when: ansible_fqdn == "VM-0213.step.zrz.internal"
> > 
> > and let us know how you get on.
> > --
> > Todd
> > 
> > On 7/2/23 11:12 AM, dulhaver via Ansible Project wrote:
> > 
> > > 
> > > hi,
> > > 
> > > I want to take different sligthly routes in a playbook based on the 
> > > particular remote. All remotes are in the same hosts group.
> > > I am trying to do this by setting a fact based on the ansible_fqdn value.
> > > Based on that fact ('keycloak' in my example here) I am including 
> > > different tasks files.
> > > 
> > > these 2 options do not work though:
> > > 
> > > ################################################################
> > > - ansible.builtin.set_fact:
> > > level: keycloak
> > > when: ansible_fqdn == VM-0312.step.zrz.internal
> > > 
> > > - ansible.builtin.set_fact:
> > > level: keycloak
> > > when: "{{ ansible_fqdn == VM-0312.step.zrz.internal }}"
> > > 
> > > ################################################################
> > > 
> > > is there a way to achieve this?
> > > 
> > > 
> > 
> 
> --
> Todd
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/285005646.577914.1688364646118%40office.mailbox.org.

Reply via email to