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:

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:

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

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 con nomad_node_role establecido en server o both

nomad_gather_server_facts

  • Esta función hace posible reunir la nomad_bind_address y nomad_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 y nomad_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 y nomad_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:

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:

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

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 y nomad_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

Brian Shumate

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

Instalar
ansible-galaxy install brianshumate.nomad
Licencia
bsd-2-clause
Descargas
18.3k
Propietario
Art ⁂ Data ⁂ Boards ⁂ Water