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


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

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

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

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

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

[email protected]:~# wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb
[email protected]:~# dpkg -i puppetlabs-release-precise.deb
[email protected]:~# apt-get update
[email protected]:~# 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;

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

[email protected]:~# cd /usr/share/puppet-dashboard
[email protected]:~# 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.

[email protected]:~# service puppet-dashboard start

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

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

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

[email protected]:~# service puppetmaster restart

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

  [agent]
report = true

Проверяем.

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

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

[email protected]:~# service puppet-dashboard-workers start

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

[email protected]:~# cd /usr/share/puppet-dashboard
[email protected]:/usr/share/puppet-dashboard# chown -R www-data: certs/
[email protected]:/usr/share/puppet-dashboard# sudo -u www-data rake cert:create_key_pair
[email protected]:/usr/share/puppet-dashboard# sudo -u www-data rake cert:request

Утверждаем.

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

И получаем.

[email protected]:~# cd /usr/share/puppet-dashboard
[email protected]:/usr/share/puppet-dashboard# sudo -u www-data rake cert:retrieve