LINUX.ORG.RU
ФорумAdmin

Права доступа в ansible

 , ,


1

2

Здравствуйте.

Начал разбираться с ansible и возник вопрос о том как начать делать правильно, под каким пользователем подключаться, как разграничивать управление playbook между несколькими людьми. Пока что рассматриваю ansbible только как управление конфигами и поднятие новых машин для задач системного администратора, роутеры, dns, dhcp, vpn, создание новых пользователей, удаление старых.

Вот есть компания в которой 2 админа и начальник. Никакой системы управления конфигурацией раньше не было, а парк машин вырос прилично. На некоторых машинах есть root, на большинстве нет, только user'ы этих трех людей с авторизацией где-то по ключу, где-то по паролю, где-то и то и то.

Вопрос: Если держать локальную версию ansible у каждого на компе и каждый будет сам запускать playbook, когда нужно изменить машину или создать новую, и подключение происходит под личным ssh аккаунтом. Этот аккаунт уже существует, не надо делать отдельного пользователя для ansible. Но нужно прописывать прямо в конфиге пароль для sudo, чтобы задачи установки могли проходить. Это нормально - прописывать sudo пароль в hosts ansible?

А если прописывать пароль в hosts - это уже становятся личными, ты не можешь поделиться им с другими участниками. Хотя плейбуки можно продолжить синхронизировать через git, например.

Менее важный вопрос: как убеждать в том что именно твой playbook лучший, а другой человек пишет не правильно) Многие ли из вас делают как написано здесь http://docs.ansible.com/ansible/playbooks_best_practices.html или у каждого свой неповторимый рецепт? Используете ли playbook из ansible-galaxy или пишите свое?

// Все сказанное сугубо ИМХО

Это нормально - прописывать sudo пароль в hosts ansible?

Вы говорите что плейбуки будут лежать локально на машинах админов, так что вопрос приватности не совсем понятен. Но вы можете взять vault или вообще запрашивать sudo-пароль при запуске сценария чтоб не хранить его в плейбуке.

А если прописывать пароль в hosts - это уже становятся личными, ты не можешь поделиться им с другими участниками.

Подключайте файл с паролями как файл переменных (vars_files). Ну или, опять же, запрашивайте пароль в реалтайме при запуске сценария.

как убеждать в том что именно твой playbook лучший, а другой человек пишет не правильно

Ну дайте спорный сценарий человеку, который с Ansible вообще не знаком, если он сможет объяснить что делается в этом плейбуке - значит сценарий годный и вам дальше с ним будет удобно работать. Если там наворочено десять уровней вложенности на jinja2 и используется три сотни ролей - такое вы уже через неделю после написания поддерживать не сможете. (А вообще это странный вопрос, вы там вдвоем договориться вообще никак не можете??)

Многие ли из вас делают как написано здесь

Не делаю так, но тут больше от задач зависит (хотя в целом ролевая модель мне вообще кажется какой-то странной).

Используете ли playbook из ansible-galaxy или пишите свое?

Не нашел там нужного под сво задачи, так что все пишу сам. Ну и, опять же, поддерживать проще.

alozovskoy ★★★★★ ()

Пароли в принципе через переменные окружения можно передавать

https://github.com/bookwar/fuel-playground/blob/master/os.yaml

Хотя имхо правильнее всем ходить под одного и того же рута по ключам, а не sudo на target-машине делать.

По поводу Best Practices, для меня эталон тут:

https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/

Это рабочий задокументированный пример использования Ansible на достаточно большом парке машин в реальной жизни. Поэтому многие вещи по организации структуры inventory или расположению group_vars можно оттуда брать.

alpha ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.