Как использовать мастер для управления кукольными узлами в Ubuntu 14.04

Вступление

Foreman - это инструмент с открытым исходным кодом, который может помочь в управлении серверами, предоставляя простой способ взаимодействия с Puppet (или Chef) для автоматизации задач и развертывания приложений. Foreman предоставляет надежный веб-интерфейс пользователя, API и CLI, которые можно использовать для предоставления, настройки и мониторинга ваших серверов. Он подходит для инфраструктур любых размеров и работает с большинством дистрибутивов Linux.

В этом руководстве мы покажем вам, как установить Foreman с Puppet, и начнем использовать его для управления вашими серверами. Мы будем использовать Foreman для его отчетности и возможностей внешнего классификатора узлов (ENC), чтобы упростить управление Puppet.

Предпосылки

В этом руководстве предполагается, что вы установите Foreman на новый сервер, который также будет выступать в качестве главного сервера Puppet. Если у вас уже есть главный сервер Puppet, вы можете установить на него Foreman, но имейте в виду, что ваш по умолчанию + site.pp + будет перезаписан (оставив существующие узлы агента Puppet в состоянии unmanaged), и вам потребуется настроить Форман для управления существующими узлами агента Puppet.

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

  • * Root Access: * + sudo + доступ ко всем серверам, которыми вы хотите управлять

  • * Частная сеть DNS: * Должен быть настроен прямой и обратный DNS, и каждый сервер должен иметь уникальное имя хоста. Вот учебник для https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-14-04[configure своей собственной DNS-сервер частной сети. Если у вас не настроен DNS, вы должны использовать файл hosts для разрешения имен. Мы предполагаем, что вы будете использовать вашу частную сеть для связи в вашей инфраструктуре.

  • * Открытые порты брандмауэра: * Хозяин Puppet должен быть доступен на порту 8140. Если ваш брандмауэр слишком строг, проверьте это https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu-and-debian-cloud- сервер [UFW Tutorial] для инструкций о том, как разрешить входящие запросы через порт 8140.

После того, как у вас есть все необходимые условия, давайте перейдем к созданию сервера Foreman (и мастера Puppet)!

Создать Foreman Server

Создайте новый * Ubuntu 14.04 * x64 сервер, используя «foreman» в качестве имени хоста. Добавьте свою частную сеть в свой DNS со следующими данными:

Hostname Role Private FQDN

foreman

Foreman / Puppet Master

foreman.nyc2.example.com

Если вы просто настроили свой DNS и не знаете, как добавить свой хост в DNS, обратитесь к https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network -dns-server-on-ubuntu-14-04 # Обслуживание DNSRecords Раздел [Обслуживание записей DNS] учебного руководства по DNS. По сути, вам нужно добавить записи «A» и «PTR» и позволить новому хосту выполнять рекурсивные запросы. Кроме того, убедитесь, что вы настроили свой поисковый домен, чтобы ваши серверы могли использовать короткие имена хостов для поиска друг друга.

Убедитесь, что имя хоста установлено на FQDN

Чтобы проверить полное имя хоста вашего сервера, введите следующую команду:

hostname -f

Вы должны увидеть длинную версию имени вашего сервера, например, «Foreman.nyc2.example.com». Если для вашего имени хоста задано полное доменное имя, вы можете перейти к следующему разделу.

В противном случае, если возвращается короткое имя, например «Бригадир», вам нужно установить длинное имя вашего хоста. Для этого отредактируйте файл + hosts:

sudo vi /etc/hosts

Найдите первую запись для вашего короткого имени хоста и добавьте перед ним полное доменное имя. Например:

127.0.1.1       foreman

Должен быть изменен на:

127.0.1.1        foreman

Затем сохраните и выйдите.

Затем отредактируйте ваш файл + hostname +:

sudo vi /etc/hostname

Измените запись в файле на полное доменное имя вашего сервера, например, «Foreman.nyc2.example.com». Затем сохраните и выйдите.

Затем выполните следующую команду, чтобы сразу же прочитать изменения конфигурации, которые вы только что внесли:

sudo hostname --file /etc/hostname

Ваше длинное имя хоста было установлено. Продолжайте устанавливать Форман!

Установить Форман

Самый простой способ установить Foreman - воспользоваться установщиком Foreman. Установщик Foreman устанавливает и настраивает все необходимые компоненты для запуска Foreman, включая следующие:

  • мастер

  • Кукольный мастер и агент

  • Веб-сервер Apache с модулем SSL и пассажира

Загрузите установщик Foreman с помощью следующих команд:

sudo sh -c 'echo "deb http://deb.theforeman.org/ trusty 1.5" > /etc/apt/sources.list.d/foreman.list'
sudo sh -c 'echo "deb http://deb.theforeman.org/ plugins 1.5" >> /etc/apt/sources.list.d/foreman.list'
wget -q http://deb.theforeman.org/pubkey.gpg -O- | sudo apt-key add -
sudo apt-get update && sudo apt-get install foreman-installer

Затем запустите установщик Foreman с помощью следующей команды:

sudo foreman-installer

Вы должны увидеть следующий вывод:

Your puppet version does not support progress bar
Preparing installation Done
 Success!
 * Foreman is running at https://foreman.nyc2.example.com
     Default credentials are 'admin:changeme'
 * Foreman Proxy is running at https://foreman.nyc2.example.com:8443
 * Puppetmaster is running at port 8140
 The full log is at /var/log/foreman-installer/foreman-installer.log

Если ваш вывод похож на выше, Foreman и его обязательные компоненты были установлены!

Включить Diffs

Прежде чем продолжить, сделаем небольшое изменение конфигурации, чтобы включить «diffs». Это изменение позволит вам просматривать различия, которые позволят вам увидеть изменения файла конфигурации в представлении отчетов Foreman.

Отредактируйте + puppet.conf +:

sudo vi /etc/puppet/puppet.conf

Найдите строку, которая устанавливает + show_diff + и измените ее значение на + true +:

   show_diff     = true

Сохранить и выйти.

Добавить хост мастера в базу данных мастера

Чтобы добавить хост Foreman в базу данных Foreman, запустите командную строку + puppet agent так:

sudo puppet agent --test

Это добавляет хост Foreman в качестве первого узла агента Puppet, который управляется Foreman.

Войти в веб-интерфейс мастера

Войдите в Foreman и измените пароль администратора. Доступ к веб-интерфейсу Foreman возможен через общедоступный сетевой интерфейс вашего VPS (либо его общедоступное полное доменное имя, либо общедоступный IP-адрес). + Посмотрите на Инфраструктура → Умные прокси. Создается автоматически (и показывает доступные функции).

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

изображение: https: //assets.digitalocean.com/articles/foreman/foreman_login.png [Страница входа мастера]

Как вы могли заметить при запуске + foreman-installer +, это учетные данные по умолчанию:

  • * Имя пользователя *: админ

  • * Пароль *: изменить

Панель инструментов мастера

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

изображение: https: //assets.digitalocean.com/articles/foreman/dashboard.png [Состояние конфигурации хоста]

Ниже вы увидите сводку последних событий и график с количеством «клиентов», которые выполнили свое задание Puppet за последние 30 минут. Эта информация может помочь вам понять, как работает ваша общая установка Puppet.

Изменить пароль администратора

Прежде чем делать что-либо еще, вы захотите изменить свой пароль пользователя + admin. Для этого наведите курсор мыши на элемент Admin User в правом верхнем углу и нажмите My Account:

изображение: https: //assets.digitalocean.com/articles/foreman/account.png [Моя учетная запись]

Найдите форму Password. Измените пароль на что-нибудь безопасное, затем нажмите «Отправить».

Добавить модуль NTP к мастеру

Puppet требует точного учета времени, поэтому мы будем использовать Foreman для управления службой NTP на хосте Foreman (который также является мастером Puppet).

В веб-браузере перейдите по ссылке https://forge.puppetlabs.com/. Поиск модуля NTP. Первый результат должен быть + puppetlabs / ntp +. Нажмите на модуль и прочитайте о нем, чтобы увидеть, что он делает.

Теперь мы установим его в среде Production нашего мастера Puppet с помощью следующей команды:

sudo puppet module install -i /etc/puppet/environments/production/modules puppetlabs/ntp

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

Notice: Preparing to install into /etc/puppet/environments/production/modules ...
Notice: Downloading from https://forge.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/etc/puppet/environments/production/modules
└─┬ puppetlabs-ntp (v3.1.2)
 └── puppetlabs-stdlib (v4.3.2)

Модуль установлен в мастере Puppet, но его необходимо добавить в Foreman, прежде чем мы сможем его использовать.

В веб-интерфейсе Foreman наведите курсор мыши на Configure, затем щелкните Puppet classes:

изображение: https: //assets.digitalocean.com/articles/foreman/puppet_classes.png [Кукольные классы]

Нажмите на кнопку Import from foreman.nyc2.example.com. Тогда вы увидите экран, который выглядит так:

изображение: https: //assets.digitalocean.com/articles/foreman/import_ntp_class.png [Импортировать класс NTP]

Установите флажок рядом с элементом и нажмите кнопку Update. Модуль ntp теперь импортирован в Foreman и готов к использованию с хостом.

Переопределить пул NTP по умолчанию

Теперь мы хотим переопределить настройки модуля NTP по умолчанию и настроить модуль NTP для использования пула NTP США по умолчанию. Не стесняйтесь искать пул NTP по вашему выбору на NTP Pool Project.

Вы должны быть на экране «Классы кукол». Нажмите на класс «ntp», чтобы войти в режим редактирования. Теперь нажмите на вкладку «Smart Class Parameter».

Прокрутите вниз, найдите элемент «серверы» в левой боковой панели и выберите его:

изображение: https: //assets.digitalocean.com/articles/foreman/ntp_servers.png [NTP-серверы]

Найдите и установите флажок «Переопределить». Измените раскрывающийся список Parameter type на «array». Затем измените «Значение по умолчанию» из пула NTP по умолчанию на один из ваших вариантов в виде массива. Мы будем использовать пул NTP США:

["0.us.pool.ntp.org","1.us.pool.ntp.org","2.us.pool.ntp.org","3.us.pool.ntp.org"]

Прокрутите вниз и нажмите зеленую кнопку «Отправить». Теперь любые хосты или группы хостов, которые используют этот модуль, будут использовать пул NTP США по умолчанию.

Настройте хост мастера для использования модуля NTP

Теперь мы готовы использовать модуль NTP для управления NTP на хосте Foreman.

Перейдите на экран Hosts (наведите курсор мыши на Hosts, затем нажмите All Hosts). Нажмите на кнопку «Изменить» в правой части окна вашего мастера.

Нажмите на вкладку Классы кукол. В разделе Available Classes щелкните класс ntp, чтобы развернуть его, затем щелкните знак плюс рядом с «ntp»:

изображение: https: //assets.digitalocean.com/articles/foreman/available_classes.png [Доступные классы]

Это перемещает класс ntp в раздел Included Classes. Это означает, что в следующий раз, когда агент Puppet хоста Foreman зарегистрируется, к нему будет применен этот модуль Puppet.

Нажмите кнопку Submit, чтобы применить изменения.

Посмотреть конфигурацию кукол

После редактирования конфигурации хоста Foreman вы будете перенаправлены на сводную страницу хоста Foreman.

Чтобы просмотреть информацию, переданную Puppet при регистрации на узле агента, нажмите кнопку YAML:

изображение: https: //assets.digitalocean.com/articles/foreman/yaml.png [Кнопка YAML]

Вы увидите страницу с выводом, похожим на это:

---
classes:
 ntp:
   server_list:
   - 0.us.pool.ntp.org
   - 1.us.pool.ntp.org
   - 2.us.pool.ntp.org
   - 3.us.pool.ntp.org
parameters:
 puppetmaster: foreman.nyc2.example.com
 root_pw:
 foreman_env: production
 owner_name: Admin User
 owner_email: [email protected]
environment: production

Запустите Puppet Agent

Давайте применим это изменение сейчас, чтобы мы могли видеть, что оно делает.

На сервере Foreman запустите агент Puppet:

sudo puppet agent --test

В веб-интерфейсе вернитесь на хост Foreman, затем нажмите кнопку Reports (рядом с кнопкой YAML). Вы должны увидеть новую запись отчета, которая указывает, что некоторые изменения были применены и служба была перезапущена; нажмите на отчет. Здесь вы увидите несколько уведомлений, которые указывают, что пакет NTP был установлен, настроен и перезапущен.

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

Если вы хотите, нажмите на ссылку «Просмотреть различия» рядом с элементом + ntp.conf / content. Это полезно, если вы хотите увидеть, как Puppet изменяет файлы конфигурации, которыми он управляет.

Добавление новых хостов в мастер

Теперь, когда у вас настроен сервер Foreman, вы, вероятно, захотите добавить больше хостов, которыми он будет управлять. Процесс добавления большего количества хостов аналогичен добавлению большего количества узлов агента Puppet к главному. Подробные инструкции для этого можно найти в first учебник в этой серии. Обязательно настройте агент так, чтобы он указывал на ваш главный сервер Puppet (Foreman).

После установки и запуска агента вы должны подписать его сертификат на сервере Foreman. Вы можете подписать сертификаты в командной строке via , как с обычной настройкой Puppet, или вы можете использовать веб-интерфейс Foreman.

Чтобы использовать веб-интерфейс для подписи сертификатов, перейдите в Инфраструктура, затем нажмите Smart Proxies, затем нажмите кнопку Сертификаты:

Изображение: https: //assets.digitalocean.com/articles/foreman/certificates.png [Сертификаты]

Здесь вы увидите все сертификаты в PuppetCA. Нажмите кнопку Sign (справа) рядом с новыми хостами, которые вы настроили для использования этого мастера Puppet.

Ваши новые хозяева готовы к управлению Форманом!

Заключение

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

Удачи!

Related