Puppet для управления и автоматизации Linux часть 3.

Введение.

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

Установка клиента.

  • Стенд
    • Cервер ALT Linux , имя lin-pup; ip-10.0.2.33
    • CPU Intel Core 5
    • HDD >100Gb
    • ОЗУ > 8Gb
    • ALT Simply Linux, имя lin-sl; ip-10.0.2.32
CPUsGHzGiB memoryOS
12.40.5Linux
Минимальные требования к клиенту Puppet.

Puppet для управления и автоматизации Linux часть 2.

Введение.

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

Подготовка.

  • Стенд
    • Cервер ALT Linux , имя lin-pup; ip-10.0.2.33
      • CPU Intel Core 5
      • HDD >100Gb
      • ОЗУ > 8Gb
      • ALT Simply Linux, имя lin-sl; ip-10.0.2.32
Объем узловЯдраОЗУРазмер кэша
Средний офис21 GBn/a (not available)
1,0002-44 GB512m
Минимальные требования к серверу.

Сервер для установки платформы должен иметь свежее обновление, настроенный DNS и включён в доменную структуру предприятия. Установка пакетов производится из репозитория ALT-Linux или его зеркала. Процесс установки происходит из консоли, что является нормой для Linux серверов или с помощью графического модуля Synaptic.

Настройка DNS сервера.

Возможность использования системы доменных имен для Pupplet является одним из важных факторов успешного использования платформы. Далее приводится пример настройки файла /etc/hosts стендового сервера.

127.0.0.1    localhost.localdomain localhost
10.0.2.33    lin-pup
10.0.2.32    lin-sl

Установка сервера.

Серверная платформа Puppet состоит из трёх пакетов: puppetserver, puppet-agent(puppet) и puppetdb.

Puppet-agent в хранилище ALT-Linux идёт под названием puppet

# apt-get install puppetserver
# apt-get install puppetdb

Пакет агента puppet входит в состав сборки puppetserver

Для сервера Pupplet требуется Java Virtual Machine (JVM), определим последнею доступную версию jdk для установки.

# apt-cache search jdk
# apt-get install java-XX-openjdk
# rpm -qa|grep jdk

Запуск и проверка работы мастер-сервера осуществляем командами.

# systemctl start puppetserver
# systemctl enable puppetserver
# systemctl status puppetserver

Проверка работы сервера Puppet.

Если всё выполнили правильно, то убедится в работоспособности платформы можно командой:

# puppetserver -v
puppetserver version: X.XX.X

В ответ сервер выведет версию программного обеспечения платформы.

Каталоги.

Все настройки Puppet хранятся в корне /etc и содержат два каталога:

  • /etc/pupetservet
    • /config.d — основной каталог конфигурации Puppet
      • autch.conf — файл правил авторизации к HTTP API Puppet Server
    • /services.d — каталог конфигурации CA
      • ca.cfg — файл конфигурации центра сертификации
    • bootstrap.cfg —
  • /etc/puppet
    • /ca — каталог центра сертификации сервера
    • /code — каталог кода и данных
      • /environments — каталог манифесты
      • /modules — каталог модулей
    • /ssl — каталог сертификатов узлов
    • puppet.conf — основной файл конфигурации
    • auth.conf — правила контроля доступа к серверу
    • fileserver.conf — конфигуратор дополнительных точек монтирования файлового сервера
    • autosign.conf — список предварительно одобренных запросов на сертификаты
    • /device- каталог сетевых устройств управляемых сервером
    • device.conf — файл настроек сетевых устройств под управлением сервера

Заключение.

В этой части приведены требования к оборудование для установки мастер-сервера Puppet. Развёртывание платформы выполняется после того, как будет установлен базовый сервер ALT-Linux, настроен DNS и выполнены все требования для сервера, как описывалось выше.

Полезные ссылки.

Puppet для управления и автоматизации Linux часть 1.

Введение.

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

Что такое Puppet.

Прежде чем приступит к практическим действиям, см. следующею часть, определимся с философией платформы. Программа написана на языке Ruby и является кросс платформенным клиент-серверным приложением. Инструмент выпускается под двумя редакциями: платной — Puppet Enterprise, и бесплатной — Open source Puppet. К базовым пакетам выбранной редакции, в последствии, можно добавлять дополнения и расширения:

  • Continuous Delivery for PE
  • Bolt
  • Puppet Comply
  • Puppet Development Ki

Основная идея вложенная в платформу — желание установить систему в то состояние, которое вы считаете нужным для управления.

Это достигается через специальный Domain-Specific Language (DSL) код. Этот сценарий декларация, автоматизирует процесс перевода систем в определённое состояние, проводит мониторинг установленных режимов. Достигается это с помощью главного сервера и агентов, развёрнутых на устройствах, преобразующих код в команды для выполнения в указанных системах, как показано ниже.

Диаграмма работы архитектуры сервер-агент Puppet.
Диаграмма работы архитектуры сервер-агент Puppet.

Инструменты декларативной настройки, позволяют определить согласованность, автоматизацию, культуру и способ работы. В отличие от Zabbix, выполняющий сбор информации, Puppit, кроме инвентаризации, способен переводить систему (применять) установку программ и обновлений, получая отчёт о выполнении этих действий.

Архитектура Pupplet.

Перечисленные ниже концепции и практики являются ключом к успешному использованию Puppet.

Puppet построен, как инфраструктура кода DevOps, использующий практику общения с клиентской периферией, подключённых к нему устройств, как с кодом.

DevOps — development & operations — методология автоматизации тех. процессов сборки настройки и развёртывания программного обеспечения.

Идемпотентность (не к ночи сказано — термин Pupplet ), ключевая особенность Puppet — возможность многократного применения кода для обеспечения желаемого состояния системы.

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

Возможность применять Git — отраслевой стандарт контроля версий, его использование поможет вашей команде воспользоваться преимуществами DevOps.

Структура Pupplet.

Структурная Pupplet состоит из нескольких базовых пакетов:

  • puppetserver — сервер
  • puppetdb — база данных
  • puppet-agent — агент
    • Facter — инструмент инвентаризации узла
    • Hiera — поиск ключевых данных узла

Диаграмма архитектуры платформы представлена ниже

Диаграмма взаимодействия компоненты пакета Puppet .
Диаграмма взаимодействия служб Puppet .

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

При большие объёме Б.Д разработан коннектор миграции на PostgreSQL.

Соединение происходит по защищённому SSL протоколу, для этого при развёртывании платформы создаются самоподписанные сертификаты для сервера и клиента.

Код создаваемый програмой для взаимодействия с агентами называется манифестом (manifest). Манифест — файл, содержащий сценарий написанный на языке Puppet. Файл имеет расширение .pp. и включает:

  • ресурсы и классы
  • переменные
  • функции
  • узлы

Большинство манифестов содержатся в модулях. Каждый манифест в модуле определяет один класс, функцию или определенный тип. На стороне сервера хранится основной (main manifest) манифест среды. В манифесте определяются узлы и уникальные каталоги.

Модуль — включает классы, типы ресурсов, файлы, функции и шаблоны, нацеленных на выполнение определенной задачи. Например, с помощью модуля можно распространить установку демона SSH на клиентах. Большой выбор готовых модулей доступен в библиотеке Puppet Forge. Концепция инфраструктуры позволяет администратору писать свои собственные модульные и приемочные тесты.

Заключение.

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

Полезные ссылки

Copyright © 2011-2023
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты