Как каждый управляет многосерверной средой и своими учетными данными с помощью ansible?

Я пытаюсь найти самый чистый и / или самый безопасный способ управления средой с несколькими серверами (Linux) в AWX / Tower / Ansible.

Я видел несколько сообщений по этой теме, но, похоже, нет четкого ответа о том, какой подход является наиболее безопасным.

Допустим, я хочу использовать единый шаблон / playbook для 20 различных серверов Linux, все с разными пользователями и паролями / паролями sudo.

Я могу придумать несколько вариантов;

Выделенный "доступный" пользователь, созданный на каждом хосте, с сервером AWX или локальный сервер с информацией о закрытом ключе. Я думаю, что в большинстве случаев это будет нормально, однако при попытке выполнить операции, требующие root, возникнут проблемы с паролями sudo, если только у «доступного» пользователя один и тот же пароль на каждом сервере. Можно настроить доступ к sudo NOPASSWD, но это кажется неправильным.

Сохраните текущую ситуацию с разными комбинациями пользователя и пароля для каждого хоста, но потенциально укажите учетные данные в зашифрованном (хранилище) файле vars.

] Имейте отдельный шаблон для каждого хоста, каждый из которых имеет правильный набор учетных данных для этого хоста. Это также кажется немного неправильным и очень громоздким / сложным в обслуживании.

Пожалуйста, позвольте мне, упускаю ли я что-то очевидное.

0
задан 9 September 2020 в 17:07
1 ответ

Я реализовал это, имея закрытый ключ для пользователя ansible для входа в систему и указав специфичный для системы ansible_become_pass в host_vars/< хост>/vault.yml. Пользователь

ansible естественно принадлежит к группе sudo.

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

Дополнительно можно отключить аутентификацию по паролю для пользователя ansible.

2
ответ дан 9 September 2020 в 17:28

Теги

Похожие вопросы