[edit on GitHub]

Opciones de chef-backend.rb

Correr chef-backend-ctl gen-sample-backend-config para generar el chef-backend.rb expediente. Esto controlará la mayoría de las diversas características y marcas de configuración que ingresan a un nodo de backend de Chef HA. Varias de estas opciones controlan la confiabilidad, la estabilidad y el tiempo de actividad de las bases de datos de backend de PostgreSQL, el índice Elasticsearch y el sistema de elección de líderes. Abstente de cambiarlos a menos que se te haya indicado que lo hagas.

Las siguientes configuraciones son las únicas configuraciones que debe modificar sin guía:
fqdn
Nombre de host de este nodo.
hide_sensitive
Ajustado a false si desea imprimir deltas de archivos y plantillas confidenciales durante chef-backend-ctl reconfigure carreras.
Valor por defecto: true.
ip_version
Establecer como 'ipv4' o 'ipv6'.
Valor por defecto: 'ipv4'.
publish_address
Dirección IP que se puede resolver externamente de este nodo de back-end.

Banderas ‘Runit’ comunes para cualquier servicio de backend

Ver https://github.com/chef-cookbooks/runit para detalles. Muchas de las banderas se repiten en los distintos servicios de backend, pero solo se documentan una vez en la parte superior aquí. Se utilizan los mismos valores predeterminados a menos que se especifique a continuación.

postgresql.enable
Configura y ejecuta el servicio postgresql.
Valor por defecto: true.
postgresql.environment
Un hash de las variables de entorno con sus valores como contenido utilizado en el directorio env del servicio.
postgresql.log_directory
El directorio donde svlogd se ejecutará el servicio de registro.
Valor por defecto: '/var/log/chef-backend/postgresql/<version>'.
postgresql.log_rotation.file_maxbytes
El tamaño máximo que puede alcanzar un archivo de registro antes de rotarlo automáticamente.
Valor por defecto: 104857600 (100 MB).
postgresql.log_rotation.num_to_keep
El número máximo de archivos de registro que se conservarán después de la rotación.
Valor por defecto: 10.
etcd.enable
Configura y ejecuta el servicio etcd.
Valor por defecto: true.
etcd.log_directory
El directorio donde svlogd se ejecutará el servicio de registro.
Valor por defecto: '/var/log/chef-backend/etcd'.
etcd.log_rotation.file_maxbytes
El tamaño máximo que puede alcanzar un archivo de registro antes de rotarlo automáticamente.
Valor por defecto: 104857600 (100 MB).
etcd.log_rotation.num_to_keep
El número máximo de archivos de registro que se conservarán después de la rotación.
Valor por defecto: 10.
elasticsearch.enable
Configura y ejecuta el servicio elasticsearch.
Valor por defecto: true.
elasticsearch.log_directory
El directorio donde svlogd se ejecutará el servicio de registro. También afecta path.logs en la configuración de Elasticsearch YAML.
Valor por defecto: '/var/log/chef-backend/elasticsearch'.
elasticsearch.log_rotation.file_maxbytes
El tamaño máximo que puede alcanzar un archivo de registro antes de rotarlo automáticamente.
Valor por defecto: 104857600 (100 MB).
elasticsearch.log_rotation.num_to_keep
El número máximo de archivos de registro que se conservarán después de la rotación.
Valor por defecto: 10.
leaderl.enable
Configura y ejecuta el servicio líder.
Valor por defecto: true.
leaderl.log_directory
El directorio donde svlogd se ejecutará el servicio de registro.
Valor por defecto: '/var/log/chef-backend/leaderl'.
leaderl.start_down
El estado predeterminado del servicio runit para down por crear <sv_dir>/down expediente.
Valor por defecto: true.
leaderl.log_rotation.file_maxbytes
El tamaño máximo que puede alcanzar un archivo de registro antes de rotarlo automáticamente.
Valor por defecto: 104857600 (100 MB).
leaderl.log_rotation.num_to_keep
El número máximo de archivos de registro que se conservarán después de la rotación.
Valor por defecto: 10.

Configuración de PostgreSQL

postgresql.db_superuser
Cuenta de superusuario para crear. La contraseña está en chef-backend-secrets.json.
Valor por defecto: 'chef_pgsql'.
postgresql.md5_auth_cidr_addresses
Una lista de direcciones autorizadas desde las que otros nodos de backend pueden conectarse para realizar la replicación de transmisión. samehost y samenet son símbolos especiales para permitir conexiones desde la dirección IP de este nodo y su subred. También puede utilizar all para que coincida con cualquier dirección IP. Puede especificar un nombre de host o una dirección IP en formato CIDR (172.20.143.89/32 para un solo host, o 172.20.143.0/24 para una red pequeña. Ver https://www.postgresql.org/docs/9.5/static/auth-pg-hba-conf.html para formatos alternativos.
Valor por defecto: ["samehost", "samenet"].
postgresql.replication_user
Nombre de usuario utilizado por el replicador de transmisión de postgres al acceder a este nodo.
Valor por defecto: 'replicator'.
postgresql.username
Nombre de usuario del sistema con el que se ejecutará el proceso de postgres.
Valor por defecto: 'chef_pgsql'.

Configuración de PostgreSQL dada a postgresql.conf

Ver Documentación de PostgreSQL para detalles. Se proporcionan algunos valores predeterminados:

postgresql.archive_command
Valor por defecto: ''.
postgresql.archive_mode
Valor por defecto: 'off'.
postgresql.archive_timeout
Valor por defecto: 0.
postgresql.checkpoint_completion_target
Valor por defecto: 0.5.
postgresql.checkpoint_timeout
Valor por defecto: '5min'.
postgresql.checkpoint_warning
Valor por defecto: '30s'.
postgresql.effective_cache_size
Calculado automáticamente según la memoria disponible.
postgresql.hot_standby
Valor por defecto: 'on'.
postgresql.keepalives_count
Conjuntos tcp_keepalives_count.
Valor por defecto: 2.
postgresql.keepalives_idle
Conjuntos tcp_keepalives_idle.
Valor por defecto: 60.
postgresql.keepalives_interval
Conjuntos tcp_keepalives_interval.
Valor por defecto: 15.
postgresql.log_checkpoints
Valor por defecto: true.
postgresql.log_min_duration_statement
Valor por defecto: -1.
postgresql.max_connections
Valor por defecto: 350.
postgresql.max_replication_slots
Valor por defecto: 12.
postgresql.max_wal_senders
Valor por defecto: 12.
postgresql.max_wal_size
Valor por defecto: 64.
postgresql.min_wal_size
Valor por defecto: 5.
postgresql.port
Valor por defecto: 5432.
postgresql.shared_buffers
Calculado automáticamente según la memoria disponible.
postgresql.wal_keep_segments
Valor por defecto: 32.
postgresql.wal_level
Valor por defecto: 'hot_standby'.
postgresql.wal_log_hints
Valor por defecto: on.
postgresql.work_mem
Valor por defecto: '8MB'.

Configuración de etcd

etcd.client_port
Puerto que se utilizará para ETCD_LISTEN_CLIENT_URLS y ETCD_ADVERTISE_CLIENT_URLS.
Valor por defecto: 2379.
etcd.peer_port
Puerto que se utilizará para ETCD_LISTEN_PEER_URLS y ETCD_ADVERTISE_PEER_URLS.
Valor por defecto: 2380.

Los siguientes ajustes se relacionan con el protocolo de consenso de etcd. Chef Backend construye su propia elección de líder sobre el protocolo de consenso de etcd. Puede ser aconsejable actualizar esta configuración si observa eventos frecuentes de conmutación por error como resultado de tiempos de espera de conexión falsos etcd. Los valores predeterminados actuales asumen un entorno de alta latencia, como los que puede encontrar si implementa Chef Backend en varios proveedores de nube.

etcd.heartbeat_interval
ETCD_HEARTBEAT_INTERVAL en milisegundos. Esta es la frecuencia con la que el líder enviará latidos a sus seguidores. La documentación de etcd recomienda que esto se establezca aproximadamente en los tiempos de ida y vuelta entre miembros.
Valor por defecto: 500, (100 por defecto antes de Chef Backend 1.2).
etcd.election_timeout
ETCD_ELECTION_TIMEOUT en milisegundos. Esto controla cuánto tiempo esperará un nodo etcd el latido antes de desencadenar una elección. Según la documentación de etcd, esto debería ser de 5 a 10 veces más grande que el etcd.heartbeat_interval. Creciente etcd.election_timeout aumenta el tiempo que tardará en etcd para detectar una falla.
Valor por defecto: 5000, (1000 por defecto antes de Chef Backend 1.2).
etcd.snapshot_count
ETCD_SNAPSHOT_COUNT que es el número de transacciones comprometidas para activar una instantánea en el disco.
Valor por defecto: 5000.
etcd.ionice.class
etcd debe poder escribir en el disco con una latencia mínima. Si su clúster no cumple con los requisitos de disco, por ejemplo, está ejecutando Chef Backend en máquinas virtuales con discos compartidos, esta configuración debe cambiarse a ‘1’ (programación en tiempo real) para mitigar las fallas innecesarias en condiciones de alta latencia.
Valor por defecto: 2.
Nuevo en Chef Backend 2.2.
etcd.ionice.level
Esto se puede cambiar para un mayor ajuste a entornos específicos si etcd.ionice.class se cambia, pero en casi todos los casos no debe modificarse.
Valor por defecto: 0.
Nuevo en Chef Backend 2.2.

Nota

Aunque los valores predeterminados asumen un entorno de alta latencia, las implementaciones en la nube deben restringirse al mismo centro de datos, o en AWS, en la misma región. Esto significa que no se admiten las implementaciones de clústeres dispersos geográficamente. Varias zonas de disponibilidad están admitidos siempre que se encuentren en la misma región.

Ver documentación de etcd sobre elementos optimizables para más información.

Configuración de Elasticsearch JVM

elasticsearch.heap_size
Calculado automáticamente por Elasticsearch en función de la memoria disponible. Especifique en MB si desea anular.
elasticsearch.java_opts
Banderas para pasar directamente a la JVM al iniciar Elasticsearch. Si anula un indicador de montón aquí, la configuración aquí tiene prioridad.
elasticsearch.new_size
Tamaño de nueva generación del montón de Java.

Configuración de Elasticsearch

Ver Documentación de configuración de Elasticsearch para informacion adicional.

elasticsearch.plugins_directory
Establece el path.plugins valor.
Valor por defecto: '/var/opt/chef-backend/elasticsearch/plugins'.
elasticsearch.port
Establece el http.port valor.
Valor por defecto: 9200.
elasticsearch.scripts_directory
Establece el path.scripts valor.
Valor por defecto: '/var/opt/chef-backend/elasticsearch/scripts'.

Configuración del servicio de gestión de líderes de backend de Chef HA

leaderl.db_timeout
Tiempo de espera de socket al conectarse a PostgreSQL en milisegundos.
Valor por defecto: 2000.
leaderl.http_acceptors
Hilos HTTP que responden a las solicitudes de estado de liderazgo y supervisión de HAProxy.
Valor por defecto: 10.
leaderl.http_address
La dirección que escucha el líder. Esta dirección no debe ser 127.0.0.1. Debería ser accesible desde cualquier nodo de front-end.
Valor por defecto: '0.0.0.0'.
leaderl.http_port
Valor por defecto: 7331.
leaderl.leader_ttl_seconds
La cantidad de segundos que tarda la clave líder en caducar. El aumento de este valor aumentará la cantidad de tiempo que el clúster tardará en reconocer a un líder fallido. Reducir este valor puede dar lugar a frecuentes cambios de liderazgo y palizas.
Valor por defecto: 30. (10 por defecto antes de Chef Backend 1.2).
leaderl.required_active_followers
La cantidad de seguidores que deben sincronizarse a través de una ranura de replicación de PostgreSQL antes de que un nuevo líder devuelva 200 solicitudes HTTP a / líder. Si un líder existente no logra mantener este quórum de seguidores, el punto final / líder devolverá 503 pero las conexiones activas aún podrán completar sus escrituras en la base de datos.
Valor por defecto: 0.
leaderl.runsv_group
El grupo al que pertenecerán los archivos de contraseñas confidenciales. Esto se utiliza internamente con fines de prueba y nunca debe modificarse de otro modo.
Valor por defecto: 'chef_pgsql'.
leaderl.status_internal_update_interval_seconds
Con qué frecuencia verificamos un cambio en el estado del servicio líder en segundos.
Valor por defecto: 5.
leaderl.status_post_update_interval_seconds
La frecuencia con la que etcd se actualiza con el estado actual del servicio líder en segundos.
Valor por defecto: 10.
leaderl.username
Nombre de usuario del sistema con el que se ejecutará el proceso líder. Por lo general, lo mismo que postgresql.username.
Valor por defecto: 'chef_pgsql'.
leaderl.log_rotation.max_messages_per_second
Límite de velocidad para la cantidad de mensajes que generará Erlang error_logger.
Valor por defecto: 1000.
leaderl.etcd_pool.ibrowse_options
Opciones internas para afectar la forma en que se realizan las solicitudes a etcd (consulte https://github.com/cmullaparthi/ibrowse/blob/master/doc/ibrowse.html).
leaderl.epmd_monitor.check_interval
Con qué frecuencia comprobar que leaderl está registrado con el demonio de mapeo de puertos de Erlang (epmd) en milisegundos.
Valor por defecto: 60000.

Configuración del estado de salud del líder de backend de Chef HA

leaderl.health_check.interval_seconds
Con qué frecuencia sondear el estado del servicio en segundos. Recomendamos configurar esto en al menos 5 veces el valor de leaderl.leader_ttl_seconds.
Valor por defecto: 5, (2 por defecto antes de la versión Chef Backend 1.2).
leaderl.health_check.max_bytes_behind_leader
Límite de diferencia máxima entre el líder electo y el nodo actual en bytes.
Valor por defecto: 52428800 (50 MB).
leaderl.health_check.max_elasticsearch_failures
Número de fallas de la API de Elasticsearch permitidas antes de que falle la verificación de estado.
Valor por defecto: 5.
leaderl.health_check.max_etcd_failures
Número de fallas de etcd permitidas antes de que falle la verificación de estado.
Valor por defecto: 5.
leaderl.health_check.max_pgsql_failures
Número de errores de conexión de PostgreSQL permitidos antes de que falle la verificación de estado.
Valor por defecto: 5.
leaderl.health_check.fatal_system_checks
Si fallas o no en la verificación del sistema (como fallas en el espacio en disco), el nodo se marcará como no elegible para el liderazgo.
Valor por defecto: false.
Nuevo en Chef Backend 1.4.
leaderl.health_check.disk_paths
Una matriz que contiene las rutas para comprobar si hay suficiente espacio en disco.
Valor por defecto: [/var/log/chef-backend, /var/opt/chef-backend].
Nuevo en Chef Backend 1.4.
leaderl.health_check.disk_min_space_mb
La cantidad mínima de espacio en disco (en megabytes) necesaria para que se apruebe una comprobación de estado del disco.
Valor por defecto: 250.
Nuevo en Chef Backend 1.4.

Configuración del grupo de conexiones del líder de backend de Chef HA

Ver https://github.com/seth/pooler/blob/master/README.org para detalles. Estas son configuraciones internas que afectan la capacidad de respuesta, el tiempo de actividad y la confiabilidad del clúster de backend. No deben modificarse a menos que el servicio de asistencia se lo recomiende.

leaderl.etcd_pool.cull_interval_seconds
Valor por defecto: 60.
leaderl.etcd_pool.http_timeout_ms
Valor por defecto: 5000.
leaderl.etcd_pool.init_count
Valor por defecto: 10.
leaderl.etcd_pool.max_age_seconds
Valor por defecto: 60.
leaderl.etcd_pool.max_connection_duration_seconds
Valor por defecto: 300.
leaderl.etcd_pool.max_count
Valor por defecto: 10.

Configuración de SSL

Si certificate y certificate_key son nulos, el certificado SSL se generará automáticamente utilizando los demás parámetros proporcionados. De lo contrario, son ubicaciones en disco para el certificado proporcionado por el usuario.

ssl.certificate
Proporcione esta ruta si tiene un certificado SSL generado previamente.
ssl.certificate_key
Proporcione esta ruta si tiene un certificado SSL generado previamente.
ssl.ciphers
Lista ordenada de cifrados SSL permitidos. Esto se actualizará según las consideraciones de seguridad y la versión de OpenSSL que se envía.
ssl.company_name
El nombre de su organización.
ssl.country_name
El código de país de dos caracteres.
ssl.data_dir
Dónde se almacenarán los certificados.
Valor por defecto: '/var/opt/chef-backend/ssl/'.
ssl.duration
La duración del certificado en días.
Valor por defecto: 3650 (10 años).
ssl.key_length
Valor por defecto: 2048.
ssl.organizational_unit_name
El nombre de la división de su organización.

chef-backend-ctl

El clúster de alta disponibilidad de backend de Chef Infra Server incluye una utilidad de línea de comandos denominada chef-backend-ctl. Esta herramienta de línea de comandos se utiliza para administrar el clúster de alta disponibilidad de backend de Chef Infra Server, iniciar y detener servicios individuales y rastrear los archivos de registro de Chef Infra Server. Para obtener más información, consulte la documentación de chef-backend-ctl.