Устанавливаем Puppet Dashboard

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

Выглядит он следующим образом:

Puppet Dashboard Node Manager Puppet Dashboard Node View Puppet Dashboard Report Puppet Dashboard Radiator View

Для работы Dashboard требуется база данных. Предположим что MySQL уже установлен и настроен.

Устанавливать Dashboard будем из пакета, поэтому добавляем репозиторий puppetlabs

root@puppet:~# wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
root@puppet:~# dpkg -i puppetlabs-release-precise.deb
root@puppet:~# apt-get update
root@puppet:~# apt-get install puppet-dashboard

Настройки Dashboard содержатся в двух основных нофигурационных файлах: database.yml и settings.yml. Первый, как можно понять из названия отвечает за базу данных. Второй содержит остальные настройки.

В database.yml зададим параметры используемой БД.

production:
  database: puppet_dashboard
  username: puppet_dashboard
  password: top_secret
  encoding: utf8
  adapter: mysql

Создадим в mysql пользователя puppet_dashboard, БД с аналогичным именем и предоставим на нее полные права.

CREATE DATABASE puppet_dashboard CHARACTER SET utf8;
CREATE USER 'puppet_dashboard'@'localhost' IDENTIFIED BY 'top_secret';
GRANT ALL PRIVILEGES ON puppet_dashboard.* TO 'puppet_dashboard'@'localhost';
FLUSH PRIVILEGES;

Теперь необходимо заполнить созданную БД.

root@puppet:~# cd /usr/share/puppet-dashboard
root@puppet:~# rake RAILS_ENV=production db:migrate

В settings.yml пропишем адрес puppetmaster.

# Hostname of the certificate authority.
ca_server: 'puppet.local'

Отредактируем /etc/default/puppet-dashboard и /etc/default/puppet-dashboard-workers, разрешив запуск сервисов.

START=yes

Запускаем Dashboard.

root@puppet:~# service puppet-dashboard start

Для того чтобы исполовать Dashboard для отчетов необходимо соответсвующим образом настроить puppetmaster.

[master]
    reports = store, http
    reporturl = http://puppet.local:3000/reports/upload

И перезапустить его.

root@puppet:~# service puppetmaster restart

А так же включить отчеты в конфигурации агентов.

  [agent]
    report = true

Проверяем.

root@linux:~# puppet agent --test
info: Caching catalog for linux.local
info: Applying configuration version '1356375539'
notice: Finished catalog run in 0.46 seconds

Dashboard использует отложенную очередь для асинхронного выполнения задач, поэтому для его корректной работоы необходимо запустить сервис puppet-dashboard-workers.

root@puppet:~# service puppet-dashboard-workers start

На этом базовый функционал заканчивается. Слегка забегая вперед, подготовим Dashboard к использованию продвинутых возможностей, например службы инвентаризации. Для этого нам потребуется сертификат от puppetmaster, запрашиваем его.

root@puppet:~# cd /usr/share/puppet-dashboard
root@puppet:/usr/share/puppet-dashboard# chown -R www-data: certs/
root@puppet:/usr/share/puppet-dashboard# sudo -u www-data rake cert:create_key_pair
root@puppet:/usr/share/puppet-dashboard# sudo -u www-data rake cert:request

Утверждаем.

root@puppet:~# puppet ca list
  dashboard            (MD5) CF:86:8D:45:A6:46:85:98:BA:56:8D:51:5C:D3:18:D2
root@puppet:~# puppet ca sign dashboard
Signed certificate request for dashboard

И получаем.

root@puppet:~# cd /usr/share/puppet-dashboard
root@puppet:/usr/share/puppet-dashboard# sudo -u www-data rake cert:retrieve