Как работает запуск ansible в SSH-сессиях через PAM?

Ansible в SSH позволяет автоматизировать повторяемые задачи без ручной рутины выполнения команд. Изменения происходят сразу на десятках или сотнях серверов. Пароли можно не хранить в коде и не предоставлять знание пароля пользователю, а все изменения, которые происходили в сессии, можно просмотреть в интерфейсе PAM.

Как это работает

  1. Пользователь получает строки подключения с помощью менеджера подключений в web-интерфейсе Системы.

  2. Пользователь конфигурирует inventory для запуска плейбука на своей рабочей станции так, чтобы использовать компоненты подключения системы вместо прямого доступа на ресурсы.

Пример конфигурации

ansible.cfg

[ssh_connection] ssh_args = -o ControlMaster=no -o ControlPath=none -F ssh_config pipelining = False

inventory.ini

[all] target1 ansible_host=pam.bi.zone ansible_user=pam_admin@pamtestuser@10.8.176.18^2230 ansible_port=2222 target2 ansible_host=pam.bi.zone ansible_user=pam_admin@pamtestuser@10.8.176.19^2230 ansible_port=2222 target3 ansible_host=ssh-target3

ssh_config

Host ssh-target3 HostName dev10-onprem.dev1.onprem.pam.bi.zone Port 2222 User pam_admin@pamtestuser@10.8.176.20^2230