I'm curious how these notions caught on that very clearly expressed
shell expressions are inherently "bad", and that unfathomably complex
jinja2 expressions are inherently "better".
I seriously doubt you're going to find a more maintainable, all-Ansible
expression to accomplish what you're doing.
However, I would suggest a couple alterations.
(A) I'd make that "changed_when:" into a "failed_when:", and
(B) I'd add "changed_when: false" (because it doesn't ever change anything).
(C) I might also add a "vars:" to your set_fact task that maps
"location[XYZ]" to your smtp.conf expressions:
vars:
locmap:
locationX: snmpd.conf-X
locationY: snmpd.conf-Y
locationZ: snmpd.conf-Z
Then your set_fact becomes "snmpd_conf: '{{
locmap[grep_result.stdout_lines[0]] }}'
That way you don't have to change "code" to update your location map data.
On 3/7/24 11:02 AM, Alex Wanderley wrote:
Hello,
(And apologies if this is something too trivial...)
I have a working playbook that searches and collects a string from a
file and, based on that string, sets another variable.
But I'm retrieving the string using grep/awk:
- name: Collect server location
ansible.builtin.shell: "/bin/grep {{ inventory_hostname }} {{
server_list_file }} | /bin/awk '{print $3}'"
register: grep_result
changed_when: ( grep_result.rc != 0 )
"{{ server_list_file }}" points to a file that looks like this:
serverA flavor locationX owner
serverB flavor locationY owner
serverC flavor locationZ owner
For completeness, this is how I'm using "grep_result":
- name: Set snmpd config file
ansible.builtin.set_fact:
snmpd_conf: "{% if grep_result.stdout == 'locationX' %}snmpd.conf-X\
{% elif grep_result.stdout == 'locationY' %}snmpd.conf-Y\
{% else %}snmpd.conf-Z\
{% endif %}"
How could I, as simply as using the command/shell modules, accomplish
the same results without resourcing to shell commands?
Thanks a lot,
Alex
--
Edmonton_sig_RGB_S.jpg
Alex Wanderley
Application and Infrastructure Analyst II Server Solutions & Automation
Financial and Corporate Services | Open City and Technology
780-496-4156Office
780-819-0273Mobile
City of Edmonton
Century Place, 19th Floor
9803 102A Avenue NW
Edmonton AB, T5J 3A3
All information contained in this email post is proprietary to the
City of Edmonton, confidential and intended only for the addressed
recipient. If you have received this post in error, please disregard
the contents, inform the sender of the misdirection, and remove it
from your system. The copying, dissemination or distribution of this
email, if misdirected, is strictly prohibited.
/The contents of this message and any attachment(s) are confidential,
proprietary to the City of Edmonton, and are intended only for the
addressed recipient. If you have received this in error, please
disregard the contents, inform the sender of the misdirection, and
remove it from your system. The copying, dissemination, or
distribution of this message, if misdirected, is strictly prohibited./ --
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CADp8UUQB4UhuBYY1ujzs%2BJpyyV8WTr6-xu4bV8uFNWz3vmMB1g%40mail.gmail.com
<https://groups.google.com/d/msgid/ansible-project/CADp8UUQB4UhuBYY1ujzs%2BJpyyV8WTr6-xu4bV8uFNWz3vmMB1g%40mail.gmail.com?utm_medium=email&utm_source=footer>.
--
Todd
--
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 ansible-project+unsubscr...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/a45140e9-6b7f-44e2-a4e4-4240d76f2fba%40gmail.com.