brianshumate.nomad
Ansible-Nomad
Este rol fue mantenido anteriormente por Brian Shumate y ahora es gestionado por @ansible-community/hashicorp-tools.
Este rol de Ansible realiza la instalación básica de Nomad, incluyendo la estructura del sistema de archivos y una configuración de ejemplo.
También configurará un clúster mínimo de 3 nodos de servidor y puede hacerlo en un entorno de desarrollo basado en Vagrant y VirtualBox. Consulta README_VAGRANT.md para más detalles sobre la configuración de Vagrant.
Requisitos
Este rol requiere una distribución Arch Linux, Debian, RHEL o Ubuntu; el rol se prueba con las siguientes versiones específicas de software:
- Ansible: 2.7.10
- nomad: 0.12.1
- Arch Linux
- CentOS: 7
- Debian: 8
- RHEL: 7
- Ubuntu: >= 20.04
- unzip para el módulo unarchive
Variables del Rol
El rol define la mayoría de sus variables en defaults/main.yml
:
nomad_debug
- Modo de depuración de Nomad
- Valor predeterminado: no
nomad_skip_ensure_all_hosts
- Permitir ejecutar el rol incluso si no todas las instancias están conectadas
- Valor predeterminado: no
nomad_allow_purge_config
- Permitir eliminar archivos de configuración obsoletos. Por ejemplo, eliminar la configuración del servidor si la instancia ya no es un servidor.
- Valor predeterminado: no
nomad_version
- Versión de Nomad a instalar
- Valor predeterminado: 1.1.1
nomad_architecture_map
- Esta variable no necesita ser cambiada en la mayoría de los casos.
- Valor predeterminado: Diccionario que traduce ansible_architecture a la convención de nomenclatura de arquitectura de HashiCorp.
nomad_architecture
- Arquitectura del host
- Valor predeterminado: determinado por
{{ nomad_architecture_map[ansible_architecture] }}
nomad_pkg
- Nombre del archivo del paquete de Nomad
- Valor predeterminado:
nomad_{{ nomad_version }}_linux_{{ nomad_architecture }}.zip
nomad_zip_url
- URL de descarga de Nomad
- Valor predeterminado:
https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version }}_linux_{{ nomad_architecture }}.zip
nomad_checksum_file_url
- URL del archivo de checksum de Nomad
- Valor predeterminado:
https://releases.hashicorp.com/nomad/{{ nomad_version }}/nomad_{{ nomad_version}}_SHA256SUMS
nomad_bin_dir
- Ruta de instalación del binario de Nomad
- Valor predeterminado:
/usr/local/bin
nomad_config_dir
- Ruta del archivo de configuración de Nomad
- Valor predeterminado:
/etc/nomad.d
nomad_data_dir
- Ruta de datos de Nomad
- Valor predeterminado:
/var/nomad
nomad_lockfile
- Ruta del archivo de bloqueo de Nomad
- Valor predeterminado:
/var/lock/subsys/nomad
nomad_run_dir
- Ruta de ejecución de Nomad
- Valor predeterminado:
/var/run/nomad
nomad_manage_user
- ¿Gestionar el usuario de Nomad?
- Valor predeterminado: sí
nomad_user
- Nombre de usuario de Nomad en el sistema operativo
- Valor predeterminado: root
nomad_manage_group
- ¿Gestionar el grupo de Nomad?
- Valor predeterminado: no
nomad_group
- Grupo de Nomad en el sistema operativo
- Valor predeterminado: bin
nomad_region
- Región predeterminada
- Valor predeterminado: global
nomad_datacenter
- Etiqueta del centro de datos de Nomad
- Valor predeterminado: dc1
nomad_log_level
- Nivel de registro
- Valor predeterminado: INFO
nomad_syslog_enable
- Registrar en syslog
- Valor predeterminado: true
nomad_iface
- Interfaz de red de Nomad
- Valor predeterminado:
{{ ansible_default_ipv4.interface }}
nomad_node_name
- Nombre del nodo de Nomad
- Valor predeterminado:
{{ inventory_hostname_short }}
nomad_node_role
- Rol del nodo de Nomad
- opciones: client, server, both
- Valor predeterminado: client
nomad_leave_on_terminate
- Enviar baja al ser terminado
- Valor predeterminado: sí
nomad_leave_on_interrupt
- Enviar baja al ser interrumpido
- Valor predeterminado: no
nomad_disable_update_check
- Desactivar verificación de actualizaciones
- Valor predeterminado: no
nomad_retry_max
- Máximo de intentos de unirse
- Valor predeterminado: 0
nomad_retry_join
- ¿Habilitar intentar unirse de nuevo?
- Valor predeterminado: no
nomad_retry_interval
- Intervalo para intentar unirse de nuevo
- Valor predeterminado: 30s
nomad_rejoin_after_leave
- ¿Reunirse después de salir?
- Valor predeterminado: no
nomad_enabled_schedulers
- Lista de programadores habilitados
- Valor predeterminado: service, batch, system
nomad_num_schedulers
- Número de programadores
- Valor predeterminado:
{{ ansible_processor_vcpus }}
nomad_node_gc_threshold
- Umbral de recolección de basura del nodo
- Valor predeterminado: 24h
nomad_job_gc_threshold
- Umbral de recolección de basura del trabajo
- Valor predeterminado: 4h
nomad_eval_gc_threshold
- Umbral de recolección de basura de evaluación
- Valor predeterminado: 1h
nomad_deployment_gc_threshold
- Umbral de recolección de basura de despliegue
- Valor predeterminado: 1h
nomad_encrypt_enable
- Habilitar cifrado Gossip incluso si no se establece
nomad_encrypt
- Valor predeterminado: false
nomad_encrypt
- Establecer la clave de cifrado; debe ser la misma en todo el clúster. Si no está presente y
nomad_encrypt_enable
es verdadero, la clave se generará y recuperará del servidor inicializado. - Valor predeterminado: ""
nomad_raft_multiplier
- Especifica el múltiplo de raft a usar
- Valor predeterminado: 1
nomad_raft_protocol
- Especifica la versión del protocolo raft, que utilizan los servidores de nomad para la comunicación
- Valor predeterminado: 2
nomad_authoritative_region
- Especifica la región autoritativa, que proporciona una única fuente de verdad para configuraciones globales como políticas ACL y tokens ACL globales.
- Valor predeterminado: ""
nomad_node_class
- Clase del nodo de Nomad
- Valor predeterminado: ""
nomad_node_pool
- Usado para restringir qué nodos cliente son elegibles para recibir qué cargas de trabajo. Por defecto, las tareas se excluyen de los grupos de nodos que no son predeterminados. Esto significa que los autores de trabajos no tienen que agregar repetidamente las mismas restricciones a cada trabajo solo para evitar ciertos nodos.
- Valor predeterminado: ""
nomad_no_host_uuid
- Forzar a que el UUID generado por el cliente sea aleatorio
- Valor predeterminado: no
nomad_max_kill_timeout
- Tiempo máximo para matar procesos
- Valor predeterminado: 30s
nomad_network_interface
- El programador de Nomad elegirá entre las IPs de esta interfaz para asignar tareas
- Valor predeterminado: ninguno
nomad_network_speed
- Sobrescribir la velocidad del enlace de red (0 = sin sobrescritura)
- Valor predeterminado: 0
nomad_cpu_total_compute
- Sobrescribir cálculo de CPU (0 = sin sobrescritura)
- Valor predeterminado: 0
nomad_gc_interval
- Intervalo de recolección de basura del cliente
- Valor predeterminado: 1m
nomad_gc_max_allocs
- Número máximo de asignaciones que un cliente rastreará antes de activar una recolección de basura
- Valor predeterminado: 50
nomad_gc_disk_usage_threshold
- Porcentaje de umbral de uso de disco para la recolección de basura
- Valor predeterminado: 80
nomad_gc_inode_usage_threshold
- Porcentaje de umbral de uso de inodes para la recolección de basura
- Valor predeterminado: 70
nomad_gc_parallel_destroys
- Máx. destrucciones paralelas de recolección de basura
- Valor predeterminado: 2
nomad_reserved
- Recursos reservados del cliente
- Valor predeterminado:
cpu: {{ nomad_reserved_cpu }}, memory: {{ nomad_reserved_memory }}, disk: {{ nomad_reserved_disk }}, ports: {{ nomad_reserved_ports }}
nomad_reserved_cpu
- CPU reservada del cliente
- Valor predeterminado: 0
nomad_reserved_memory
- Memoria reservada del cliente
- Valor predeterminado: 0
nomad_reserved_disk
- Disco reservado del cliente
- Valor predeterminado: 0
nomad_reserved_ports
- Puertos reservados del cliente
- Valor predeterminado: 22
nomad_host_volumes
- Lista de volúmenes de host que se utilizan para hacer que los volúmenes estén disponibles para trabajos (Cargas de trabajo con estado). Por defecto, se crea un directorio. Especifica el parámetro
state
para cambiarlo. - Valor predeterminado: []
- Ejemplo:
nomad_host_volumes:
- name: data
path: /var/data
owner: root
group: bin
mode: 0755
read_only: false
- name: config
path: /etc/conf
owner: root
group: bin
mode: 0644
read_only: false
- name: docker socket
path: /run/docker.sock
read_only: true
state: file
nomad_host_networks
- Lista de redes de host que se utilizan para hacer que diferentes redes estén disponibles para trabajos en lugar de seleccionar una interfaz predeterminada. Esto es muy útil especialmente en caso de tener múltiples NICs.
- Valor predeterminado: []
- Ejemplo:
nomad_host_networks:
- name: public
cidr: 100.101.102.103/24
reserved_ports: 22,80
- name: private
interface: eth0
reserved_ports: 443
nomad_options
- Opciones del controlador
- Diccionario clave-valor
- Valor predeterminado: {}
nomad_chroot_env
- Definición del entorno chroot para los controladores Exec y Java
- Diccionario clave-valor
- Valor predeterminado: false
nomad_meta
- Meta datos
- Diccionario clave-valor
- Valor predeterminado: {}
nomad_bind_address
- Dirección de la interfaz de enlace
- Valor predeterminado:
{{ hostvars[inventory_hostname]['ansible_'+ nomad_iface ]['ipv4']['address'] }}
nomad_advertise_address
- Dirección de la interfaz de red para publicitar a otros nodos
- Valor predeterminado:
{{ hostvars[inventory_hostname]['ansible_'+ nomad_iface ]['ipv4']['address'] }}
nomad_ports
- Puertos utilizados por Nomad
- Valor predeterminado:
http: {{ nomad_ports_http }}, rpc: {{ nomad_ports_rpc }}, serf: {{ nomad_ports_serf }}
nomad_ports_http
- Puerto http
- Valor predeterminado: 4646
nomad_ports_rpc
- Puerto RPC
- Valor predeterminado: 4647
nomad_ports_serf
- Puerto Serf
- Valor predeterminado: 4648
nomad_podman_enable
- Instala el complemento de podman
- Valor predeterminado: false
nomad_cni_enable
- Instala los complementos CNI
- Valor predeterminado: false
nomad_docker_enable
- ¿Instalar subsistema Docker en nodos?
- Valor predeterminado: false
nomad_template_config
- Te permite configurar la configuración de plantilla del cliente.
- Valor predeterminado: {}
Ejemplo:
nomad_template_config:
vault_retry:
attempts: 12
backoff: "750ms"
max_backoff: "2m"
wait:
min: "10s"
max: "4m"
nomad_plugins
- Te permite configurar los complementos de Nomad.
- Valor predeterminado: {}
Ejemplo:
nomad_plugins:
nomad-driver-podman:
config:
volumes:
enabled: true
selinuxlabel: z
recover_stopped: true
nomad_group_name
- Grupo de Ansible que contiene todos los nodos del clúster
- Valor predeterminado: nomad_instances
nomad_servers
- Normalmente no es necesario modificar manualmente esta lista.
- Lista de nodos del servidor
- Valor predeterminado: lista de todos los nodos en
nomad_group_name
connomad_node_role
establecido en server o both
nomad_gather_server_facts
- Esta función hace posible reunir la
nomad_bind_address
ynomad_advertise_address
de los servidores que actualmente no son el objetivo del playbook.
Para hacer esto posible se usa la opción delegate_facts
. Esta opción está rota en muchas versiones de Ansible, por lo que esta función puede no funcionar siempre.
- Reunir hechos de servidores que no son actualmente el objetivo
- Valor predeterminado: 'no'
nomad_use_consul
- Inicializar nomad a través del soporte nativo de configuración cero de consul
- Valor predeterminado: False
nomad_consul_address
- La dirección de tu API de consul, úsala en combinación con nomad_use_consul=True. Si deseas usar https, utiliza
nomad_consul_ssl
. No añadas https. - Valor predeterminado: localhost:8500
nomad_consul_ssl
- Si es
true
, entonces usa https. - Valor predeterminado: false
nomad_consul_ca_file
- Clave pública del CA de consul, usar en combinación con
nomad_consul_cert_file
ynomad_consul_key_file
. - Valor predeterminado: ""
nomad_consul_grpc_ca_file
- Clave pública del CA de consul para validar el gRPC TLS, usar en combinación con
nomad_consul_cert_file
ynomad_consul_key_file
. - Valor predeterminado: nomad_consul_ca_file
nomad_consul_cert_file
- La clave pública que se puede usar para acceder a consul.
- Valor predeterminado: ""
nomad_consul_key_file
- La clave privada contrapartida de
nomad_consul_cert_file
. - Valor predeterminado: ""
nomad_consul_servers_service_name
- El nombre del servicio consul para tus servidores de nomad
- Valor predeterminado: nomad-servers
nomad_consul_clients_service_name
- El nombre del servicio consul para tus clientes de nomad
- Valor predeterminado: nomad-clients
nomad_consul_token
- Token utilizado para la interacción con consul
- Valor predeterminado: ""
nomad_bootstrap_expect
- Especifica el número de nodos de servidor que se espera antes de inicializar.
- Valor predeterminado:
{{ nomad_servers | count or 3 }}
nomad_acl_enabled
- Habilitar ACLs
- Valor predeterminado: no
nomad_acl_token_ttl
- TTL para tokens
- Valor predeterminado: "30s"
nomad_acl_policy_ttl
- TTL para políticas
- Valor predeterminado: "30s"
nomad_acl_replication_token
- Token para usar en la replicación de ACL en servidores no autoritativos
- Valor predeterminado: ""
nomad_vault_enabled
- Habilitar vault
- Valor predeterminado: no
nomad_vault_address
- Dirección de vault a usar
- Valor predeterminado:
{{ vault_address | default('0.0.0.0') }}
nomad_vault_allow_unauthenticated
- Permitir a los usuarios usar vault sin proporcionar su propio token
- Valor predeterminado: sí
nomad_vault_create_from_role
- Rol para crear tokens
- Valor predeterminado: ""
nomad_vault_ca_file
- Ruta del certificado CA a usar con vault
- Valor predeterminado: ""
nomad_vault_ca_path
- Ruta de una carpeta que contiene certificados CA para usar con vault
- Valor predeterminado: ""
nomad_vault_cert_file
- Ruta a un certificado para usar con vault
- Valor predeterminado: ""
nomad_vault_key_file
- Ruta a un archivo de clave privada para usar con vault
- Valor predeterminado: ""
nomad_vault_tls_server_name
- Cadena opcional utilizada para establecer el servidor SNI al conectarse a vault
- Valor predeterminado: ""
nomad_vault_tls_skip_verify
- Especifica si se debe hacer cumplir la validación del par SSL
- Valor predeterminado: no
nomad_vault_token
- Token de vault utilizado por nomad. Solo se instalará en servidores.
- Valor predeterminado: ""
nomad_vault_namespace
- Espacio de nombres de vault utilizado por nomad
- Valor predeterminado: ""
nomad_docker_enable
- Habilitar docker
- Valor predeterminado: no
nomad_docker_dmsetup
- Ejecutar dmsetup en ubuntu (solo si docker está habilitado)
- Valor predeterminado: sí
nomad_tls_enable
- Habilitar TLS
- Valor predeterminado: false
nomad_tls_copy_keys
- Si copiar certificados de la máquina local (controlador).
- Valor predeterminado: false
nomad_tls_files_remote_src
- Si copiar certificados desde la misma máquina remota.
- Valor predeterminado: false
nomad_tls_dir
- El directorio remoto donde se almacenan los certificados.
- Valor predeterminado:
/etc/nomad/ssl
nomad_ca_file
- Usar un CA para la conexión TLS, se necesitan nomad_cert_file y nomad_key_file
- Valor predeterminado: ca.cert
nomad_cert_file
- Usar un certificado para la conexión TLS, se necesitan nomad_ca_file y nomad_key_file
- Valor predeterminado: server.crt
nomad_key_file
- Usar una clave para la conexión TLS, se necesitan nomad_cert_file y nomad_key_file
- Valor predeterminado: server.key
nomad_rpc_upgrade_mode
- Usar un certificado para la conexión TLS, se necesitan nomad_ca_file y nomad_key_file, utilizado solo cuando el clúster se está actualizando a TLS, y se elimina después de que la migración se completa. Esto permite que el agente acepte tanto tráfico TLS como de texto plano.
- Valor predeterminado: false
nomad_verify_server_hostname
- Usar una clave para la conexión TLS, se necesitan nomad_cert_file y nomad_key_file. Especifica si las conexiones TLS salientes deben verificar el nombre de host del servidor.
- Valor predeterminado: true
nomad_verify_https_client
- Usar una clave para la conexión TLS, se necesitan nomad_cert_file y nomad_key_file. Especifica que los agentes deben requerir certificados de cliente para todas las solicitudes HTTPS entrantes. Los certificados de cliente deben estar firmados por el mismo CA que Nomad.
- Valor predeterminado: true
nomad_telemetry
- Especifica si habilitar la configuración de telemetría de Nomad.
- Valor predeterminado: false
nomad_telemetry_disable_hostname
- Especifica si los valores de medidor deben ser precedidos por el nombre del host local.
- Valor predeterminado: "false"
nomad_telemetry_collection_interval
- Especifica el intervalo de tiempo en el que el agente de Nomad recopila datos de telemetría.
- Valor predeterminado: "1s"
nomad_telemetry_use_node_name
- Especifica si los valores de medidor deben ser precedidos por el nombre del nodo, en lugar del nombre de host. Si se establece, anulará el valor disable_hostname.
- Valor predeterminado: "false"
nomad_telemetry_publish_allocation_metrics
- Especifica si Nomad debe publicar métricas en tiempo de ejecución de asignaciones.
- Valor predeterminado: "false"
nomad_telemetry_publish_node_metrics
- Especifica si Nomad debe publicar métricas en tiempo de ejecución de nodos.
- Valor predeterminado: "false"
nomad_telemetry_backwards_compatible_metrics
- Especifica si Nomad debe publicar métricas que son compatibles con versiones anteriores a 0.7, ya que después de la versión 0.7, Nomad emite métricas etiquetadas. Todas las nuevas métricas solo se agregarán a las métricas etiquetadas. Ten en cuenta que esta opción se utiliza para transitar el monitoreo a métricas etiquetadas y eventualmente se desaprobará.
- Valor predeterminado: "false"
nomad_telemetry_disable_tagged_metrics
- Especifica si Nomad no debe emitir métricas etiquetadas y solo emitir métricas compatibles con versiones anteriores a Nomad 0.7. Ten en cuenta que esta opción se utiliza para transitar el monitoreo a métricas etiquetadas y eventualmente se desaprobará.
- Valor predeterminado: "false"
nomad_telemetry_filter_default
- Esto controla si se permiten métricas que no han sido especificadas por el filtro. Por defecto es verdadero, lo que permitirá todas las métricas cuando no se proporcionen filtros. Cuando se establece en falso sin filtros, no se enviarán métricas.
- Valor predeterminado: "true"
nomad_telemetry_prefix_filter
- Esta es una lista de reglas de filtro para aplicar para permitir/bloquear métricas por prefijo. Un "+" líder habilitará cualquier métrica con el prefijo dado, y un "-" líder las bloqueará. Si hay superposición entre dos reglas, la regla más específica tendrá prioridad. El bloqueo tendrá prioridad si el mismo prefijo se enumera varias veces.
- Valor predeterminado: []
nomad_telemetry_disable_dispatched_job_summary_metrics
- Especifica si Nomad debe ignorar trabajos enviados desde un trabajo parametrizado al publicar estadísticas de resumen de trabajos. Dado que cada trabajo tiene un pequeño costo de memoria para rastrear estadísticas de resumen, a veces se desea intercambiar estas estadísticas por más memoria al enviar grandes volúmenes de trabajos.
- Valor predeterminado: "false"
nomad_telemetry_statsite_address
- Especifica la dirección de un servidor statsite para reenviar datos de métricas.
- Valor predeterminado: ""
nomad_telemetry_statsd_address
- Especifica la dirección de un servidor statsd para reenviar métricas.
- Valor predeterminado: ""
nomad_telemetry_datadog_address
- Especifica la dirección de un servidor DataDog statsd para reenviar métricas.
- Valor predeterminado: ""
nomad_telemetry_datadog_tags
- Especifica una lista de etiquetas globales que se agregarán a todos los paquetes de telemetría enviados a DogStatsD. Es una lista de cadenas, donde cada cadena se parece a "mi_nombre_de_etiqueta:mi_valor_de_etiqueta".
- Valor predeterminado: []
nomad_telemetry_prometheus_metrics
- Especifica si el agente debe hacer métricas con formato Prometheus disponibles en /v1/metrics?format=prometheus.
- Valor predeterminado: "false"
nomad_telemetry_circonus_api_token
- Especifica un Token API de Circonus válido utilizado para crear/gestionar controles. Si se proporciona, la gestión de métricas está habilitada.
- Valor predeterminado: ""
nomad_telemetry_circonus_api_app
- Especifica un nombre de aplicación válido asociado con el token API.
- Valor predeterminado: "nomad"
nomad_telemetry_circonus_api_url
- Especifica la URL base a utilizar para contactar la API de Circonus.
- Valor predeterminado: "https://api.circonus.com/v2"
nomad_telemetry_circonus_submission_interval
- Especifica el intervalo en el que se envían métricas a Circonus.
- Valor predeterminado: "10s"
nomad_telemetry_circonus_submission_url
- Especifica el campo check.config.submission_url de un objeto Check API, de un control HTTPTRAP creado previamente.
- Valor predeterminado: ""
nomad_telemetry_circonus_check_id
- Especifica el ID del control (no el paquete de control) de un control HTTPTRAP creado previamente. La porción numérica del campo check._cid en un objeto Check API.
- Valor predeterminado: ""
nomad_telemetry_circonus_check_force_metric_activation
- Especifica si activar forzosamente métricas que ya existen y que no están actualmente activas. Si la gestión de controles está habilitada, el comportamiento predeterminado es agregar nuevas métricas a medida que se encuentran. Si la métrica ya existe en el control, no se activará. Esta configuración anula ese comportamiento.
- Valor predeterminado: "false"
nomad_telemetry_circonus_check_instance_id
- Sirve para identificar de manera única las métricas provenientes de esta instancia. Se puede utilizar para mantener la continuidad de mediciones con instancias transitorias o efímeras mientras se mueven dentro de una infraestructura. Por defecto, esto se establece como nombre de host:nombre de aplicación (por ejemplo, "host123:nomad").
- Valor predeterminado: ""
nomad_telemetry_circonus_check_search_tag
- Especifica una etiqueta especial que, cuando se junta con la id de instancia, ayuda a reducir los resultados de búsqueda cuando no se proporciona una URL de envío o un ID de control. Por defecto, esto se establece como servicio:app (por ejemplo, "servicio:nomad").
- Valor predeterminado: ""
nomad_telemetry_circonus_check_display_name
- Especifica un nombre para dar a un control cuando se crea. Este nombre se muestra en la lista de controles de la interfaz de usuario de Circonus.
- Valor predeterminado: ""
nomad_telemetry_circonus_check_tags
- Lista separada por comas de etiquetas adicionales a agregar a un control cuando se cree.
- Valor predeterminado: ""
nomad_telemetry_circonus_broker_id
- Especifica el ID de un corredor Circonus específico que usar al crear un nuevo control. La porción numérica del campo broker._cid en un objeto Broker API. Si la gestión de métricas está habilitada y no se proporciona una URL de envío ni un ID de control, se intentará buscar un control existente utilizando la ID de instancia y la etiqueta de búsqueda. Si no se encuentra uno, se creará un nuevo control HTTPTRAP. Por defecto, se selecciona un corredor de Enterprise aleatorio o el corredor público por defecto de Circonus.
- Valor predeterminado: ""
nomad_telemetry_circonus_broker_select_tag
- Especifica una etiqueta especial que se utilizará para seleccionar un corredor Circonus cuando no se proporciona un ID de corredor. El mejor uso de esto es como una pista para qué corredor debe usarse según dónde se esté ejecutando esta instancia particular (por ejemplo, una ubicación geográfica específica o centro de datos, dc:sfo).
- Valor predeterminado: ""
nomad_autopilot
- Habilitar Nomad Autopilot
- Para habilitar funciones de Autopilot (con la excepción de la limpieza de servidores muertos), la configuración de raft_protocol en la sección del servidor debe estar establecida en 3 en todos los servidores, consulta el parámetro nomad_raft_protocol.
- Valor predeterminado: false
nomad_autopilot_cleanup_dead_servers
- Especifica la eliminación automática de nodos de servidor muertos periódicamente y siempre que se agregue un nuevo servidor al clúster.
- Valor predeterminado: true
nomad_autopilot_last_contact_threshold
- Especifica la máxima cantidad de tiempo que un servidor puede estar sin contacto del líder antes de ser considerado no saludable.
- Valor predeterminado: 200ms
nomad_autopilot_max_trailing_logs
- Especifica el número máximo de entradas de log que un servidor puede estar detrás del líder antes de ser considerado no saludable.
- Valor predeterminado: 250
nomad_autopilot_server_stabilization_time
- Especifica el tiempo mínimo que un servidor debe estar estable en el estado 'saludable' antes de ser agregado al clúster. Solo tiene efecto si todos los servidores están ejecutando la versión 3 o superior del protocolo Raft.
- Valor predeterminado: 10s
nomad_ui
- Especifica si deseas agregar una etiqueta específica en la interfaz de usuario, más tarde con
nomad_ui_label_text
,nomad_ui_label_background_color
ynomad_ui_label_text_color
. - Valor predeterminado: false
Ejemplo:
nomad_ui: true
nomad_ui_label_text: "Clúster de Staging"
nomad_ui_label_background_color: "yellow"
nomad_ui_label_text_color: "#000000"
nomad_ui_label_text
- Especifica una etiqueta para mostrar en la interfaz de usuario (por ejemplo, "Clúster de Staging").
- Valor predeterminado: "Clúster de Staging"
nomad_ui_label_background_color
- Especifica el color de fondo de la etiqueta en la interfaz de usuario (por ejemplo, "yellow").
- Valor predeterminado: "yellow"
nomad_ui_label_text_color
- Especifica el color de la etiqueta en la interfaz de usuario (por ejemplo, "#000000").
- Valor predeterminado: "#000000"
nomad_artifact
- Especifica variables de entorno para el artefacto (por ejemplo, "GITLAB_READONLY_TOKEN").
- Valor predeterminado: ""
Ejemplo:
nomad_artifact:
{
set_environment_variables: "GITLAB_READONLY_TOKEN,GITLAB_KEYCLOAK_THEMES_READONLY_TOKEN",
}
Sección de configuración personalizada
A medida que Nomad carga la configuración de archivos y directorios en orden léxico, combinando típicamente la configuración en archivos de configuración previamente analizados, puedes establecer configuraciones personalizadas a través de nomad_config_custom
, que se expandirá en un archivo llamado custom.json
dentro de tu nomad_config_dir
, que se cargará después de toda otra configuración por defecto.
Un ejemplo de uso para habilitar vault
:
vars:
nomad_config_custom:
vault:
enabled : true
ca_path : "/etc/certs/ca"
cert_file : "/var/certs/vault.crt"
key_file : "/var/certs/vault.key"
address : "https://vault.service.consul:8200"
Dependencias
Ansible requiere GNU tar y este rol realiza algunas operaciones locales del módulo unarchive, así que asegúrate de que tu sistema tenga gtar
/unzip
instalado.
Las plantillas Jinja2 utilizan el filtro ipaddr que necesita la biblioteca de Python netaddr
.
Ejemplo de Playbook
La instalación básica de Nomad es posible utilizando el playbook incluido site.yml
:
ansible-playbook -i <hosts> site.yml
También puedes simplemente pasar variables usando la opción --extra-vars
al comando ansible-playbook
:
ansible-playbook -i hosts site.yml --extra-vars "nomad_datacenter=maui"
Vagrant y VirtualBox
Consulta examples/README_VAGRANT.md
para detalles sobre implementaciones rápidas de Vagrant bajo VirtualBox para pruebas, etc.
Licencia
BSD
Información del autor
Contribuyentes
Agradecimientos especiales a las personas mencionadas en CONTRIBUTORS.md por sus contribuciones a este proyecto.
Las contribuciones son bienvenidas, siempre que puedas aceptar los términos descritos en CONTRIBUTING.md
ansible-galaxy install brianshumate.nomad