Ansible vs LDAP

топ 100 блогов klink0v30.01.2023

Допустим, у нас есть 100500 линуксовых машин. На них на всех требуется как-то управлять пользователями: создавать, удалять, менять участие в группах, заливать ssh-ключи и так далее. Для этого возможны два различных подхода.


  1. Ansible / Salt / Puppet / Chef и прочие системы управления конфигурациями. Выделяем где-нибудь сервер, на нем описываем правила / политики / playbooks, туда же кладем открытые ключи. Пару раз в день по крону запускается некая "глобальная" playbook, которая приводит список пользователей и их привилегии в соответстии с желаемыми.
  2. LDAP. Вся инфа о пользователях хранится в единым каталоге, на который настроены остальные машины. Управление пользователями-правами-ключами осуществляется через этот каталог.

У каждого подхода есть свои достоинства и недостатки.

Самый главный и самый очевидный недостаток LDAP-а: онлайн-режим работы. То есть, требуется постоянная доступность LDAP-сервера. Если же он "упал", сеть начала "тошнить" или ещё что-нибудь в этом духе, то никто не сможет зайти на целевую машину. Понятно, что можно настроить локальное кеширование, создавать "суперадминов" локально и т.д. и т.п. Но это всё равно не решает прям вот всех проблем, потенциально способных возникнуть при потере связи до LDAP-сервера.

Из достоинств: удобно администрировать, легко вести логи / аудит любых изменений, всё находится в одном месте, пользователь на любой машине будет иметь один и тот же UID (иногда это бывает ценно), можно прикрутить прозрачный вход с GSSAPI и вообще отказаться от раскладывания SSH-ключей.

С Ansible ситуация обратная. Всё работает надёжно, т.к. все пользователи являются локальными. Но плейбуки и роли рано или поздно неизбежно превратятся в большую помойку, в которой невозможно что-нибудь понять, даже если админы супер-аккуратные. А если им присуще хотя бы лёгкое рас3.14здяйство и/или их больше двух, то момент превращения в помойку наступает очень быстро.

Плюс, при таком подходе крайне затруднительно нарисовать сколь-либо сложную систему делегирования (я разрешаю такому-то чуваку самому рулить пользователями на такой-то машине) и/или схемы распределения ролей (есть проектные команды А, Б, В; таким-то командам нужен такой-то уровень доступа на такой-то группе машин).

Вот сейчас сижу и думаю, что же таки лучше применять в своей ситуации. Пока что вопрос больше теоретический, но он может встать в полный рост в любой момент.

Всем удобных систем управления пользователями и их привилегиями.

Оставить комментарий

Предыдущие записи блогера :
Архив записей в блогах:
Еду я себе по дороге, никого не трогаю, объезжаю ремонт, вижу замечательные ш щиты. Очень хорошо, думаю, сделали -- москвичам легче терпеть неудобства, понятно за что страдают. Но вдруг прямо в глубине подсознания возникает четкая цветовая ассоциация с одним из кандидатов в мэры Москвы. ...
Не успели мы обсудить одного актера, подавшегося в президенты, как у нас новое политическое шоу на подходе. В главной роли - свеженький политик Михаил Прохоров. В роли сил зла - разумеется, Кремль. Итак, как сообщает нам ru_compromat ( ...
В интернете появились снимки судебного приговора отцу Порошенко. Скандальный блогер и журналист Владимир Бойко опубликовал на своей страничке в социальной сети документы, которые являются судебным приговором отцу нынешнего президента Украины Петра Порошенко – Алексею Порошенко. ...
В чьих интересах ведется эта [гибридная] война [против России]? В интересах глобального правительства сатанистов и глобального сатанизма. Мне пока непонятен до конца этот их замысел. Какова конечная цель того, что происходит в мире. Мне это пока непонятно, но то, что какой-то замысел ...
* еще одна иллюстрация крылатого выражения, что если вам не очень понятно, о чём идёт речь, значит это о ваших деньгах ** это про текущую риторику всем известную, президента Французской республики государственный дефицит в 2023 году ( очевидно по итогам 2024 г - YM) будет «значительно» ...