LINUX.ORG.RU
ФорумAdmin

Решение для автоконфигурации в крупной организации

 , ,


2

3

Всем добра. Попробую бегло описать ситуацию - есть гос.организация (университет), есть переход на отечественное ПО (Астра), есть 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 можете посоветовать? Работа исключительно в локальной сети, с определенных клиентов, чем приятнее картинка и меньше задержек - тем лучше.



Последнее исправление: Slbomber (всего исправлений: 4)

И какой бесплатный VNC

Apt install x11vnc tightvncserver

Поставит vnc сервер для подключения к иксам и отдельной vnc сессии. Аналога rdp с прозрачной интеграцией пока нет, но и не особенно нужно.

Что касается папета и ансибла, у ансибла проще порог вхождения, но это в основном Линукс решение, папет можно и в Винде использовать.

einhander ★★★★★
()
Последнее исправление: einhander (всего исправлений: 1)
Ответ на: комментарий от antiZzz

Вскользь видел упоминания, как я понял можно отключить retry в ansible с повтором отправки комманд на недоступные хосты и таким образом получить puppet-образную модель поведения. Однако - может я понял неправильно, но вроде нет способа в ansible в отличии от puppet точно знать, находится ли определенный ПК в последнем состоянии конфигурации в таком случае. Гуй для автоматизации как раз задумывался для того чтобы сотрудники не шарящие в теме могли видеть что где происходит и если что порешать минимально возникающие проблемы. Плюс безопасно ли хранить ключ сервера на каждом ПК, даже если есть passphrase?

Slbomber
() автор топика
Ответ на: комментарий от einhander

Так мы с окошек и переезжаем, на них всякая бухгалтерия и высокое начальство только остается. Поэтому платформа Linux в подавляющей своей части, остатками виндовыми после сего пиршества можно свободно пренебречь. Но беспокоит больше то что описал постом выше в ответ на комментарий.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

У папета клиент-серверная модель, у ансибла командная, соответственно, только после выполнения команды ты узнаешь состояние хоста. Чем ансибл мне понравился, он не требует клиента и работает через ssh.

einhander ★★★★★
()
Ответ на: комментарий от Slbomber

На клиенте хранится открытый ключ, закрытая часть ключа хранится на сервере. Безопасность ансибла обеспечивается ssh, можно авторизоваться и по паролю, все зависит от ssh.

einhander ★★★★★
()
Ответ на: комментарий от einhander

Как раз наличие клиента не так важно, это дело можно сунуть в postinstall сетевого установщика. Puppet как раз смущает порогом вхождения (сколько придется потратить времени), гайдов по нему меньше + работа с puppetDB в копилку. По поводу состояния - то бишь ансимбл после пула все же может сообщать о том все ли в точности соответствует конфигу и вести историю?

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Да, он пишет три возможных состояния фэйл, изменения применены и изменения не требуется. Самый простой способ попробовать ансибл это виртуалка с турнкей Линукс. Понравится можно использовать, нет так уже готовить папет.

einhander ★★★★★
()
Последнее исправление: einhander (всего исправлений: 1)
Ответ на: комментарий от einhander

Пока для тестов поставил Rundeck, является подобием Ansible и позволяет из гуя даже наваять нативные ansible playbooks, но предлагает и свои инструменты автоматизации в гуе. Пока мнение не сложилось, однако конечно количество багрепортов в гитрепо проекта слегка пугает. Однако это не просто надстройка над ansible. Ансибл тоже установлен, но отдельно Docker ом, пока только голый без AWX.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Вы правильно заметили недостатки ansible, как по мне его простота - это и является его основной проблемой (еще скорость). При количестве в 800 машин вы будете испытывать адскую боль ниже спины, берите salt/puppet/chef, в зависимости от того что вам понравится из этой тройки.

vadv ★★
()

Точно Astra? Есть еще Calculate со своей централизованной конфигурацией. Правда я только на локалхосте использовал, где все эти шаблоны мне только мешали. Ну, и если железо действительно ужасное, то мороки больше, т.к. Calculate прекратили собирать образы, или еще что, для 32-битных систем.

boowai ★★★★
()
Последнее исправление: boowai (всего исправлений: 1)
Ответ на: комментарий от boowai

Астра 64бит по дефолту, ест всего 260 из коробки, по стабильности и скорости лучшее из росдистров в реестре что мы тестировали. Calculate был первым кандидатом, но тормозит некисло даже на каких-нибудь Core2Duo, уж не знаю проблема ли это окружения или еще что, совсем не порадовала скорость.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Народ, а что насчет SaltStack? Посоветовали в другом месте - он тоже относительно прост и имеется клиент серверная архитектура. У кого опыт использования был?

Slbomber
() автор топика
Ответ на: комментарий от rupert

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

Slbomber
() автор топика
Ответ на: комментарий от Wekuda

Кроме своего протокола, ничего примечательного и он действительно неплох. Но это аналог vnc сервера. Т.е. это отдельная от основной сессия, запущенные приложения не перенесутся в нее. Можно подключиться к x11, но тогда все плюшки типа динамического изменения разрешения экрана пропадают.

einhander ★★★★★
()
Ответ на: комментарий от rupert

Это веб клиент к rdp и vnc, неплохой, но скорость работы проседает. А так очень приятная штука с авторизацией ldap и подхватом конфигурации от туда же. Была бы интеграция с nextcloud стало бы вообще огонь.

einhander ★★★★★
()
Ответ на: комментарий от einhander

Подключиться к существующей сессии можно, есть проброс принтера, звука, каталога. Можно отдельное приложение пробросить. По функционалу все-таки ближе к rdp, чем к vnc.

Wekuda
()

ввод в домен AD с помощью Самбы

Почему не freeipa, если основная масса компов на линуксе? (Я не использовал, будет интересно послушать про недостатки)

Если предполагается использование домена, то почему про групповые политики для установки программ нет упоминаний?

Wekuda
()
Ответ на: комментарий от Wekuda

Чесслово, не могу ответить конкретно. За это все отвечает сетевик, который тестил и freeipa и ald, говорит что все равно это куча костылей и домен будет на винсервере AD. Типа домен нам нужен для авторизации и сетевых шар, а бесшовно с полным функционалом у него реализовать не получилось. Вобщем, не моя сфера ответственности. Вариант с доменом увы отпадает… Сейчас читаю доки по SaltStack, возможно это как раз то что нужно, пока не уверен но выглядит вкуснее всех.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Авторизация и сетевые шары работают даже через openldap в Винде, не говоря уже о линуксе. Если очень хочется ldap структуру как в AD, то для этого есть самба. Зачем тогда вин сервер?

einhander ★★★★★
()
Ответ на: комментарий от Wekuda

Можно уточню, получается пробросить уже запущенное окно приложения или требуется приложение закрыть и уже запустить его заново через встроенную функциональность иксов? Такой же вопрос про существующую сессию и разрешение экрана, rdp в Винде подстраивает его под клиента вне зависимости от сервера, и здесь также?

einhander ★★★★★
()
Последнее исправление: einhander (всего исправлений: 1)

С самой установкой справился

Теперь следующая задача - раскатать после установки набор определенных пакетов

Одному мне тут видится XY-проблема уже чуть ли не второго уровня?

Твоя задача — заиметь одинаковые хосты. Зачем сначала устанавливать установщиком, а потом ещё и конфигурировать шаткой императивщиной, если можно сразу накатить настроенный образ?

t184256 ★★★★★
()
Ответ на: комментарий от einhander

запустить его заново через встроенную функциональность иксов

Да, аналогично remote app у rdp. Не совсем понял про «встроенную функциональность иксов», настройка производится на клиенте.

про существующую сессию и разрешение экрана

При подключении к рабочему столу предлагается вариант запустить новую сессию или подключиться к существующей. Динамического изменения разрешения экрана как я помню нет. Разрешение экрана задается при подключении или выбрать во весь экран.

Wekuda
()
Ответ на: комментарий от Wekuda

X2go это сборник клиентов для нескольких протоколов, X и и опенсорсный nx, ну и ssh чтобы править ими.

Да, аналогично remote app у rdp. Не совсем понял про «встроенную функциональность иксов»...

Такое поведение обеспечивает икс сервер, то есть по сути это запуск графического приложения в ssh, что давно известно и имеет существенные тормоза в современных приложениях, так как сейчас приходится гонять битмапы для чего иксы не разрабатывались. Как пример можно запустить браузер и файловый менеджер, последний будет в разы быстрее.

Динамического изменения разрешения экрана как я помню нет.

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

Как дела с вэйлендом не знаю, но вариант ремот апп, пока недоступен и неизвестно когда появится, а отдельная сессия зависит от применяемого ДЕ. Возможно сложится ситуация когда отдельное ДЕ не получится запустить в связи с недостаточно развитым композитором вэйланда в ДЕ. В отличие от иксов где функционал от ДЕ не зависит.

einhander ★★★★★
()
Ответ на: комментарий от t184256

Если бы этот конфиг был постоянным - согласен с тобой и так уже было сделано, в виде жирного sh который делает красиво и хорошо сразу. Просто возможно ты не так понял проблему. Окей, сейчас мы раскатаем эти хосты. В дальнейшем все может измениться - другой офисный пакет, другие конфигурации на сервисах, любые задачи которые надо решить. Есть отдельные сегменты со своими приблудами отличающиеся от остальных под конкретные задачи. Все это предлагаешь держать в голове? Переделывать на огромном кол-ве хостов написывая костыльные скрипты? Такой подход мне кажется совсем ужасным, ничего личного.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Сделать новый образ, загрузить их с PXE, мультикастом раздать и записать на диск новый образ.

Просто ансибл не умеет в декларативное конфигурирование и конкретно в операцию «ликвидируй все отличия кроме», а значит механизм репровизии тебе все равно нужен. А раз нужен механизм репровизии, нужен ли ансибл?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от Slbomber

Переделывать на огромном кол-ве хостов написывая костыльные скрипты?

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

anonymous
()
Ответ на: комментарий от t184256

Так я и не топлю за Ансимбл, у него лишь самый низкий порог вхождения для меня как для человека который прошарил за тему практически только что. Сейчас почти уверен что нужное решение- SaltStack. С дисками лишний раз лучше не шутить, есть много местечек где компы с кучей бэдов и результат крупной записи непредсказуем от слова совсем, покупать никто не торопится. И как удаленно перезалить по PXE кучу машин без ручного вмешательства? Чем перезаливать все, решения типа SCM кажутся привлекательнее.

Slbomber
() автор топика
Ответ на: комментарий от anonymous

Нуу, например? Скажем есть общая группа хостов использующая одни и те же плейбуки/роли/etc, то бишь все хосты к которым это применится. Есть подгруппы в которых дополнения к тому что уже есть, плюс пакеты и конфиги к ним, те хосты где нужны спец задачи и их тоже немало. Нафиг нужен sh когда можно писать более нативно в среда SCM обрабатывая ошибки и тд а не просто использовать SCM как bash раздатчик? Это даже не оч правильный подход. SCM цепляется чекает конфигурацию, отправляет ответ который можно увидеть пощупать и понимать если где что-то пошло не так. Вот собственно и все что нужно, мой вопрос был изначально в том что использовать лучше в данной ситуации, и нет ли аналогов таким системам. Что я лично из ответов извлек - кроме нативного линух домена с full-features их нет, а нам такой вариант увы недоступен. В SCM можно менять играючи конфигурацию любых групп хостов в любой момент времени, а учитывая однородность ОС и окружения в теории вероятность ошибок невелика. Разве это не магия?

Slbomber
() автор топика
Ответ на: комментарий от Wekuda

Можно минимальные разьяснения? Насколько я помню, иксы это сам «врапер» (не знаю как назвать точнее) окружения, окон и тд а VNC надстройка передающая содержимое фреймбуфера сервера? Задумался о том, а как действительно подключаться к хостам когда у каждого юзверя свои учетки и данные мы о них не имеем? То бишь есть возможность влезть от рута, получить «есть активная графическая сессия пользователя такого-то» и цепануться к ней?

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Как будто Salt умеет в декларативную конфигурацию…

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от Slbomber

Все эти системы нацелены на установку стандартных пакетов и стандартно их конфигурить и для этого имеют стандартные модули, которые дергают стандартные команды установки пакетов и их типовые насройки. Теперь вылезает что-то нестандарное из того, чего нет в репозиториях и тут начинается костыляние на sh или еще чем-то подобном.

Т е это все хорошо для разворачивания типового хоста, но индивидуальная настройка выливается в гемморой в связи с декларативными определениями этих самых настроек

anonymous
()
Ответ на: комментарий от Slbomber

SaltStack - это адская смесь ямла с jinja. Его можно использовать только если у тебя есть в команде сеньор-архитектор, который будет бить по рукам всех, кто не следует соглашениям и code-style и коммитит в репу нечитаемую простыню. Обычно людей такого уровня среди админов нет, поэтому saltstack в принципе не поддерживаем.

На ansible тоже можно накреативить такого что потом три сеньора не разберутся, но это сложнее поскольку сам язык более ограниченный и прямолинейный.

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ну пока как раз я вижу что достаточно и этого, удали/поставь пакет, держи конфиг файл в таком то виде, держи список репо в таком виде, делай то и тогда, залей конфиг к браузеру какому-нибудь,проверь есть ли у нас файлы там и там, включи отключи сервисы.

Slbomber
() автор топика
Ответ на: комментарий от Slbomber

Фича называется desktop sharing и работает с разрешения пользователя. По описанию должно работать под любым пользователем, я проверял под пользователем с полными правами.

Wekuda
()
Ответ на: комментарий от einhander

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

Для этого и разработали протокол nx. На youtube можно найти видео, в котором через x2go сессию воспроизводится фильм в высоком разрешении на два монитора.

В отличие от иксов где функционал от ДЕ не зависит.

К сожалению данное высказывание не относится к x2go: список совместимых ДЕ

Wekuda
()
Ответ на: комментарий от Slbomber

Вспомнил про meshcentral. Для удаленной техподдержки пользователей самое оно. В том числе поддерживает массовое выполнение скриптов.

Wekuda
()
Ответ на: комментарий от Wekuda

Хорошо, коли так, я его давно тестировал, по пробросу одного приложения выходило не быстрее чем через форваринг иксов.

einhander ★★★★★
()

Мы на примерно 300 десктопов используем ansible в cli.

FireFighter ★★★
()
Ответ на: комментарий от einhander

есть такая штука-xpra,это screen для gui. можно запустить как отдельное приложение,так и подключиться к десктопу. Работает намного быстрее проброшенных х-ов.

anonymous
()
Ответ на: комментарий от Slbomber

типовые конфиги редко меняются, а для разовых работ незачем городить огород и корячиться с описанием нетиповых плейбуков или подобного. скриптом или а ля r(?)ex или подобным быстрее и понятнее.

anonymous
()
Ответ на: комментарий от anonymous

Знаю, плавал, из особенностей xpra можно отметить передачу экрана видеокодеком. Лет 10 назад, это выглядело так себе в плане производительности, сейчас возможно уже нормально, не пробовал с тех пор.

einhander ★★★★★
()
Ответ на: комментарий от einhander

RDP на десятке 1809+ например использует аппаратный h264 в качестве передачи и работает это шикарно, такое ощущение что за реальной машиной сидишь.

Slbomber
() автор топика

Попробую бегло описать ситуацию - есть гос.организация (университет), есть переход на отечественное ПО (Астра)

Студентам отвращение к линуксу прививаем смолоду?

anonymous
()
Ответ на: комментарий от anonymous

Тип того, опять же выбор был не по красивостям и юзабилити а исходя из слабого железа и принуждении к российским ОС. По факту принято решение строить все на SaltStack, с VNC пока вопрос откладываем пока не найдем стабильное решение. Лучший выбор - Ассистент (рос аналог TeamViewer) с локальным серверов внутри сети, но лицензия довольно дорогая, почти 750к, далеко не факт что дадут на это деньги.

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