Я уже упоминал о Puppet, как о средстве централизованного управления парком серверов, теперь речь зайдет о Puppet Dashboard. Это веб-интерфейс предостовляющий наглядный доступ к отчетам puppet.
Выглядит он следующим образом:
Для работы 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