Как лучше всего работать с локальными и удаленными пользователями в анзибле?
На данный момент я понимаю, что у нас есть локальный и удаленный компьютер с локальным пользователем по умолчанию и пользователем-администратором по умолчанию на удаленном компьютере. В стандартном случае 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
должно быть все, что вам нужно.