Настройки chef-backend.rb
Предупреждение
Chef Backend устарел и больше не развивается. Обратитесь к своему представителю Chef, чтобы узнать об обновлении вашей системы.
Этот документ больше не поддерживается.
Параметры 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/