Reading data from a file?

Hi.

I’m quite new to ansible.

I have an iptables module that takes an array of ip addresses and generates iptables rules using a template. It works well. It’s called like this:

  • { role: iptables, whitelisted_ips: [
    ‘1.1.1.1’, # dave
    ‘2.2.2.2’, # dave
    ‘3.3.3.3’, # dave
    ‘4.4.4.4’, # malcolm
    ‘5.5.5.5’, # edna
    ] }

As you can see, Dave has a lot of ip addresses. I’d like to call it like this instead:

  • { role: iptables, whitelisted_ips: [ ‘dave’, ‘malcolm’, ‘edna’, ] }

But I don’t know where to start. How can I do this?

Hope someone can help.

If you want to reference a previous variable, it's going to have to be
a scalar, and you have to do something like this:

whitelisted_ips: [ "{{dave}}", "{{malcolm}}" ...

The way I've been doing things like this is setting up a dict for the
environment or group like this:

    whitelisted_ips:
        dave:
            - 1.1.1.1
            - 2.2.2.2
        malcolm:
            - 4.4.4.4
        edna:
            - 5.5.5.5

And then calling roles like this:

- role: iptables

I like it because if you want to know what the settings are for a
group, you look at the group vars, or the environment, the environment
vars, instead of having it in the playbook, which is sort of the wrong
layer. I also have separate dicts for administrative concerns-
everything in the environment is going to be the same, there- and
services, where each group is liable to be different.