Good morning,
Is there a way to perform variable replacement in text read from an
external file via the file lookup into a list, in the same way that it
would be if the list was specified in the playbook task?
I want to read a set of commands from a different file depending on the
value of a variable (which is fine, that works) but also to be able to
override a value on a case by case basis.
Unfortunately I can't use a Jinja2 template file as the module does not
work properly with them. (At least with versions up to and including 2.6)
What I'm trying to do is to use the ios_config module to configure
interfaces on Cisco switches. I can't use ios_l2_interface because there
are settings I need to pass which can't yet be set with that module so I
have to pass a list of commands to ios_config instead. It does support
template files, but unfortunately a number of other parameters for
ios_config are for some reason mutually exclusive with using templates vs
lists of strings, and those parameters are needed for it to work.
If I pass a list of strings to the module, it works as desired:
commands:
- switchport mode trunk
- switchport trunk native vlan {{ cisco_access_vlan | default('1') }}
- ...
Ideally I want to be using a with_items loop on a dict contained in config
variables to iterate through a set, and based on a variable in that dict,
reading a file:
commands: "{{ lookup('file', '{{ role_path }}/templates/profile-{{
item.profile }}.txt').split('\n') }}"
This works but passes the text verbatim to the module (if the text in the
first example is used, the second line can't be parsed by the device and
gives errors). Worst case I'll have to create a profile file every time I
want something slightly different. But I'd hoped to create a more reusable
system.
So is there any way to use the file lookup as given in the second example,
but still do variable expansion/substitution such as in the first example
above.
Thanks,
Steve.
--
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/a35b905f-224e-43ef-8c49-e6854d6316a6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.