How to Work conditionals with "when" an variables

19 views
Skip to first unread message

SysAdmin EM

unread,
Feb 1, 2023, 11:40:31 AM2/1/23
to ansible...@googlegroups.com
Hi all, i need to understand how to work with this scenario.

I have this:

- name: "Creating DNS Record In CloudFlare"
 hosts: localhost
 gather_facts: no
 vars:
   "prod":
      clfrecord-prod: "prod-{{ carrier }}"
   "stage":
      clfrecord-stage: "stage-{{ carrier }"
 tasks:
     community.general.cloudflare_dns:
       zone: domain.net
       record: "{{HERE ADD clfrecord}}"
       type: CNAME
       value: x-x-xxx.elb.x-x-x.amazonaws.com
       account_email:
       account_api_key:
       proxied: yes

I passed the vars "carriers" and "env" from console.

I need to compare the console variable "{{ env }}" and if it matches prod add the value of clfrecord-prod to the "record" field, and if it is stage its corresponding value.

any helps?

Todd Lewis

unread,
Feb 1, 2023, 11:49:02 AM2/1/23
to Ansible Project
You've got some convoluted variable definitions. Consider doing this instead
  vars:
    clfrecord:
      prod: "prod-{{ carrier }}"
      stage: "stage-{{ carrier }}"
Then in your task you can say

Todd Lewis

unread,
Feb 1, 2023, 11:56:54 AM2/1/23
to Ansible Project
[I detest the groups interface, btw]

Let's try that again.

You've got some convoluted variable definitions. Consider doing this instead

  vars:
    clfrecord:
      prod: "prod-{{ carrier }}"
      stage: "stage-{{ carrier }}"

Then in your task you can say

    record: "{{ clfrecord[env] }}"

Cheers,
Reply all
Reply to author
Forward
0 new messages