В прошлой записи был установлен Puppet Dashboard, в этой записи я хочу продолжить развивать тему Puppet и рассказать о включении продвинутых функциях Puppet Dashboard, а именно о Inventory Service и Filebucket Viewer. Первое предоставляет доступ к тому что в теминологии puppet называется факты (facts) и каталог (catalog) для каждого узла, а второе — резервные копии всех файлов изменных с помощью Puppet с возможностью просмотра изменнений (diff) через веб-интерфейс.
Для начала нам потребуется установить PuppetDB. PuppetDB выступает хранилищем для Puppet Inventory Service, это приложение написанное на java. Оно может хранить данные во встроенной БД HSQLDB или PostgreSQL. В данном примере будет использоваться встроенная БД.
Устанавливаем PuppetDB и коннектор к puppetmaster.
root@puppet:~# apt-get install puppetdb puppetdb-terminus
Запускаем сервис.
root@puppet:~# 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.
root@puppet:~# service puppetmaster restart
Тестируем.
root@linux:~# puppet agent --test
Если настроено верно, в логе дожна появится информации о фактах и каталоге для узла на котором был запущен агент.
root@puppet:~# 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
Немного паранойи. Разрешаем доступ к фактам только для 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.
root@puppet:~# service puppet-dashboard restart