Hi everyone,

I'm still a bit new to Ansible. I really like it, but it can be a little 
flummoxing at times for a beginner ;).

For example, I am probably going about this the wrong way, but consider 
these lines from a playbook:
- name: Configure MTA to Local Only -- CIS 3.16
  lineinfile: dest=/etc/postfix/main.cf
    regexp='^(?i)inet_interfaces.*'
    line='inet_interfaces = localhost'
    state=present

This produces the following output:
TASK: [cis | Configure MTA to Local Only -- CIS 3.16] 
************************* 
failed: [devct67.umaryland.edu] => {"failed": true, "item": "", "rc": 257}
msg: Destination /etc/postfix/main.cf does not exist !


OK. So, not *all* of my machines have postfix on them. But *if* they do, I 
want to run this 'lineinfile' command.

I have considered almost every "when" option I can think of, but most of 
them fail because it's a negative test. For example, I wrote a plugin that 
returns all packages on a system in a dictionary. So I had a line like:

when: "packages['postfix'] == True"

produces:
TASK: [cis | Configure MTA to Local Only -- CIS 3.16] 
************************* 
fatal: [devct67.umaryland.edu] => error while evaluating 
conditional:umb_packages
['postfix'] == True

That fails, however, when postfix isn't installed, which is exactly what 
I'm trying to find out.

So- what are my options? How *should* I be doing this?

-- 
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/3dfe815e-cd8f-4a4d-9c2b-7ed1dbd17df8%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to