Puppetdb: различия между версиями
(Добавлено описание настройки postgresql для puppetdb, a также расширено описание настройки puppetdb.) |
|||
(не показаны 4 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
{{Stub}} | {{Stub}} | ||
= Описание = | == Описание == | ||
PuppetDB | PuppetDB — быстрое, масштабируемое и надежное хранилище данных для [[Puppet]]. PuppetDB кэширует данные, созданные Puppet, а также предоставляет расширенные функции на основе мощного API. Используется с СУБД PostgreSQL. | ||
= Установка = | == Установка == | ||
Для установки чистого puppetdb достаточно: | Для установки чистого puppetdb достаточно: | ||
<source lang="bash"> | <source lang="bash"># apt-get install puppetdb</source> | ||
= Настройка = | == Настройка == | ||
Предварительно, для корректной работы puppetdb требует сконфигурированные и запущенные puppet server и puppet client на вашем хосте. Информация об установке и настройке puppet server и puppet client находится в [[Puppet| соответствующей статье]]. | Предварительно, для корректной работы puppetdb требует сконфигурированные и запущенные puppet server и puppet client на вашем хосте. Информация об установке и настройке puppet server и puppet client находится в [[Puppet| соответствующей статье]]. | ||
Строка 18: | Строка 18: | ||
* IP: '''192.168.0.2''' | * IP: '''192.168.0.2''' | ||
== Настройка postgresql == | === Настройка postgresql === | ||
Для работы puppetdb необходимы | Для работы puppetdb необходимы доступный по сети [[PostgreSQL|сервер PostgreSQL]], а также расширение pg_trgm. | ||
Предварительно установим дополнительные компоненты: | Предварительно установим дополнительные компоненты: | ||
<source lang="bash"> | <source lang="bash"># apt-get install postgresql10 postgresql10-server postgresql10-contrib</source> | ||
Перед запуском postgresql необходимо создать системные базы данных: | Перед запуском postgresql необходимо создать системные базы данных: | ||
<source lang="bash"> | <source lang="bash"># /etc/init.d/postgresql initdb</source> | ||
Запустим службу postgresql: | Запустим и включим службу postgresql по умолчанию: | ||
<source lang="bash"> | <source lang="bash"># systemctl enable --now postgresql.service</source> | ||
Выполним вход в учетную запись postgres: | |||
<source lang="bash">$ | <source lang="bash">$ psql -U postgres</source> | ||
Установим расширение pg_trgm: | |||
<source lang="sql"># CREATE EXTENSION pg_trgm;</source> | |||
Создадим пользователя и базу данных puppetdb: | Создадим пользователя и базу данных puppetdb: | ||
Строка 52: | Строка 49: | ||
<source lang="bash"> | <source lang="bash"> | ||
Пароль пользователя puppetdb: | Пароль пользователя puppetdb: | ||
psql (10. | psql (10.20) | ||
Введите "help", чтобы получить справку. | Введите "help", чтобы получить справку. | ||
Строка 58: | Строка 55: | ||
</source> | </source> | ||
Предварительная настройка postgresql закончена и можно перейти к | Предварительная настройка postgresql закончена и можно перейти к настройке puppetdb. | ||
== Настройка puppetdb == | === Настройка puppetdb === | ||
Установим | Установим дополнительные пакеты для puppetdb: | ||
<source lang="bash"> | <source lang="bash"># apt-get install puppet puppetdb-terminus</source> | ||
Укажем информацию о нашей базе данных в файле {{path|/etc/puppetdb/conf.d/database.ini}} | Укажем информацию о нашей базе данных в файле {{path|/etc/puppetdb/conf.d/database.ini}}: | ||
<source lang="ini"> | <source lang="ini"> | ||
[database] | [database] | ||
Строка 88: | Строка 85: | ||
</source> | </source> | ||
Добавим наш ip-адрес в {{path|/etc/puppetdb/conf.d/jetty.ini}} | Добавим наш ip-адрес в {{path|/etc/puppetdb/conf.d/jetty.ini}}: | ||
<source lang="ini"> | <source lang="ini"> | ||
# Default is `localhost`. | # Default is `localhost`. | ||
Строка 94: | Строка 91: | ||
</source> | </source> | ||
Добавим | Добавим секцию '''[main]''' в {{path|/etc/puppet/puppet.conf}}: | ||
<source lang="ini"> | <source lang="ini"> | ||
[main] | [main] | ||
Строка 104: | Строка 101: | ||
Создадим файл {{path|/etc/puppet/routes.yaml}} со следующим содержимым: | Создадим файл {{path|/etc/puppet/routes.yaml}} со следующим содержимым: | ||
<source | <source lang="ini"> | ||
--- | --- | ||
master: | master: | ||
Строка 115: | Строка 112: | ||
<source lang="ini"> | <source lang="ini"> | ||
[main] | [main] | ||
server_url = https://puppet.server.local:8081 | |||
soft_write_failure = false | soft_write_failure = false | ||
</source> | </source> | ||
{{Note|В соответствии с [https://docs.puppet.com/puppetdb/1/connect_puppet_master.html официальной документацией], не рекомендуется использовать порт 8080.}} | {{Note|В соответствии с [https://docs.puppet.com/puppetdb/1/connect_puppet_master.html официальной документацией], не рекомендуется использовать порт 8080.}} | ||
== Запуск puppetdb == | |||
=== Запуск puppetdb === | |||
Запустим ssl-setup: | Запустим ssl-setup: | ||
<source lang="bash"> | <source lang="bash"># puppetdb ssl-setup</source> | ||
Перезапустим службы puppet: | Перезапустим службы puppet: | ||
<source lang="bash"> | <source lang="bash"> | ||
# service puppetdb restart | |||
# service puppetmaster restart | |||
# service puppet restart | |||
</source> | </source> | ||
Так же для включения служб по умолчанию: | Так же для включения служб по умолчанию, выполним: | ||
<source lang="bash"> | <source lang="bash"> | ||
# systemctl enable puppetdb | |||
# systemctl enable puppetmaster | |||
# systemctl enable puppet | |||
</source> | </source> | ||
Протестируем после запуска, создадим пример для установки пакетов {{path|/etc/puppet/manifests/site.pp}}: | Протестируем после запуска, создадим пример для установки пакетов {{path|/etc/puppet/manifests/site.pp}}: | ||
<source lang="ini"> | <source lang="ini"> | ||
node 'puppet | node 'puppet.server.local' { | ||
Package { ensure => installed } | Package { ensure => installed } | ||
package { 'telnet': } | package { 'telnet': } | ||
Строка 154: | Строка 151: | ||
[[Категория:Управление конфигурациями]] | [[Категория:Управление конфигурациями]] | ||
{{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 15:14, 1 декабря 2022
Описание
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.
Предварительно установим дополнительные компоненты:
# apt-get install postgresql10 postgresql10-server postgresql10-contrib
Перед запуском postgresql необходимо создать системные базы данных:
# /etc/init.d/postgresql initdb
Запустим и включим службу postgresql по умолчанию:
# systemctl enable --now postgresql.service
Выполним вход в учетную запись postgres:
$ psql -U postgres
Установим расширение pg_trgm:
# CREATE EXTENSION pg_trgm;
Создадим пользователя и базу данных 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.20)
Введите "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_url = https://puppet.server.local: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.local' {
Package { ensure => installed }
package { 'telnet': }
package { 'openssh-clients': }
package { 'tcpdump': }
}
..и запустим:
$ puppet agent -t