Как настроить Puppet Master и агент в CentOS 7
Это руководство существует для этих версий ОС
- CentOS 8
- CentOS 7
На этой странице
- Предпосылки
- Что мы будем делать:
- Шаг 1. Предварительная установка Puppet
- - Настройка хостов
- - Настройка NTP-сервера
- - Отключить SELinux
- – Добавить репозиторий марионеток
Puppet — это инструмент управления конфигурацией с открытым исходным кодом и среда автоматизации сервера. Puppet может работать в Unix-подобных операционных системах, а также в системах Microsoft Windows. Он позволяет вам управлять и выполнять административные задачи и настраивать сотни систем с одного главного сервера.
В этом руководстве я расскажу вам, как установить Puppet на CentOS 7. Я установлю и настрою сервер CentOS 7 в качестве мастера марионеток, а другой — в качестве агента.
Предпосылки
- 2 сервера CentOS 7
- 10.0.15.10 master.hakase.io 2 ГБ памяти
- 10.0.15.11 agent.hakase.io
Что мы будем делать:
- Предварительная установка Puppet
- Установка и настройка сервера Puppet
- Установка и настройка агента Puppet
- Проверка конфигурации агента Puppet
- Создание первого манифеста марионетки
Шаг 1 — Предварительная установка Puppet
На этом этапе мы выполним некоторые задачи, включая установку и настройку на обоих серверах puppet master и puppet agent. Настроим файл hosts, синхронизируем время с помощью NTP-сервера, отключим SELinux и добавим в систему репозиторий puppet.
- Настроить хосты
Подключитесь к мастеру марионеток и агенту, используя своего пользователя root.
ssh
Теперь отредактируйте хосты с помощью редактора vim.
vim /etc/hosts
Добавьте следующую конфигурацию в конец строки.
10.0.15.10 master.hakase.io
10.0.15.11 agent.hakase.ioСохранить и выйти.
Теперь проверьте с помощью команды ping.
ping master.hakase.io
ping agent.hakase.ioИ убедитесь, что вы получили IP-адрес сервера 10.0.15.10 и 10.0.15.11.
- Настроить NTP-сервер
Очень важно поддерживать синхронизацию времени между главным сервером и сервером агента.
Установите пакеты NTP на оба сервера с помощью команды yum.
yum -y install ntp ntpdate
После завершения установки выберите нужный пул NTP, выполнив команду, как показано ниже.
sudo ntpdate 0.centos.pool.ntp.org
Теперь запустите службу NTP и включите ее запуск каждый раз при загрузке системы.
sudo systemctl start ntpd
sudo systemctl enable ntpdУстановка и настройка NTP завершена.
- Отключить SELinux
Отредактируйте конфигурацию SELinux с помощью vim.
vim /etc/sysconfig/selinux
Измените значение SELINUX на отключенное.
SELINUX=disabled
Сохранить и выйти.
- Добавить кукольный репозиторий
Теперь добавьте репозиторий puppet в систему с помощью приведенной ниже команды rpm.
rpm -Uvh https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm
По завершении перезагрузите оба сервера.
reboot
Теперь все было готово к установке и настройке puppet.
Шаг 2 — Установите и настройте Puppetserver
На этом этапе мы установим puppetserver на сервер master.hakase.io. Установите puppetserver с помощью приведенной ниже команды yum.
sudo yum -y install puppetserver
После завершения установки нам нужно настроить выделение памяти для puppetserver. Мы установим максимальное выделение памяти для puppetserver на 1 ГБ.
Отредактируйте конфигурацию puppetserver с помощью vim.
vim /etc/sysconfig/puppetserver
Теперь измените строку, как показано ниже.
JAVA_ARGS="-Xms1g -Xmx1g ...."
Сохранить и выйти.
Затем перейдите в каталог конфигурации puppet и отредактируйте файл puppet.conf.
cd /etc/puppetlabs/puppet
vim puppet.confДобавьте следующую конфигурацию.
[master]
dns_alt_names=master.hakase.io,puppet
[main]
certname = master.hakase.io
server = master.hakase.io
environment = production
runinterval = 1hСохранить и выйти.
Теперь запустите puppetserver и разрешите ему запускаться каждый раз при запуске.
systemctl start puppetserver
systemctl enable puppetserverУстановка и настройка Puppetserver успешно завершены.
Если вы используете firewalld в своей системе, добавьте порт puppetserver в список с помощью приведенной ниже команды firewall-cmd.
firewall-cmd --add-port=8140/tcp --permanent
firewall-cmd --reloadШаг 3 — Установите и настройте агент Puppet
Мы установим агент puppet на сервер agent.hakase.io.
Установите агент puppet, используя приведенную ниже команду yum.
yum install -y puppet-agent
После завершения установки перейдите в каталог конфигурации puppet и отредактируйте файл puppet.conf.
cd /etc/puppetlabs/puppet
vim puppet.confВставьте следующую конфигурацию.
[main]
certname = agent.hakase.io
server = master.hakase.io
environment = production
runinterval = 1hСохранить и выйти.
Далее мы зарегистрируем марионеточный агент на кукловоде.
Запустите приведенную ниже команду в оболочке агента puppet.
/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true
Агент марионеток теперь работает на сервере и пытается зарегистрироваться на хозяине марионеток.
Теперь вернитесь в оболочку puppet master и выполните приведенную ниже команду.
/opt/puppetlabs/bin/puppet cert list
И вы получите ожидающий запрос на подпись сертификата (CSR) от сервера кукольного агента agent.hakase.io.
Подпишите сертификат с помощью приведенной ниже команды.
/opt/puppetlabs/bin/puppet cert sign agent.hakase.io
И результат должен быть похож на следующий:
Агент марионеток теперь работает в системе, и сертификат для агента подписан хозяином марионеток.
Шаг 4. Проверьте конфигурацию агента Puppet
После того, как мастер марионеток подписал файл сертификата для агента, выполните приведенную ниже команду на агенте марионеток, чтобы проверить конфигурацию.
/opt/puppetlabs/bin/puppet agent --test
И вы получите результат, как показано ниже.
Агент Puppet извлек конфигурацию из мастера марионеток и применил ее к серверу без каких-либо ошибок.
Шаг 5 — Создайте первый манифест
Установка и настройка мастера марионеток и агента завершена. И для этого шага мы создадим простой манифест для тестирования.
Мы создадим манифест для установки веб-сервера Apache httpd.
На главном сервере puppet перейдите в каталог /etc/puppetlabs/code/ и создайте новый файл манифеста site.pp с помощью vim.
cd /etc/puppetlabs/code/
cd environments/production/manifestsСоздайте новый файл манифеста.
vim site.pp
Вставьте следующую конфигурацию.
node 'agent.hakase.io' {
package { 'httpd':
ensure => "installed",
}
service { 'httpd':
ensure => running,
enable => true
}
}Сохранить и выйти.
Теперь откройте оболочку сервера кукольного агента и выполните приведенную ниже команду.
/opt/puppetlabs/bin/puppet agent --test
Команда получит новый файл конфигурации манифеста от мастера марионеток, а затем применит его к серверу агента.
Ниже приводится результат.
Откройте веб-браузер и введите IP-адрес кукольного агента.
http://10.0.15.11/
И вы получите HTTP-страницу по умолчанию, как показано ниже.
Веб-сервер httpd был установлен с использованием манифеста puppet.
Установка и настройка Puppet Master и Puppet Agent на CentOS 7 успешно завершены.
Ссылка
- https://docs.puppet.com/