Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление




Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) с подключенным расширенным (extended) репозиторием
  • Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7) с подключенным расширенным (extended) репозиторием


Аннотация

В данной статье представлена инструкция по установке связки Foreman-Puppet-Ansibleинструмента управления жизненным циклом компьютеров Foreman. Для успешной установки требуется подключение расширенного репозитория. Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования.

Что такое Foreman

, Puppet, Ansible

Раскрыть

Общая информация

Foreman

Puppet

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

На компьютеры, управляемые с помощью Puppet, устанавливается специальное ПО - агент Puppet. Агент Puppet периодически опрашивают сервер Puppet, получает и применяет централизованно внесенные администратором изменения в конфигурацию. Конфигурация описывается на специальном декларативном предметно-ориентированном языке. 

Система управления конфигурациями Ansible

Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения.

В концепции Ansible администратор создает определенные сценарии («плейбуки») (англ. playbook, play — игра, пьеса, book — книга) в формате YAML с описанием требуемых состояний управляемых систем. Каждый «плейбук» — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Сервер Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому. При этом сценарии обладают свойством идеипотентности: повторное выполнение сценариев не изменяет результат первого выполнения.

Для выполнения задач используется система модулей. Модуль - небольшая программа, выполняющая на управляемой машине определенное действие (действия).

Каждая задача представляет собой имя задачи, используемый модуль и список параметров, характеризующих задачу. Система Ansible поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой Jinja2), условное выполнение задач, параллельное выполнение, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Поддерживается группирование. Для реализации набора сходных задач существует система ролей.

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

Оригинальная документация

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

Поддержка развертывания (provisioning) позволяет контролировать настройку новых компьютеров, а возможности управления конфигурацией (поддерживаются Puppet, Ansible, Chef и Salt) позволяют автоматизировать повторяющиеся задачи, развертывать приложения и управлять изменениями как физических, локальных виртуальных и облачных машин. Foreman масштабируется, позволяя расти, не теряя единого источника информации об инфраструктуре.

Foreman обеспечивает:

  • подготовку установки на новых компьютерах (с помощью управляемых автоматических установок DHCP, DNS, TFTP и PXE), виртуализации и облака;
  • комплексные средства взаимодействия, включая веб-интерфейс, интерфейс командной строки и RESTful API.

Для развертывания Foreman используется набор модулей Puppet, который устанавливает все необходимое для полноценной рабочей конфигурации Foreman используя собственную систему пакетизации ОС (пакеты .deb) и добавляя необходимые настройки.

Основные возможности Foreman:

  • Создание экземпляров виртуальных машин и управление ими в среде виртуализации, а также в частных и общедоступных облаках;
  • Установка операционных систем через PXE, локальные носители или из шаблонов или образов;
  • Сбор отчеты программного обеспечения, используемого для управления конфигурацией;
  • Логическая группировка хостов для управляйте ими независимо от местоположения;
  • Предоставление истории изменений для аудита или устранения неполадок;
  • Пользовательский веб-интерфейс, JSON REST API и CLI для Linux;
  • Возможность расширения с помощью плагинов;
  • Система авторизации, основанная на управлении доступом на основе ролей (RBAC), позволяет устанавливать строгие политики для пользователей Foreman и совместима с системами аутентификации и авторизации LDAP или FreeIPA;

  • Инвентаризация управляемых компьютеров:

    • Группы узлов сети: группировка узлов сети с общими опциями, параметрами и поддержкой наследования полей;
    • Обнаружение NIC: автоматическое создание сетевых интерфейсов (обычных, связанных, мостовых, VLAN), операционной системы и архитектуры (в соответствии с фактами, сообщаемыми хостами);
    • Общий поиск: эффективный поиск по всему приложению с интеллектуальным завершением;
    • Закладки: сохраненные общие поисковые запросы в виде закладок для повторного использования;
    • Инвентаризация подсетей и доменов: управление любым количеством сетей с помощью модулей Foreman Proxy DHCP и DNS (включая VLAN);
    • IPAM: управление резервированием DHCP на различных провайдерах, таких как ISC DHCP, MS DHCP или Infoblox, бесплатные IP-адреса могут быть выделены «на лету» или через базу данных Foreman;
    • DNS и управление идентификацией: записи DNS или области могут быть автоматически созданы для каждого хоста в инвентаре Foreman;
  • Подготовка к развертыванию:
    • Управление PXE: Foreman обеспечивает полное управление конфигурацией PXE для PXELinux, Grub, Grub2 и iPXE для максимальной гибкости сетевой загрузки;
    • Установка ОС: автоматическая инициализация различных операционных систем с помощью обширного набора шаблонов;
    • Создание виртуальных машин: интеграция с гипервизором libvirt  для создания экземпляров непосредственно из пользовательского интерфейса / API / интерфейса командной строки Foreman либо из образов, либо через PXE;
    • Создание облачных экземпляров: интеграция с облаками, такими как OpenStack, Rackspace, Amazon EC2 или Google Compute Engine, прямо из Foreman UI / API / CLI;
    • Конфигурация сети хоста: шаблоны подготовки, которые создают сетевую конфигурацию для установленных хостов, включая соединение, мост и поддержку магистрали VLAN;
    • Начальная загрузка управления конфигурацией: шаблон для начальной настройки программного обеспечения управления конфигурацией, включая подписание ключей клиента с помощью CA;
    • Возможность управлять адресами IPv6 на интерфейсах без инициализации;
    • Механизм создания шаблонов на основе ERB для рецептов установки ОС (Kickstart, Preseed), заданий (сценарии SSH, задания Ansible), схем разбиения и других типов;
    • Модули или плагины для интеграции с гипервизорами и облачной инфраструктурой;
    • Общие профили вычислений для нескольких облаков или виртуализации (например, xxsmall, large, medium);
    • Обнаружение хостов: новое оборудование после загрузки может регистрироваться в Foreman для автоматической или по требованию подготовки;
    • Подготовка обнаруженных хостов: автоматическая, полуавтоматическая или полностью ручная подготовка обнаруженного оборудования через WebUI / CLI / API;
  • Настраиваемые текстовые отчеты на основе шаблонов данных, доступных в Foreman. Вывод может быть в формате csv, yaml, json. Шаблоны могут содержать дополнительную логику, и отчет можно настроить при его создании;
  • Запуск произвольных команд или сценариев на удаленных хостах с использованием разных провайдеров, таких как SSH или Ansible. Это включает планирование будущих запусков, повторяющееся выполнение, контроль параллелизма, наблюдение за ходом выполнения и вывод в реальном времени;
  • Интеграция с Puppet:
    • Возможность импортировать и анализировать базу исходного кода Puppet и распознавать параметры класса для интеграции глубокого сопоставления через приложение;
    • Интеграция с центром авторизации Puppet CA для автоматического, полуавтоматического или полностью автоматического выпуска сертификатов;
    • Классификатор узлов марионетки (источник ввода) для Puppet Master;
    • Отчеты о конфигурации: перечень отчетов из систем управления конфигурацией с функцией различий, статистикой и графиками времени выполнения;
  • Интеграция с Ansible:
    • Ввозможность импортировать и анализировать исходный код Ansible для более глубокой интеграции. В сочетании с удаленным выполнением обеспечивает управление конфигурацией, такое как пользовательский интерфейс с Ansible. Администратор назначает роли хостам / группам хостов, а затем применяет политику, определенную этими ролями на хосте. Каждый такой запуск Ansible обновляет факты о хосте и генерирует новый отчет о конфигурации. Поведение ролей можно настроить с помощью параметризации Foreman, которая передается в инвентарь Ansible;
    • Отчеты о конфигурации: перечень отчетов из систем управления конфигурацией с функцией различий, статистикой и графиками времени выполнения.
  • Управление соответствием: Управление соответствием: определение политики соответствия с использованием стандартов и инструментов OpenSCAP, а затем применение ее в инфраструктуре. Поддерживает существующие профили XCCDF и адаптирует их в соответствии с потребностями пользователя.
  • Управление контентом: возможность создания, систематизации и управляйте локальными репозиториями пакетов deb и puppet. Синхронизация удаленных репозиториев или прямая загрузка для создания библиотеки контента, служащей основой для создания пользовательских сборок контента;
  • Моментальные снимки контента: возможность создания блоков пользовательских сборок (Content Views);
  • Обновления пакетов и исправлений: использование локально управляемого контента для установки обновлений пакетов и исправлений на узел или группу узлов;
  • Коллекции хостов: механизм статической группировки хостов контента, позволяющий администраторам группировать хосты контента в соответствии с текущими потребностями. Например, хосты содержимого можно сгруппировать по функциям, отделам или бизнес-единицам;

Оригинальная документация

Оригинальная документация Foreman

Оригинальная документация Foreman доступна по ссылкам:

Оригинальная документация Puppet

Оригинальная документация Puppet доступна по ссылке: https://puppet.com/docs/

Оригинальная документация Ansible

Оригинальная документация Ansible доступна по ссылке: https://docs.ansible.com/

Установка пакетов

  1. Подключить репозитории:
    • основной репозиторий и актуальное оперативное обновление основного репозиторияактуальное оперативное обновление базового репозитория;
    • актуальное оперативное обновление расширенного репозитория, включая компонент astra-ce;

  2. Обновить список пакетов:

    Command
    sudo apt update

    Опционально: установить актуальное обновление:

    Command
    sudo apt dist-upgrade


  3. Установить пакеты:

    1. В случае, если ОС была установлена без графической оболочки, установить пакет shared-mime-info, команда

    Установить пакеты

    1. Для установки первичного сервер FreeIPA:

      Command
      sudo apt install astra-freeipa-server astra-freeipa-client dogtag-pki


    2. Для установки реплик FreeIPAУстановить пакет foreman-installer:

      Command

      sudo apt install

      astra-freeipa-server astra-freeipa-client dogtag-pki

      foreman-installer


    3. Дальнейшую настройку выполнять в соответствии с инструкциями

    FreeIPA (варианты установки с центром сертификации DogTag)
    1. Установка и настройка взаимодействия связки Foreman-Puppet, Foreman-Ansible.