Назад | Перейти на главную страницу

Лучшая практика для создания пользователей Ansible

Как лучше всего работать с локальными и удаленными пользователями в анзибле?

На данный момент я понимаю, что у нас есть локальный и удаленный компьютер с локальным пользователем по умолчанию и пользователем-администратором по умолчанию на удаленном компьютере. В стандартном случае joe сгенерирует пару ключей SSH и скопирует свой открытый ключ на удаленный '.ssh / authorised_keys'.

localhost                                           remotehost
=========                                           ==========
                                                    // sudo root user
user:joe                                            user:admin
passsword:xxx                                       password:admin123
.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys

Правильно ли я говорю, что стандартные настройки ansible.cfg будут

[defaults]
ansible_user=joe
ansible_ssh_user=admin
private_key_file=/home/pauloconnell/.ssh/id_rsa.pem

Я наткнулся на этот билет, в котором рекомендуется создать специального пользователя ansible для запуска удаленных команд. https://stackoverflow.com/questions/29392369/ansible-ssh-private-key-in-source-control

Опять же, картина будет выглядеть так: новый ansible_ssh_user создан на локальном компьютере, его пароль сохранен в хранилище, а затем тот же пользователь, созданный на удаленном сервере, с правильными разрешениями группы.

localhost                                           remotehost
=========                                           ==========
                                                    // sudo root user
user:joe                                            user:admin
passsword:xxx                                       password:admin123
~~.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys~~
user:ansible_ssh_user                               user:ansible_ssh_user    
.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys

Я хочу подтвердить, как изменится конфигурационный файл в этом случае?

[defaults]
ansible_user=ansible_ssh_user
ansible_ssh_user=ansible_ssh_user
private_key_file=??

Да и нет.

  • тебе не нужно ansible_ssh_user и ansible_user как использование ansible_ssh_* переменные устарели, начиная с версии 2.0. Видеть это примечание:

Ansible 2.0 отказался от ssh из ansible_ssh_user, ansible_ssh_host и ansible_ssh_port, превратив его в ansible_user, ansible_host и ansible_port. Если вы используете версию Ansible до 2.0, вам следует продолжать использовать переменные старого стиля (ansible_ssh_ *). Эти более короткие переменные без предупреждения игнорируются в старых версиях Ansible.

  • В большинстве случаев устанавливать private_key_file.

  • Вам не нужно иметь ansible_user на управляющей машине. Вам просто нужно убедиться, что ваш обычный пользователь на управляющей машине может войти как ansible_user на удаленном хосте, что означает, что вам нужно скопировать ключ ssh на удаленный хост. ssh-copy-id ansible_user@remote-host должно быть все, что вам нужно.