Hi,
I have some tasks in a role that creates .ssh directory, generates a key on one of the servers, copy the public key on local and then run authorized_key module to copy the public key in the other nodes.
The problem is that after generating the key with the condition that gets executed only on ha01 host, all other tasks get executed only on host ha01…
- name: Create directory
become: yes
file:
path: “/root/.ssh”
state: directory - name: Generate /etc/ssh/ RSA host key
become: yes
openssh_keypair:
path: /root/.ssh/id_rsa
type: rsa
command : echo -e ‘y\n’|ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C “” -N “”
register: output
when: ansible_hostname == ‘ha01’
- debug: var=output.stdout_lines
- name: Copy pub key to local
become: yes
fetch:
src: /root/.ssh/id_rsa.pub
dest: /git/cephprep/files/
when: ansible_hostname == ‘ha01’ - name: Set authorized key took from file
become: yes
authorized_key:
user: root
state: present
key: “{{ lookup(‘file’, ‘/git/cephprep/files/ha01/root/.ssh/id_rsa.pub’) }}”
Also, next yml file gets executed only on ha01
Everything works fine but…only on ha01