История Внедрение Linux в ПриватБанке началось в 2007 году.
За это время мы прошли большой путь и мне хотелось бы поделиться с сообществом своим опытом внедрения.
На данный момент мы достигли следующих показателей: более 36 500 рабочих мест с ОС Linux в 4 000 филиалах, расположенных в 5 странах.
В 2007 году за основу была взята ASPLinux 11.2. Со временем в качестве альтернативы были выбраны другие дистрибутивы — Fedora, openSUSE, Ubuntu. Позже стала очевидной необходимость создания собственной системы управления дистрибуцией и рабочими станциями.
Разработка началась в январе 2012 года.
За основу была выбрана Ubuntu 12.04 LTS со средой рабочего стола Gnome Classic (без эффекта).
Основные аргументы: Ubuntu — самый распространенный дистрибутив для настольных компьютеров за последние годы; большое сообщество, где легче найти решение возникающих проблем; Google выбрал его в качестве основы для реализации; имеется множество примеров внедрения в государственных и муниципальных учреждениях Германии и Франции.
Выбор системы управления пал на Puppet. Переход начался в июне 2012 года, а к январю 2013 года на корпоративную ОС было переведено уже около 95% ПК.
Такая скорость перехода обусловлена тем, что сотрудники уже имели опыт работы в Linux. Основные задачи, которые были решены благодаря текущей реализации:
- существенная экономия ресурсов за счет поддержки ОС на рабочих местах сотрудников;
- поддержание программного обеспечения в актуальном состоянии;
- возможность быстрого применения критических обновлений (до 1 часа на всех ПК);
- сбор и анализ статистической информации о парке ПК и периферийных устройств;
- создание системы превентивного реагирования на сбои (Event Manager).
I. Установка
Задания:- экономия времени;
- возможность удаленной установки ОС;
- альтернативные способы установки.
- Скачать Live (4 способа);
- Развернуть изображение;
- Запускаем приват-настройку (мастер настройки, подключаемся к Puppet);
- Настройте периферийные устройства.
Меню загрузки
Установщик (ЖИВОЙ)
Идеология — это не просто установщик, а инструмент с широким функционалом: диагностика, восстановление данных, очистка жесткого диска и т. д. Также в него входят OpenSSH и x11vnc для удаленного администрирования.Кроме того, с помощью Live создается эталонный образ системы.
Основой для его создания послужил руководство с офисного ресурса.
Был написан скрипт, который каждый раз создает Live с нуля, добавляет новые пакеты, копирует настройки и некоторые хаки.
LIVE - графический режим
Методы загрузки в реальном времени:
- по сети - основной метод, при его использовании загрузка происходит по dhcp+tftp+nfs с локального сервера (см.
ниже);
- usb-flash — запуском скрипта создаём загрузочную флешку, используем isolinux+grub4dos;
- cd — дань истории, аналог usb-flash;
- hdd — загрузка с grub2 для обновления версии ОС — планируется использовать для перехода на 14.04.
Образ системы и его развертывание
Наш «велосипед» создан с помощью sqashfstools со сжатием xz, благодаря чему его объем составляет около 1Гб.Основное преимущество этого метода в том, что при синхронизации по сети загружается только разница.
При использовании образа, созданного клонезиллой или tar+xz, в процессе обновления образ практически загружался заново (более 90%).
Следует отметить, что ПК должен иметь не менее 800МБ ОЗУ (более старые сейчас редкость), так как хз потребляет много памяти при распаковке и, если памяти меньше, система будет подкачена, и процесс развертывания будет существенно растянут по времени (на 512Мб - около 40 минут).
При развертывании образа выполняются следующие действия:
- очистка MBR;
- создание таблицы разделов;
- создание раздела подкачки;
- создание и форматирование корневого раздела;
- распаковка образа squshfs;
- создание и форматирование домашнего раздела;
- установить grub + отредактировать fstab.
Частная установка
По сути, он заменяет установщик дистрибутива и сделан с помощью debconf. Он запускается после развертывания образа и позволяет настроить уникальные параметры: тип ПК, локализацию, имя хоста, подключает хост к Puppet.Подключение к марионетке
II. Локальный сервер
Локальный сервер — ПК филиала, выполняющий функции сервера кэширования и сетевой загрузки.Это очень важный элемент всей системы.
Без него мы бы перегрузили все каналы трафиком обновлений и не смогли бы скачать Live по сети.
В большинстве случаев это панели, отображающие рекламу, но эту роль может выполнять абсолютно любой ПК, работающий круглосуточно.
Выполняет следующие функции:
- apt-cacher (в некоторых случаях экономит до 98% трафика);
- синхронизация установочного образа системы со стандартным (каждую ночь);
- сервер сетевой загрузки (tftp+nfs);
- сервер для синхронизации внутрибанковских обновлений программного обеспечения.
Как клиенты находят локальный сервер? Для этого используется протокол Avahi. На сервере запущен демон, который рекламирует в сети поддерживаемые им службы, а на клиенте — демон, который периодически опрашивает сеть на наличие служб.
Результат записывается в /etc/hosts.
Также дополнительно создан механизм defaultlocalserver — localserver в мидл-офисе, который заменяет отсутствующий в подсети localserver.
Рабочий локальный сервер
III. Контроль
Кукольный Как уже говорилось, в качестве платформы управления была выбрана Puppet. Основные критерии — простота написания манифестов, большое сообщество, поддержка проекта такими компаниями, как Cisco, Google, Red Hat. Клиенты подключаются к системе управления каждые 30 минут. Они присылают факты, берут задания и после выполнения задания присылают отчет. Особенности куклы:- контроль паролей и файлов конфигурации;
- мониторинг актуальности критических пакетов;
- инвентаризация ПК и периферийных устройств;
- мониторинг загрузки ПК;
- Мониторинг ошибок в работе программного и аппаратного обеспечения.
Было принято решение написать собственный фронтенд, и оно оказалось очень правильным, поскольку давало нам гибкость, недостижимую при использовании других вариантов.
Ключевые особенности Puppet Manager:
- создание конфигураций хоста;
- анализ фактов и отчетов;
- группировка ПК по территориальным и функциональным признакам;
- разделение прав администратора;
- отображение конфигурации аппаратного и программного обеспечения, подключенных периферийных устройств;
- графическое отображение загрузки ПК (ЦП, ОЗУ);
- фильтры
- Event Manager (анализ отчетов и фактов с последующей их группировкой по уровням и типам).
Фильтр в Puppet Manager Отдельно хотелось бы отметить нашу последнюю разработку – Event Manager. Идея создания «позаимствована» у систем мониторинга.
Основная задача Event Manager — предоставить системному администратору инструмент для мониторинга состояния удаленного ПК и узнать о проблеме до того, как о ней сообщит пользователь.
На основе отчетов, отправленных устройствами, мы можем анализировать состояние устройств и распределять их по степени критичности, а также генерировать любые события на основе фактов.
Менеджер по корпоративным мероприятиям
IV. Репозиторий + сдвиг времени
В корпоративной сети создано зеркало репозитория Ubuntu. Мы также создали собственный репозиторий (100 пакетов) для внутреннего программного обеспечения и программного обеспечения, недоступного в официальных репозиториях.Категории:
- Настройки системы и профиля пользователя;
- Внутреннее специализированное программное обеспечение;
- Прикладное программное обеспечение – программное обеспечение для POS-терминалов;
- Драйвера для Wi-Fi, веб-камер, МФУ;
- Программное обеспечение, не входящее в официальный репозиторий — Chrome.
Вышло очередное обновление ядра (3.2.0-28) и на ПК с видеокартами ATI после «засыпания» монитор не включался и т.п.
Решением для устранения подобных ситуаций стало создание Time-Shift. Time-Shift — дополнительная «заморозка» репозитория на 2 недели (аналог системы заморозки в linux mint debian edition).
Фактически у нас теперь есть 3 репозитория:
- current — текущая Ubuntu;
- тестирование — тестирование обновлений в течение 2 недель на 1% ПК;
- стабильная - стабильная версия для остальных 99%.
Например, вышло обновление ядра (3.2.0-38), в котором «отваливалось» видео на Intel Sandy Bridge.
Как работает сдвиг времени
Нижняя граница
Если будет интерес к вышеизложенному, напишем серию статей, в которых более подробно будет описана реализация компонентов системы, организационные вопросы, использование программ Windows, замена TeamViewer, авторизация в ldap при использовании eap-ttls, оптимизация Puppet при больших нагрузках правильная загрузочная флешка, работа драйверов на периферию, Wi-Fi и т.д. Руководитель группы разработки и поддержки корпоративных ОС - Коваль Богдан Теги: #linux #*nix #настройка Linux #puppet #ubuntu #ПриватБанк-
Спирали В T-Flex Cad 17
19 Oct, 24 -
Webrtc На Вашем Сайте – Без Ошибок И Бюджета
19 Oct, 24