Gah! Of course. known.stdout_lines is a list, so
loop:
- '{{ known.stdout_lines }}'
passes the whole list as a single item. So you need to not put the list
in a list:
loop: '{{ known.stdout_lines }}'
should do the trick.
—
Todd
On 5/23/24 11:17 AM, Dimitri Yioulos wrote:
Todd, I made the change, but, the last play failed:
*TASK [Append to all known_host files]
*****************************************************************************************************
Thursday 23 May 2024 11:06:33 -0400 (0:00:01.629) 0:00:06.012 **********
Thursday 23 May 2024 11:06:33 -0400 (0:00:01.629) 0:00:06.011 **********
failed: [myhost] (item=['/root/.ssh/known_hosts',
'/home/user1/.ssh/known_hosts', '/home/user2/.ssh/known_hosts',
'/home/user3/.ssh/known_hosts', '/home/user4/.ssh/known_hosts']) =>
changed=true
ansible_loop_var: item
cmd: cat /tmp/append >> ['/root/.ssh/known_hosts',
'/home/user1/.ssh/known_hosts', '/home/user2/.ssh/known_hosts',
'/home/user3/.ssh/known_hosts', '/home/user4/.ssh/known_hosts']
delta: '0:00:00.012330'
end: '2024-05-23 11:06:33.947617'
item:
- /root/.ssh/known_hosts
- /home/user1/.ssh/known_hosts
- /home/user2/.ssh/known_hosts
- /home/user3/.ssh/known_hosts
- /home/user4/.ssh/known_hosts
msg: non-zero return code
rc: 1
start: '2024-05-23 11:06:33.935287'
stderr: '/bin/sh: line 1: [/root/.ssh/known_hosts,: No such file or
directory'
stderr_lines: <omitted>
stdout: ''
stdout_lines: <omitted>*
I wonder if *[ *in *[/root/.ssh/known_hosts* is getting in the way,
since */root/.ssh/known_host* does exist.
On Thursday, May 23, 2024 at 10:50:28 AM UTC-4 Todd Lewis wrote:
You want stdout_lines rather than stdout. The former is a list
with new-lines removed. The latter is a possibly very long string
with the complete output stream intact.
- name: Append to all known_host files
shell: cat /tmp/append >> {{ item }}
loop:
- '{{ known.stdout_lines }}'
On 5/23/24 9:07 AM, Dimitri Yioulos wrote:
Good day, all. I hope I'm not wearing out my welcome with too
many questions.
In the following playbook, I first find any know_host file for
any user on a particular system. I then copy a file with the list
of additions to add to the known_hosts files. What I want to do
is use the output of my register values to make changes to those
know_host files, which my last play does. My iteration is wrong,
though.
The playbook:
*---
- hosts: all
gather_facts: false
become: yes
vars:
script_path: <script>
tasks:
- name: Find known hosts
shell: find /root /home -type f -name known_hosts
register: known
- name: Debug known_hosts paths
debug:
msg: "{{ known.stdout }}"
- name: Set fact with known_hosts paths
set_fact:
known_hosts_paths: "{{ known.stdout_lines }}"
- name: Upload entries for new known_hosts svn
copy:
src: append
dest: /tmp/append
owner: root
group: root
mode: u=rwx,g=rw,o=rw
- name: Append to all known_host files
shell: cat /tmp/append >> {{ item }}
loop:
- '{{ known.stdout }}'*
The output of the first play:
*ok: [myhost] =>
msg: |-
/root/.ssh/known_hosts
/home/user1/.ssh/known_hosts
/home/ user2/.ssh/known_hosts
/home/ user3/.ssh/known_hosts
/home/ user4/.ssh/known_hosts*
How do I make that last play work? --
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 view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/84e78306-66cf-4d86-8b45-d1c4816c598en%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/84e78306-66cf-4d86-8b45-d1c4816c598en%40googlegroups.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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/48b522d1-3503-4606-958b-29ab38398f5en%40googlegroups.com
<https://groups.google.com/d/msgid/ansible-project/48b522d1-3503-4606-958b-29ab38398f5en%40googlegroups.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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/b661295c-91dd-449f-ad73-d1eb4a60f7a1%40gmail.com.