Настройки chef-backend.rb
Предупреждение
Бэкенд Chef Backend устарел и больше не находится в активной разработке. Обратитесь к вашему представителю по счетам Chef для получения информации о миграции на Chef Automate HA.
Этот документ больше не поддерживается.
Параметры chef-backend.rb
Запустите chef-backend-ctl gen-sample-backend-config для генерации файла chef-backend.rb. Это позволит контролировать большинство различных флагов функций и конфигурации, передаваемых в узел бэкенда Chef HA. Ряд этих параметров управляет надёжностью, стабильностью и доступностью баз данных PostgreSQL бэкенда, индексом Elasticsearch и системой выборов лидера. Пожалуйста, не изменяйте их, если вам не было дано указания сделать это.
- Следующие настройки — единственные, которые вы можете изменить без руководства:
fqdn- Имя хоста этого узла.
hide_sensitive- Установите в значение
false, если вы хотите выводить дельты конфиденциальных файлов и шаблонов во время выполненияchef-backend-ctl reconfigure. - Значение по умолчанию:
true. ip_version- Установите значение либо
'ipv4', либо'ipv6'. - Значение по умолчанию:
'ipv4'. publish_address- Внешний разрешаемый IP-адрес этого узла бэкенда.
Общие флаги «Runit» для любого бэкенд-сервиса
Подробную информацию см. на странице https://github.com/chef-cookbooks/runit. Многие флаги повторяются в различных бэкенд-сервисах, но они документированы только один раз в начале. Если не указано иное, используются те же значения по умолчанию.
postgresql.enable- Настраивает и запускает сервис postgresql.
- Значение по умолчанию:
true. postgresql.environment- Хэш переменных окружения со значениями, используемыми в каталоге env сервиса.
postgresql.log_directory- Директория, в которой будет работать сервис журналирования
svlogd. - Значение по умолчанию:
'/var/log/chef-backend/postgresql/<version>'. postgresql.log_rotation.file_maxbytes- Максимальный размер файла журнала, после достижения которого он автоматически вращается.
- Значение по умолчанию:
104857600(100 МБ). postgresql.log_rotation.num_to_keep- Максимальное количество файлов журналов, которые будут сохраняться после вращения.
- Значение по умолчанию:
10. etcd.enable- Настраивает и запускает сервис etcd.
- Значение по умолчанию:
true. etcd.log_directory- Директория, в которой будет работать сервис журналирования
svlogd. - Значение по умолчанию:
'/var/log/chef-backend/etcd'. etcd.log_rotation.file_maxbytes- Максимальный размер файла журнала, после достижения которого он автоматически вращается.
- Значение по умолчанию:
104857600(100 МБ). etcd.log_rotation.num_to_keep- Максимальное количество файлов журналов, которые будут сохраняться после вращения.
- Значение по умолчанию:
10. elasticsearch.enable- Настраивает и запускает сервис elasticsearch.
- Значение по умолчанию:
true. elasticsearch.log_directory- Директория, в которой будет работать сервис журналирования
svlogd. Также влияет наpath.logsв конфигурационном YAML Elasticsearch. - Значение по умолчанию:
'/var/log/chef-backend/elasticsearch'. elasticsearch.log_rotation.file_maxbytes- Максимальный размер файла журнала, после достижения которого он автоматически вращается.
- Значение по умолчанию:
104857600(100 МБ). elasticsearch.log_rotation.num_to_keep- Максимальное количество файлов журналов, которые будут сохраняться после вращения.
- Значение по умолчанию:
10. leaderl.enable- Настраивает и запускает сервис leaderl.
- Значение по умолчанию:
true. leaderl.log_directory- Директория, в которой будет работать сервис журналирования
svlogd. - Значение по умолчанию:
'/var/log/chef-backend/leaderl'. leaderl.start_down- Устанавливает состояние сервиса runit в
downпутём создания файла<sv_dir>/down. - Значение по умолчанию:
true. leaderl.log_rotation.file_maxbytes- Максимальный размер файла журнала, после достижения которого он автоматически вращается.
- Значение по умолчанию:
104857600(100 МБ). leaderl.log_rotation.num_to_keep- Максимальное количество файлов журналов, которые будут сохраняться после вращения.
- Значение по умолчанию:
10.
Настройки PostgreSQL
postgresql.db_superuser- Создаваемый суперпользовательский учёт. Пароль находится в
chef-backend-secrets.json. - Значение по умолчанию:
'chef_pgsql'. postgresql.md5_auth_cidr_addresses- Список авторизованных адресов, с которых другие узлы бэкенда могут подключаться для выполнения потоковой репликации.
samehostиsamenet— специальные символы, разрешающие подключения с IP-адреса этого узла и его подсети. Вы также можете использоватьall, чтобы соответствовать любому IP-адресу. Вы можете указать имя хоста или IP-адрес в формате CIDR (172.20.143.89/32для одного хоста или172.20.143.0/24для небольшой сети). Смотрите https://www.postgresql.org/docs/9.5/static/auth-pg-hba-conf.html для альтернативных форматов. - Значение по умолчанию:
["samehost", "samenet"]. postgresql.replication_user- Имя пользователя, используемое репликатором потоковой репликации PostgreSQL при доступе к этому узлу.
- Значение по умолчанию:
'replicator'. postgresql.username- Системный логин, под которым будет работать процесс postgres.
- Значение по умолчанию:
'chef_pgsql'.
Настройки PostgreSQL, передаваемые в postgresql.conf
Для подробной информации обратитесь к документации PostgreSQL. Приведены некоторые значения по умолчанию:
postgresql.archive_command- Значение по умолчанию:
''. postgresql.archive_mode- Значение по умолчанию:
'off'. postgresql.archive_timeout- Значение по умолчанию:
0. postgresql.checkpoint_completion_target- Значение по умолчанию:
0.5. postgresql.checkpoint_timeout- Значение по умолчанию:
'5min'. postgresql.checkpoint_warning- Значение по умолчанию:
'30s'. postgresql.effective_cache_size- Автоматически рассчитывается на основе доступной оперативной памяти.
postgresql.hot_standby- Значение по умолчанию:
'on'. postgresql.keepalives_count- Устанавливает
tcp_keepalives_count. - Значение по умолчанию:
2. postgresql.keepalives_idle- Устанавливает
tcp_keepalives_idle. - Значение по умолчанию:
60. postgresql.keepalives_interval- Устанавливает
tcp_keepalives_interval. - Значение по умолчанию:
15. postgresql.log_checkpoints- Значение по умолчанию:
true. postgresql.log_min_duration_statement- Значение по умолчанию:
-1. postgresql.max_connections- Значение по умолчанию:
350. postgresql.max_replication_slots- Значение по умолчанию:
12. postgresql.max_wal_senders- Значение по умолчанию:
12. postgresql.max_wal_size- Значение по умолчанию:
64. postgresql.min_wal_size- Значение по умолчанию:
5. postgresql.port- Значение по умолчанию:
5432. postgresql.shared_buffers- Автоматически рассчитывается на основе доступной оперативной памяти.
postgresql.wal_keep_segments- Значение по умолчанию:
32. postgresql.wal_level- Значение по умолчанию:
'hot_standby'. postgresql.wal_log_hints- Значение по умолчанию:
on. postgresql.work_mem- Значение по умолчанию:
'8MB'.
Настройки etcd
etcd.client_port- Порт для использования в ETCD_LISTEN_CLIENT_URLS и ETCD_ADVERTISE_CLIENT_URLS.
- Значение по умолчанию:
2379. etcd.peer_port- Порт для использования в ETCD_LISTEN_PEER_URLS и ETCD_ADVERTISE_PEER_URLS.
- Значение по умолчанию:
2380.
Следующие настройки связаны с протоколом консенсуса etcd. Chef Backend создаёт собственную систему выборов лидера на основе протокола консенсуса etcd. Изменение этих параметров может быть целесообразно, если вы наблюдаете частые события переключения, вызванные ложными таймаутами соединения etcd. Текущие значения по умолчанию предполагают высокозадержечную среду, например, при развертывании Chef Backend на различных облачных провайдерах.
etcd.heartbeat_interval- ETCD_HEARTBEAT_INTERVAL в миллисекундах. Это частота, с которой лидер отправляет хеартбиты последователям. Документация etcd рекомендует установить это значение примерно равным времени туда и обратно между членами.
- Значение по умолчанию:
500, (100по умолчанию до Chef Backend 1.2). etcd.election_timeout- ETCD_ELECTION_TIMEOUT в миллисекундах. Это управляет тем, как долго узел etcd будет ждать хеартбита, прежде чем инициировать выборы. Согласно документации etcd, это значение должно быть в 5–10 раз больше, чем
etcd.heartbeat_interval. Увеличениеetcd.election_timeoutувеличивает время, необходимое дляetcdдля обнаружения сбоя. - Значение по умолчанию:
5000, (1000по умолчанию до Chef Backend 1.2). etcd.snapshot_count- ETCD_SNAPSHOT_COUNT, представляющее количество подтверждённых транзакций для запуска снимка на диск.
- Значение по умолчанию:
5000. etcd.ionice.class- etcd должен иметь возможность записывать на диск с минимальной задержкой. Если ваш кластер не соответствует требованиям к диску, например, если вы запускаете Chef Backend на виртуальных машинах с общим диском, это значение следует изменить на «1» (реальное время планирования) для минимизации ненужных переключений при высоких задержках.
- Значение по умолчанию:
2. - Новое в Chef Backend 2.2.
etcd.ionice.level- Это можно изменить для дальнейшей настройки конкретных сред, если
etcd.ionice.classизменяется, но в большинстве случаев его не следует изменять. - Значение по умолчанию:
0. - Новое в Chef Backend 2.2.
Примечание
Дополнительную информацию см. в документации etcd по настраиваемым параметрам.
Настройки JVM Elasticsearch
elasticsearch.heap_size- Автоматически вычисляется Elasticsearch на основе доступной памяти. Укажите в МБ, если хотите переопределить.
elasticsearch.java_opts- Флаги, которые необходимо напрямую передать JVM при запуске Elasticsearch. Если вы переопределите флаг кучи здесь, это значение будет иметь приоритет.
elasticsearch.new_size- Размер новой генерации кучи Java.
Конфигурация Elasticsearch
Дополнительную информацию см. в документации по настройкам Elasticsearch.
elasticsearch.plugins_directory- Устанавливает значение
path.plugins. - Значение по умолчанию:
'/var/opt/chef-backend/elasticsearch/plugins'. elasticsearch.port- Устанавливает значение
http.port. - Значение по умолчанию:
9200. elasticsearch.scripts_directory- Устанавливает значение
path.scripts. - Значение по умолчанию:
'/var/opt/chef-backend/elasticsearch/scripts'.
Настройки службы управления лидером бэкенда Chef HA
leaderl.db_timeout- Таймаут сокета при подключении к PostgreSQL в миллисекундах.
- Значение по умолчанию:
2000. leaderl.http_acceptors- Потоки HTTP, отвечающие на запросы о мониторинге и статусе лидера от HAProxy.
- Значение по умолчанию:
10. leaderl.http_address- Адрес, на котором работает leaderl. Этот адрес не должен быть
127.0.0.1. Он должен быть доступен с любого переднего узла. - Значение по умолчанию:
'0.0.0.0'. leaderl.http_port- Значение по умолчанию:
7331. leaderl.leader_ttl_seconds- Количество секунд, которое должно истечь у ключа лидера. Увеличение этого значения увеличит время, необходимое кластеру для распознавания сбоя лидера. Уменьшение этого значения может привести к частым изменениям лидера и нестабильности.
- Значение по умолчанию:
30. (10по умолчанию до Chef Backend 1.2). leaderl.required_active_followers- Количество фолловеров, которые должны синхронизироваться через слот репликации PostgreSQL, прежде чем новый лидер вернёт 200 в ответ на HTTP-запросы /leader. Если существующий лидер не сможет поддерживать этот кворум фолловеров, конечная точка /leader вернёт 503, но активные подключения по-прежнему смогут завершить свои записи в базу данных.
- Значение по умолчанию:
0. leaderl.runsv_group- Группа, к которой будут принадлежать конфиденциальные файлы паролей. Используется внутри для тестирования и никогда не должна изменяться.
- Значение по умолчанию:
'chef_pgsql'. leaderl.status_internal_update_interval_seconds- Как часто (в секундах) мы проверяем изменение состояния службы лидера.
- Значение по умолчанию:
5. leaderl.status_post_update_interval_seconds- Как часто etcd обновляется с текущим состоянием службы лидера в секундах.
- Значение по умолчанию:
10. leaderl.username- Системный пользователь, под которым будет работать процесс leaderl. Обычно такой же, как
postgresql.username. - Значение по умолчанию:
'chef_pgsql'. leaderl.log_rotation.max_messages_per_second- Лимит скорости для количества сообщений, которые будет выводить Erlang error_logger.
- Значение по умолчанию:
1000. leaderl.etcd_pool.ibrowse_options- Внутренние параметры, влияющие на то, как создаются запросы к etcd (см. https://github.com/cmullaparthi/ibrowse/blob/master/doc/ibrowse.html).
leaderl.epmd_monitor.check_interval- Как часто проверять, что leaderl зарегистрирован в Erlang Port Mapping Daemon (epmd) в миллисекундах.
- Значение по умолчанию:
60000.
Настройки статуса работоспособности лидера бэкенда Chef HA
leaderl.health_check.interval_seconds- Как часто (в секундах) проверять состояние службы на предмет работоспособности. Рекомендуется устанавливать это значение как минимум в 5 раз больше, чем значение
leaderl.leader_ttl_seconds. - Значение по умолчанию:
5, (2по умолчанию до версии Chef Backend 1.2). leaderl.health_check.max_bytes_behind_leader- Ограничение максимальной разницы между избранным лидером и текущим узлом в байтах.
- Значение по умолчанию:
52428800(50 МБ). leaderl.health_check.max_elasticsearch_failures- Количество допущенных сбоев API Elasticsearch, после чего проверка работоспособности завершается неудачно.
- Значение по умолчанию:
5. leaderl.health_check.max_etcd_failures- Количество допущенных сбоев etcd, после чего проверка работоспособности завершается неудачно.
- Значение по умолчанию:
5. leaderl.health_check.max_pgsql_failures- Количество допущенных сбоев соединения PostgreSQL, после чего проверка работоспособности завершается неудачно.
- Значение по умолчанию:
5. leaderl.health_check.fatal_system_checks- Будут ли сбои системных проверок (например, сбои пространства на диске) приводить к тому, что узел будет помечен как непригодный для лидерства.
- Значение по умолчанию:
false. - Новое в Chef Backend 1.4.
leaderl.health_check.disk_paths- Массив с путями, которые нужно проверять на достаточное пространство на диске.
- Значение по умолчанию:
[/var/log/chef-backend, /var/opt/chef-backend]. - Новое в Chef Backend 1.4.
leaderl.health_check.disk_min_space_mb- Минимальный объём пространства на диске (в мегабайтах), необходимый для успешной проверки состояния диска.
- Значение по умолчанию:
250. - Новое в Chef Backend 1.4.
Настройки пула подключений к лидеру бэкенда Chef HA
Подробности см. в https://github.com/seth/pooler/blob/master/README.org. Это внутренние настройки, которые влияют на отзывчивость, время работы и надёжность кластера бэкенда. Не следует изменять их, если это не рекомендовано службой поддержки.
leaderl.etcd_pool.cull_interval_seconds- Значение по умолчанию:
60. leaderl.etcd_pool.http_timeout_ms- Значение по умолчанию:
5000. leaderl.etcd_pool.init_count- Значение по умолчанию:
10. leaderl.etcd_pool.max_age_seconds- Значение по умолчанию:
60. leaderl.etcd_pool.max_connection_duration_seconds- Значение по умолчанию:
300. leaderl.etcd_pool.max_count- Значение по умолчанию:
10.
Настройки SSL
Если certificate и certificate_key равны null, сертификат SSL будет автоматически сгенерирован с использованием других предоставленных параметров. В противном случае, это пути к файлам на диске с предоставленным пользователем сертификатом.
ssl.certificate- Укажите этот путь, если у вас есть предварительно сгенерированный сертификат SSL.
ssl.certificate_key- Укажите этот путь, если у вас есть предварительно сгенерированный сертификат SSL.
ssl.ciphers- Отсортированный список разрешённых шифров SSL. Он будет обновляться на основе соображений безопасности и версии OpenSSL, которая используется.
ssl.company_name- Название вашей организации.
ssl.country_name- Двухбуквенный код страны.
ssl.data_dir- Место хранения сертификатов.
- Значение по умолчанию:
'/var/opt/chef-backend/ssl/'. ssl.duration- Срок действия сертификата в днях.
- Значение по умолчанию:
3650(10 лет). ssl.key_length- Значение по умолчанию:
2048. ssl.organizational_unit_name- Название подразделения в вашей организации.
chef-backend-ctl
Кластер HA бэкенда Chef Infra Server включает утилиту командной строки chef-backend-ctl. Эта утилита командной строки используется для управления кластером HA бэкенда Chef Infra Server, запуска и остановки отдельных служб и просмотра файлов журналов Chef Infra Server. Дополнительную информацию см. в документации chef-backend-ctl.
© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/server/config_rb_backend/