Установка та налаштування puppet 3 на базі CentOS7

Липень 6th, 2016 | Теґи: , , , ,

Якщо є необхідність адмініструвати багато однотипно налаштованих серверів, то не обійтися без системи автоматизації.
Одна з найкращих та найрозпосвюдженіших на даний момент – puppet.
Тому її і вибрано.
Отже, почнемо з налаштування мастер-сервера.

1. Встановлюємо репозиторій там сам puppet-server.

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
yum -y install puppet-server
puppet resource package puppet-server ensure=latest

2. Конфігуруємо puppet-server.
1) Задаємо hostname машині, перевіряємо, щоб в /etc/hosts також було так прописано.
Налаштовуємо директиву dns_alt_names в секції [main] /etc/puppet/puppet.conf, куди вписуємо через кому всі імена, які можуть використовуватися мастером.
Наприклад

    dns_alt_names = puppet.master,puppetmaster,master1

2) Генеруємо сертифікати для мастера.

puppet master --verbose --no-daemonize

Як тільки запуститься – Starting Puppet master version – можна переривати.

Базове налаштування мастера закінчено. Можна запускати: systemctl start puppetmaster

Далі працюємо із сервером-слейвом (puppet agent).

3. Встановлюємо репозиторій там сам puppet на підпорядкованому сервері.

rpm -ivh http://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
yum -y install puppet
puppet resource package puppet ensure=latest

4. Налаштовуємо puppet клієнта
1) В /etc/hosts повинно бути об’явлено ДНС для сервера і клієнта(якщо вони не резолвляться).
2) В секції [main] /etc/puppet/puppet.conf додаємо визначення, що у нас за мастер

server = puppet.master 

3) Генеруємо сертифікати клієнта для мастера (тут вказуємо мастер)

# puppet agent --server puppet.master --waitforcert 60 --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for puppets1
Info: Applying configuration version '1467750604'
Notice: Finished catalog run in 0.01 seconds

4) Підписуємо цей сертифікат на мастері

# puppet cert list
"puppets1"      (SHA256) 06:81:A3:AF:6F:0F:47:A6:A6:C6:FB:18:DF:EE:65:83:AF:FE:19:87:87:1A:C4:51:CE:44:E7:2F:C7:51:D0:9F
# puppet cert --sign puppets1

PS. Весь список сертифікатів можна побачити командою: puppet cert list –all.
Після цього протягом 60 секунд повинно на підпорядкованому сервері висвітитися повідомлення, що все готово.
5) Запускаємо агента: systemctl start puppet.

PS. Всі налаштування паппета можна переглянути командою: puppet apply –configprint all

5. Перевіряємо роботу.
Нас на мастері цікавить основний маніфест: manifest = /etc/puppet/manifests/site.pp.
Відкриваємо його і пишемо простий приклад

file { '/etc/yum.repos.d/nginx.repo':
  ensure => file,
  content => '[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1', # додаємо файл з описом репозиторію для nginx
  owner => 'root',
  group => 'root',
  mode => '644',
}

package { 'nginx':
  ensure => installed, # Установлюємо nginx. Якщо вже установлено, секція проігнорується.
}

service { 'nginx':
  ensure => running, # перевіряємо/запускаємо nginx
  enable => true, # додаємо в автозапуск
}

PS. Всі доступні типи ресурсів можна побачити командою:

 puppet resource --types 

Зберігаємо його та чекаємо на клієнті оновлення з мастера (по замовчуванню 30 хвилин), або ж перезавантажуємо клієнт systemctl restart puppet.
В /var/log/messages можна бачити деталі.
Також, можна перевірити напряму паппетом

[root@puppets1 /]# puppet resource service nginx
service { 'nginx':
  ensure => 'running',
  enable => 'true',
}

В цьому випадку встановлення, запуск та зміна налаштувань автозапуску пройшла успішно.

Заглиблюватися в маніфести буду в наступних статтях.

Ще немає коментарів.