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, хранятся (кэшируются) в базе данных PostgreSQL с помощью коннектора PuppetDB, выступающим посредником между Puppet сервером и PostgreSQL. Это позволяет платформе работать быстрее и предоставлять API другим приложениям для доступа к собранным данным.

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

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

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

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

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

Заключение.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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