Hello, David.

You could use a lookup table implemented as a simple dict. If you only need it in one task, you can define it in that task's vars section as I've done below, or farther "up" in host_vars, group_vars, etc., as long as it's defined somewhere. Here's a simple demo. I'm mapping colors to veggies, but you could map to file names or whatever. Be sure to handle the "missing" case.

[utoddl@tango ansible]$*cat select-artifact.yml*
---
- name: Select artifact based on value
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Match an artifact based on a value
      ansible.builtin.debug:
        msg: "Value {{ item }} matches artifact {{*artifacts[item]*  | 
default('!missing!') }}."
      vars:
*artifacts:****green: cucumbers****red: tomatoes****purple: cabage****yellow: squash*
      loop:
        - red
        - orange
        - yellow
        - green
        - blue
        - indigo
        - violet
[utoddl@tango ansible]$*ansible-playbook select-artifact.yml*

PLAY [Select artifact based on value] 
*********************************************************

TASK [Match an artifact based on a value] 
*****************************************************
ok: [localhost] => (item=red) => {
    "msg": "Value red matches artifact tomatoes."
}
ok: [localhost] => (item=orange) => {
    "msg": "Value orange matches artifact !missing!."
}
ok: [localhost] => (item=yellow) => {
    "msg": "Value yellow matches artifact squash."
}
ok: [localhost] => (item=green) => {
    "msg": "Value green matches artifact cucumbers."
}
ok: [localhost] => (item=blue) => {
    "msg": "Value blue matches artifact !missing!."
}
ok: [localhost] => (item=indigo) => {
    "msg": "Value indigo matches artifact !missing!."
}
ok: [localhost] => (item=violet) => {
    "msg": "Value violet matches artifact !missing!."
}

PLAY RECAP 
************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    
skipped=0    rescued=0    ignored=0

Cheers,
--
Todd

On 7/14/23 2:00 PM, David Nadelson wrote:
Hi All,
I'm a DBA learning to use ansible to automate.  I'm wondering if anyone can point me to docs on how to use ansible to select a file based on the value of a variable.   i.e.  if variable=x than choose 1.txt  if variable=y then choose 2.txt.

Thanks,

David

--
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/2927e3e7-9dae-26e1-d51c-e42a3acd6607%40gmail.com.

Reply via email to