Я написал пьесуанзибль: Добавление ключа содержание host1 в authorized_keys от host2
- Генерировать ключи паба на host1
- Копирование в пабе клавиши на моей управления машиной
- Развертывание ключей паба на втором хосте, т.е. host2
- hosts: '{{ target }}'
tasks:
- name: Check admin pub keys are present on host1
stat:
path: /var/services/homes/admin/.ssh/id_rsa.pub
- name: Generate pub keys on host1 if non-existing
user:
name: admin
generate_ssh_key: yes
ssh_key_bits: 4096
when: stat_result.stat.exists == False
- name: Downloading pub key from host1 to the control machine
command: scp [email protected]{{ansible_host}}:/var/services/homes/admin/.ssh/id_rsa.pub /tmp/
delegate_to: 127.0.0.1
- name: Copy pub key of host1 to host2
authorized_keys:
user: admin
key: "{{ lookup('file', '/tmp/id_rsa.pub') }}"
state: present
я запускаю его с:
ansible-playbook -i hosts keys.yml -e "target=host1"
проблемой в последней задаче, то есть копировать паб ключ host1 в host2. Как это записано, он снова скопирует ключ pub на host1.
Как я могу заставить Ansible скопировать ключ pub в host2 вместо этого? Спасибо
На самом деле мне не нужно привлекать мое управление машиной. Я мог бы scp прямо к host2. Проблема в том, что я хотел бы добавить содержимое файла id_rsa.pub в файл authorized_keys хоста2, а не просто скопировать его. Могу ли я сделать это с вашей командой? Спасибо – diegus
так, scp он там первый, тогда вы его коту и указываете, чтобы добавить файл authorized_keys.- убедитесь, что вы используете >>, поскольку один> фактически уничтожит существующие данные в файле authorized_keys. –