Я пытаюсь использовать ansible (версия 2.1.2.0) для создания имени ssh по всей нашей сети серверов. Запуск анзибля из коробки прыжка я создаю набор пользователей и создание частной пары ключей/общественность с модулем пользователейAnsible авторизованный ключевой модуль не может прочитать открытый ключ
- user:
name: "{{ item }}"
shell: /bin/bash
group: usergroup
generate_ssh_key: yes
ssh_key_comment: "ansible-generated for {{ item }}"
with_items: "{{ list_of_usernames }}"
Оттуда я хотел бы, чтобы скопировать через открытый ключ authorized_users файл на каждом удаленный сервер. Я использую authorized_key_module извлечь и скопировать сгенерированный открытый ключ пользователя в качестве authorized_key на удаленных серверах:
- authorized_key:
user: "{{ item }}"
state: present
key: "{{ lookup('file', '/home/{{ item }}/.ssh/id_rsa.pub') }}"
with_items:
- "{{ list_of_usernames }}"
Что я нахожу в том, что поиск будет провал, поскольку она не в состоянии получить доступ к файлу паба в пользовательской папке .ssh. Он будет работать счастливо, но если я запустим его как пользователя root (для меня это не вариант, который я готов взять).
fatal: [<ipAddress>]: FAILED! => {"failed": true, "msg": "{{ lookup('file', '/home/testuser/.ssh/id_rsa.pub') }}: the file_name '/home/testuser/.ssh/id_rsa.pub' does not exist, or is not readable"}
Есть ли лучший способ сделать это, кроме как работать с правами root?
Edit: К сожалению, я забыл упомянуть, что я бегу с стать: да
Edit # 2: Ниже сгущенное Playbook, что я пытаюсь запустить, конечно, в данном случае это будет добавлять authorized_key к локальному хосту, но показывает ошибку я обращенную:
---
- hosts: all
become: yes
vars:
active_users: ['user1','user2']
tasks:
- group:
name: "users"
- user:
name: "{{ item }}"
shell: /bin/bash
group: users
generate_ssh_key: yes
with_items: "{{ active_users }}"
- authorized_key:
user: "{{ item }}"
state: present
key: "{{ lookup('file', '/home/{{ item }}/.ssh/id_rsa.pub') }}"
become: yes
become_user: "{{ item }}"
with_items:
- "{{ active_users }}"
Но как бы вы создали новых пользователей без привилегий root? –
Извините, я думал написать это, когда писал вопрос, я действительно использую: yes – Aeladru
И почему вы не можете просто «стать: да» для следующей задачи? –