Variables question - construct file name out of 2 facts

Hi,

Newbie question I suppose…

I have a tasks file inside a role where I want to copy some OS and Arch dependent package - 2 conditionals.

The issue I’m struggling with is to assign the right source file name to the task.

The task:

  • name: Copy the relevant pkg to /var/tmp
    copy: src=my_repo/{{ pkg _name }} dest=/var/tmp/

Now per OS/Arch I need to get the right name of the package
I have different packages for Linux x86 and x86_64 for example, same for Solaris sparc and x86…

I created a var/ main.yml file and thought populating it the the correct file name assignment

What’s the efficient way to get this ok?

Thanks

It sounds like you simply need to specify the system facts as the src name. For example, src=my_repo/{{ansible_system}}/{{ansible_architecture}}/{{pkg_name}}, which would work assuming you have your files organized as:

dir:
Linux/
x86/
x86_64/
Solaris:

sparc/
x86_64/

etc.

Hi,

Thanks,

What about the package name, if it is different between OS and Arch?

I managed now to include var files based on Ansible facts as their name, Is there a way to use Ansible facts as var names?
Example:

my_pkg_Linux_x86_64: ''package name''

And use ''my_pkg_{{ ansible_system }}_{{ansible_architecture}}'' as the argument to module in a task?

Yes, all ansible facts are variables available to be used.