Продвинутые функции Puppet Dashboard

В прошлой записи был установлен Dashboard, в этой записи я хочу продолжить развивать тему и рассказать о включении продвинутых функциях Dashboard, а именно о Inventory Service и Filebucket Viewer. Первое предоставляет доступ к тому что в теминологии называется факты (facts) и каталог (catalog) для каждого узла, а второе — резервные копии всех файлов изменных с помощью с возможностью просмотра изменнений (diff) через веб-интерфейс.

Для начала нам потребуется установить PuppetDB. PuppetDB выступает хранилищем для Puppet Inventory Service, это приложение написанное на java. Оно может хранить данные во встроенной БД HSQLDB или PostgreSQL. В данном примере будет использоваться встроенная БД.

Устанавливаем PuppetDB и коннектор к puppetmaster.

 [email protected]:~# apt-get install puppetdb puppetdb-terminus 

Запускаем сервис.

 [email protected]:~# service puppetdb start 

Сообщим puppetmaster, о существовании PuppetDB, для этого создаем файл /etc/puppet/puppetdb.conf

 [main] server = puppet.local port = 8081 

И добавляем в /etc/puppet/puppet.conf следующие строки

 [master] storeconfigs = true storeconfigs_backend = puppetdb 

В /etc/puppet/routes.yaml добавляем

 master: facts: terminus: puppetdb cache: yaml 

Перезапускаем puppetmaster.

 [email protected]:~# service puppetmaster restart 

Тестируем.

 [email protected]:~# puppet agent --test 

Если настроено верно, в логе дожна появится информации о фактах и каталоге для узла на котором был запущен агент.

 [email protected]:~# tail /var/log/puppetdb/puppetdb.log ... [puppetdb.command] [3b0d1036-5a0d-44b0-8900-2f2cd3fb3e51] [replace facts] linux.local [puppetdb.command] [f566616c-d756-42a8-ae0d-63a93a751250] [replace catalog] linux.local 

Статистика использования PuppetDB доступна через встроенный веб-интерфейс: http://puppet.local:8080/dashboard/index.html

PuppetDB

Немного паранойи. Разрешаем доступ к фактам только для Puppet Dashboard, для этого создаем /etc/puppet/auth.conf (здесь «dashboard» — имя сертификата которому доступ разрешен).

 path /facts auth yes method find, search allow dashboard 

Ну а теперь пора вернуться к тому с чего мы начинали. Включаем продвинутые фукции Puppet Dashboard.

Inventory Support

Редактируем /etc/puppet-dashboard/settings.yml

 enable_inventory_service: true inventory_server: 'puppet.local' inventory_port: 8140 

Filebucket Viewer

Редактируем /etc/puppet-dashboard/settings.yml

 use_file_bucket_diffs: true file_bucket_server: 'puppet.local' file_bucket_port: 8140 

Добавляем в /etc/puppet/puppet.conf

 archive_files = true 

Добавляем в основной манифест /etc/puppet/manifests/site.pp

 filebucket { "main": server => "puppet.local", path => false, } File { backup => "main" } 

Перезапускаем службу Puppet Dashboard.

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