Решение для автоконфигурации в крупной организации
Всем добра. Попробую бегло описать ситуацию - есть гос.организация (университет), есть переход на отечественное ПО (Астра), есть 800 машин (с ужасным железом зачастую) на несколько учебных корпусов которые надо перевести. И я, как увы единственный кроме сетевика и начальника отдела сотрудник соображающий хоть что-то в линухе, и кому досталось счастье «сварить» инструменты по внедрению.
С самой установкой справился, поднял PXE и полную автоустановку системы с разметкой и предварительным бекапом данных дабы коллеги не имели шанса ничего сломать. Теперь следующая задача - раскатать после установки набор определенных пакетов (немного, в основном задачи покрывают то что имеет Астра «out of box») и конфигураций к службам (таких как VNC и SSH с ограничениями по авторизации, чтобы можно было чинить что-то удаленно, до этого бегали днями напролет на каждый чих), источники пакетов (поднял локальные репо Astra/Debian Stretch). Сначала была написан жирнючий sh скрипт в post-install, но по итогу пришло осознание что выход не лучший, ведь что-то в конфигурациях может измениться, также как и есть места где могут понадобиться определенные пакеты для работа с мультимедиа, запись лекций для дистанта, зум и тд. В основном достаточно типовые кейсы для юзверя, к разработке ПО никак не относящиеся. Начальник предложил рыть в сторону Puppet/Ansible, за пару вечеров разобрался что это вообще такое и с чем едят, но есть сомнения в правильности такого подхода.
Даже выбирая между Puppet и Ansible учитывая дикую привлекательность второго, смущает то что push модель Ansible означает что около 800 хостов будут траиться по SSH постоянно, когда оффлайн будет минимум треть из них в любой момент времени, это все же рабочие машинки а не сервера, есть опасение что изменения в конфигурации будут применяться вечность учитывая таймауты подключения. Тот же Puppet синхронизируется с сервером только когда машинка включена, pull модель. При этом Puppet с другой стороны куда более геморен, а времени разбираться мало, через месяц начинаем внедрение. Плюс нужен гуй, опять же коллегам не обьяснить что такое работа в CLI. Для Ansible рассматривал Rundeck/AWX (знаю что это Rundeck это пошире Ansible, но задачи схожие), для Puppet - puppetboard. Вопрос в том, что для такого случая подходит больше? Может, мы дружно мыслим неправильно и зря копаем в сторону таких решений, возможно это слишком избыточно?
Пока минимальная конфигурация - определенные пакеты, ввод в домен AD с помощью Самбы (к успеху с sssd не пришли), авторизация по SSH только с 3 машин (три сотрудника) при помощи ключей, то же и с VNC. Но как у нас водится, по хотелкам может измениться многое и в любой момент, как то перевести все на другой офисный пакет вместо Либры (ибо еще не закуплено), другой браузер, поставить везде какой-нибудь софт и тд; всё это общее для всех хостов. И какой бесплатный VNC или в принципе RD server можете посоветовать? Работа исключительно в локальной сети, с определенных клиентов, чем приятнее картинка и меньше задержек - тем лучше.