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

Материал из ALT Linux Wiki
 
(не показано 5 промежуточных версий 4 участников)
Строка 1: Строка 1:
{{Stub}}
{{Stub}}


= Описание =
== Описание ==


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


= Установка =
== Установка ==


apt-get install puppetdb
Для установки чистого puppetdb достаточно:
<source lang="bash"># apt-get install puppetdb</source>


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


1. Установите [[PostgreSQL|сервер PostgreSQL]], сделайте его доступным по сети и заведите пользователя и базу данных puppetdb.
Предварительно, для корректной работы puppetdb требует сконфигурированные и запущенные puppet server и puppet client на вашем хосте. Информация об установке и настройке puppet server и puppet client находится в [[Puppet| соответствующей статье]].
Также установите {{pkg|postgresql-contrib}} (для puppetdb нужно расширение pg_trgm) и выполните в РСУБД:
<source lang="sql">CREATE EXTENSION pg_trgm;</source>


2. Пропишите параметры подключения к PostgreSQL в файле {{path|/etc/puppetdb/config.ini}}:
Для примера настройки puppetdb возьмем следующую конфигурацию:
<source lang="ini">[global]
* Хост: '''puppet.server.local'''
vardir = /var/lib/puppetdb
* IP: '''192.168.0.2'''
[puppetdb]
 
=== Настройка postgresql ===
 
Для работы puppetdb необходимы доступный по сети [[PostgreSQL|сервер PostgreSQL]], а также расширение pg_trgm.
 
Предварительно установим дополнительные компоненты:
<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"># systemctl enable --now postgresql.service</source>
 
Выполним вход в учетную запись postgres:
<source lang="bash">$ psql -U postgres</source>
 
Установим расширение pg_trgm:
<source lang="sql"># CREATE EXTENSION pg_trgm;</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.20)
Введите "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 = //localhost:5432/puppetdb
 
# 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 = "123"
 
[command-processing]
# Use a specific password
[jetty]
password = YOURPASSWORD
port = 8008
 
host = 10.0.2.15
# How often (in minutes) to compact the database
[nrepl]
# gc-interval = 60
enabled = false
 
port = 8082
# Number of seconds before any SQL query is considered 'slow'; offending
host = 127.0.0.1
# 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 lang="ini">
---
master:
  facts:
    terminus: puppetdb
    cache: yaml
</source>
 
Так же создадим {{path|/etc/puppet/puppetdb.conf}}:
<source lang="ini">
[main]
server_url = https://puppet.server.local: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.local' {
      Package { ensure => installed }
      package { 'telnet': }
      package { 'openssh-clients': }
      package { 'tcpdump': }
}
</source>
..и запустим:
<source lang="bash">$ puppet agent -t</source>


[[Категория:Управление конфигурациями]]
[[Категория:Управление конфигурациями]]
{{Category navigation|title=Управление конфигурациями|category=Управление конфигурациями|sortkey={{SUBPAGENAME}}}}

Текущая версия от 15:14, 1 декабря 2022

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.

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

# 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
Примечание: В соответствии с официальной документацией, не рекомендуется использовать порт 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