Puppetdb: различия между версиями
(Добавлено описание настройки postgresql для puppetdb, a также расширено описание настройки puppetdb.) |
|||
Строка 3: | Строка 3: | ||
= Описание = | = Описание = | ||
PuppetDB | PuppetDB - быстрое, масштабируемое и надежное хранилище данных для [[Puppet]]. PuppetDB кэширует данные, созданные Puppet, а также предоставляет расширенные функции на основе мощного API. Используется с СУБД PostgreSQL. | ||
= Установка = | = Установка = | ||
Для установки чистого puppetdb достаточно: | |||
<source lang="bash">$ apt-get install puppetdb</source> | |||
= Настройка = | = Настройка = | ||
Предварительно, для корректной работы puppetdb требует сконфигурированные и запущенные puppet server и puppet client на вашем хосте. Информация об установке и настройке puppet server и puppet client находится в [[Puppet| соответствующей статье]]. | |||
2. | Для примера настройки puppetdb возьмем следующую конфигурацию: | ||
<source lang="ini"> | * Хост: '''puppet.server.local''' | ||
* IP: '''192.168.0.2''' | |||
== Настройка postgresql == | |||
Для работы puppetdb необходимы доступная по сети [[PostgreSQL|сервер PostgreSQL]], а также расширение pg_trgm. | |||
Выполним вход в учетную запись postgresql: | |||
<source lang="bash">$ psql -U postgresql</source> | |||
Установим расширение pg_trgm: | |||
<source lang="sql"># CREATE EXTENSION pg_trgm;</source> | |||
Предварительно установим дополнительные компоненты: | |||
<source lang="bash">$ apt-get install postgresql10 postgresql10-server postgresql10-contrib</source> | |||
Перед запуском postgresql необходимо создать системные базы данных: | |||
<source lang="bash">$ /etc/init.d/postgresql initdb</source> | |||
Запустим службу postgresql: | |||
<source lang="bash">$ service postgresql start</source> | |||
Для включения службы по умолчанию, выполним: | |||
<source lang="bash">$ systemctl enable postgresql.service</source> | |||
Создадим пользователя и базу данных puppetdb: | |||
<source lang="bash"> | |||
$ createuser -U postgres -DRSP puppetdb | |||
$ createdb -U postgres -O puppetdb puppetdb | |||
</source> | |||
Проверим доступ к созданной базе данных: | |||
<source lang="bash">$ psql -h 127.0.0.1 -p 5432 -U puppetdb -W puppetdb</source> | |||
При правильной настройки должен появиться доступ к базе: | |||
<source lang="bash"> | |||
Пароль пользователя puppetdb: | |||
psql (10.4) | |||
Введите "help", чтобы получить справку. | |||
puppetdb=> | |||
</source> | |||
Предварительная настройка postgresql закончена и можно перейти к настройки puppetdb. | |||
== Настройка puppetdb == | |||
Установим дополнительный пакеты для puppetdb: | |||
<source lang="bash">$ apt-get install puppet puppetdb-terminus</source> | |||
Укажем информацию о нашей базе данных в файле {{path|/etc/puppetdb/conf.d/database.ini}} | |||
<source lang="ini"> | |||
[database] | [database] | ||
classname = org.postgresql.Driver | classname = org.postgresql.Driver | ||
subprotocol = postgresql | subprotocol = postgresql | ||
subname = // | |||
# The database address, i.e. //HOST:PORT/DATABASE_NAME | |||
subname = //127.0.0.1:5432/puppetdb | |||
# Connect as a specific user | |||
username = puppetdb | username = puppetdb | ||
password = " | |||
[ | # Use a specific password | ||
[ | password = YOURPASSWORD | ||
# How often (in minutes) to compact the database | |||
[ | # gc-interval = 60 | ||
port = | # 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 | |||
</source> | |||
Добавим наш ip-адрес в {{path|/etc/puppetdb/conf.d/jetty.ini}} | |||
<source lang="ini"> | |||
# Default is `localhost`. | |||
host = 192.168.0.2 | |||
</source> | |||
Добавим в секцию '''[main]''' в {{path|/etc/puppet/puppet.conf}}: | |||
<source lang="ini"> | |||
[main] | |||
pluginsync = true | |||
storeconfigs = true | |||
storeconfigs_backend = puppetdb | |||
reports = store,puppetdb | |||
</source> | |||
Создадим файл {{path|/etc/puppet/routes.yaml}} со следующим содержимым: | |||
<source land="ini"> | |||
--- | |||
master: | |||
facts: | |||
terminus: puppetdb | |||
cache: yaml | |||
</source> | |||
Так же создадим {{path|/etc/puppet/puppetdb.conf}}: | |||
<source lang="ini"> | |||
[main] | |||
server = puppet.server.local | |||
port = 8081 | |||
soft_write_failure = false | |||
</source> | |||
{{Note|В соответствии с [https://docs.puppet.com/puppetdb/1/connect_puppet_master.html официальной документацией], не рекомендуется использовать порт 8080.}} | |||
== Запуск puppetdb == | |||
Запустим ssl-setup: | |||
<source lang="bash">$ puppetdb ssl-setup</source> | |||
Перезапустим службы puppet: | |||
<source lang="bash"> | |||
$ service puppetdb restart | |||
$ service puppetmaster restart | |||
$ service puppet restart | |||
</source> | |||
Так же для включения служб по умолчанию: | |||
<source lang="bash"> | |||
$ systemctl enable puppetdb | |||
$ systemctl enable puppetmaster | |||
$ systemctl enable puppet | |||
</source> | </source> | ||
Протестируем после запуска, создадим пример для установки пакетов {{path|/etc/puppet/manifests/site.pp}}: | |||
<source lang="ini"> | |||
node 'puppet-server.off.local' { | |||
Package { ensure => installed } | |||
package { 'telnet': } | |||
package { 'openssh-clients': } | |||
package { 'tcpdump': } | |||
} | |||
</source> | |||
..и запустим: | |||
<source lang="bash">$ puppet agent -t</source> | |||
[[Категория:Управление конфигурациями]] | [[Категория:Управление конфигурациями]] |
Версия от 15:54, 31 июля 2018
Описание
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
Запуск 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.off.local' {
Package { ensure => installed }
package { 'telnet': }
package { 'openssh-clients': }
package { 'tcpdump': }
}
..и запустим:
$ puppet agent -t