Puppetdb: различия между версиями

Материал из ALT Linux Wiki
(Добавлено описание настройки postgresql для puppetdb, a также расширено описание настройки puppetdb.)
(Исправлены синтаксические ошибки)
Строка 20: Строка 20:
== Настройка postgresql ==
== Настройка postgresql ==


Для работы puppetdb необходимы доступная по сети [[PostgreSQL|сервер PostgreSQL]], а также расширение pg_trgm.
Для работы puppetdb необходимы доступный по сети [[PostgreSQL|сервер PostgreSQL]], а также расширение pg_trgm.


Выполним вход в учетную запись postgresql:
Выполним вход в учетную запись postgresql:
Строка 58: Строка 58:
</source>
</source>


Предварительная настройка postgresql закончена и можно перейти к настройки puppetdb.
Предварительная настройка postgresql закончена и можно перейти к настройке puppetdb.


== Настройка puppetdb ==
== Настройка puppetdb ==


Установим дополнительный пакеты для puppetdb:
Установим дополнительные пакеты для puppetdb:
<source lang="bash">$ apt-get install puppet puppetdb-terminus</source>
<source lang="bash">$ apt-get install puppet puppetdb-terminus</source>


Строка 94: Строка 94:
</source>
</source>


Добавим в секцию '''[main]''' в {{path|/etc/puppet/puppet.conf}}:
Добавим секцию '''[main]''' в {{path|/etc/puppet/puppet.conf}}:
<source lang="ini">
<source lang="ini">
[main]
[main]
Строка 133: Строка 133:
</source>
</source>


Так же для включения служб по умолчанию:
Так же для включения служб по умолчанию, выполним:
<source lang="bash">
<source lang="bash">
$ systemctl enable puppetdb
$ systemctl enable puppetdb
Строка 142: Строка 142:
Протестируем после запуска, создадим пример для установки пакетов {{path|/etc/puppet/manifests/site.pp}}:
Протестируем после запуска, создадим пример для установки пакетов {{path|/etc/puppet/manifests/site.pp}}:
<source lang="ini">
<source lang="ini">
node 'puppet-server.off.local' {
node 'puppet.server.local' {
       Package { ensure => installed }
       Package { ensure => installed }
       package { 'telnet': }
       package { 'telnet': }

Версия от 13:06, 31 июля 2018

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Описание

PuppetDB - быстрое, масштабируемое и надежное хранилище данных для Puppet. PuppetDB кэширует данные, созданные Puppet, а также предоставляет расширенные функции на основе мощного API. Используется с СУБД PostgreSQL.

Установка

Для установки чистого puppetdb достаточно:

$ apt-get install puppetdb

Настройка

Предварительно, для корректной работы puppetdb требует сконфигурированные и запущенные puppet server и puppet client на вашем хосте. Информация об установке и настройке puppet server и puppet client находится в соответствующей статье.

Для примера настройки puppetdb возьмем следующую конфигурацию:

  • Хост: puppet.server.local
  • IP: 192.168.0.2

Настройка postgresql

Для работы puppetdb необходимы доступный по сети сервер PostgreSQL, а также расширение pg_trgm.

Выполним вход в учетную запись postgresql:

$ psql -U postgresql

Установим расширение pg_trgm:

# CREATE EXTENSION pg_trgm;

Предварительно установим дополнительные компоненты:

$ apt-get install postgresql10 postgresql10-server postgresql10-contrib

Перед запуском postgresql необходимо создать системные базы данных:

$ /etc/init.d/postgresql initdb

Запустим службу postgresql:

$ service postgresql start

Для включения службы по умолчанию, выполним:

$ systemctl enable postgresql.service

Создадим пользователя и базу данных puppetdb:

$ createuser -U postgres -DRSP puppetdb
$ createdb -U postgres -O puppetdb puppetdb

Проверим доступ к созданной базе данных:

$ psql -h 127.0.0.1 -p 5432 -U puppetdb -W puppetdb

При правильной настройки должен появиться доступ к базе:

Пароль пользователя puppetdb: 
psql (10.4)
Введите "help", чтобы получить справку.

puppetdb=>

Предварительная настройка postgresql закончена и можно перейти к настройке puppetdb.

Настройка puppetdb

Установим дополнительные пакеты для puppetdb:

$ apt-get install puppet puppetdb-terminus

Укажем информацию о нашей базе данных в файле /etc/puppetdb/conf.d/database.ini

[database]
classname = org.postgresql.Driver
subprotocol = postgresql

# The database address, i.e. //HOST:PORT/DATABASE_NAME
subname = //127.0.0.1:5432/puppetdb

# Connect as a specific user
username = puppetdb

# Use a specific password
password = YOURPASSWORD

# How often (in minutes) to compact the database
# gc-interval = 60

# Number of seconds before any SQL query is considered 'slow'; offending
# queries will not be interrupted, but will be logged at the WARN log level.
log-slow-statements = 10

Добавим наш ip-адрес в /etc/puppetdb/conf.d/jetty.ini

# Default is `localhost`.
host = 192.168.0.2

Добавим секцию [main] в /etc/puppet/puppet.conf:

[main]
pluginsync = true
storeconfigs = true
storeconfigs_backend = puppetdb
reports = store,puppetdb

Создадим файл /etc/puppet/routes.yaml со следующим содержимым:

---
master:
  facts:
    terminus: puppetdb
    cache: yaml

Так же создадим /etc/puppet/puppetdb.conf:

[main]
server = puppet.server.local
port = 8081
soft_write_failure = false
Примечание: В соответствии с официальной документацией, не рекомендуется использовать порт 8080.

Запуск puppetdb

Запустим ssl-setup:

$ puppetdb ssl-setup

Перезапустим службы puppet:

$ service puppetdb restart
$ service puppetmaster restart
$ service puppet restart

Так же для включения служб по умолчанию, выполним:

$ systemctl enable puppetdb
$ systemctl enable puppetmaster
$ systemctl enable puppet

Протестируем после запуска, создадим пример для установки пакетов /etc/puppet/manifests/site.pp:

node 'puppet.server.local' {
       Package { ensure => installed }
       package { 'telnet': }
       package { 'openssh-clients': }
       package { 'tcpdump': }
 }

..и запустим:

$ puppet agent -t