Настройки chef-backend.rb
Параметры 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- Имя пользователя, используемое репликатором потоковой передачи postgres при доступе к этому узлу.
- Значение по умолчанию:
'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/config_rb_backend/