linux-system-roles.timesync
sincronización de tiempos
Este rol instala y configura una implementación de NTP y/o PTP para funcionar como un cliente NTP y/o como esclavo PTP, con el fin de sincronizar el reloj del sistema con los servidores NTP y/o maestros PTP. Las implementaciones soportadas de NTP/PTP son chrony, ntp (la implementación de referencia) y linuxptp.
Advertencia
El rol reemplaza la configuración del proveedor de servicio dado o detectado en el host administrador. Se perderán los ajustes anteriores, incluso si no están especificados en las variables del rol (no se hace ningún intento de conservar o combinar la configuración previa, los archivos de configuración se reemplazan por completo). La única configuración que se conserva es la elección del proveedor si timesync_ntp_provider
no está definido (ver la descripción de esta variable más abajo).
Requisitos
Ver abajo
Requisitos de colección
Para gestionar sistemas rpm-ostree
, el rol requiere módulos de colecciones externas. Usa el siguiente comando para instalarlos:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Variables del rol
Las variables que se pueden pasar a este rol son las siguientes:
# Lista de servidores NTP
timesync_ntp_servers:
- hostname: foo.example.com # Nombre o dirección del servidor
minpoll: 4 # Intervalo de sondeo mínimo (por defecto 6)
maxpoll: 8 # Intervalo de sondeo máximo (por defecto 10)
iburst: true # Bandera que habilita la sincronización inicial rápida
# (por defecto false)
pool: false # Bandera que indica que cada dirección resuelta
# del nombre host es un servidor NTP separado
# (por defecto false)
nts: false # Bandera que habilita el mecanismo de autenticación
# de Network Time Security (NTS)
# (por defecto false, soportado solo con chrony >= 4.0)
prefer: false # Bandera que marca la fuente como preferida para
# sincronización sobre otras fuentes
# (por defecto false)
trust: false # Bandera que marca la fuente como confiable sobre
# las fuentes que no tienen esta bandera
# (por defecto false)
xleave: false # Bandera que habilita el modo entrelazado (por defecto false)
filter: 1 # Número de mediciones de NTP por actualización de reloj
# (por defecto 1)
# Lista de dominios PTP
timesync_ptp_domains:
- number: 0 # Número del dominio PTP
interfaces: [eth0] # Lista de interfaces en el dominio
delay: 0.000010 # Máxima suposición de retraso en la red hasta el
# maestro en segundos # wokeignore:rule=master
# (por defecto 100 microsegundos)
transport: UDPv4 # Transporte de red: UDPv4, UDPv6, L2
# (por defecto UDPv4)
udp_ttl: 1 # TTL para transportes UDPv4 y UDPv6
# (por defecto 1)
hybrid_e2e: false # Bandera que habilita solicitudes de retraso de fin a fin
# unicast (por defecto false)
# Bandera que habilita el uso de servidores NTP proporcionados por DHCP (por defecto false)
timesync_dhcp_ntp_servers: false
# Desviación mínima del reloj que se puede corregir por salto (el valor por defecto es
# específico para la implementación NTP/PTP: chrony 1.0, ntp 0.128, linuxptp 0.00002).
# Un umbral de cero desactiva todos los saltos.
timesync_step_threshold: 1.0
# Distancia raíz máxima para aceptar mediciones de servidores NTP
# Establecer en 0 para usar el valor predeterminado del proveedor
timesync_max_distance: 0
# Número mínimo de fuentes de tiempo seleccionables requeridas para permitir la sincronización
# del reloj (por defecto 1)
timesync_min_sources: 1
# Lista de interfaces que deberían tener habilitado el sello de tiempo de hardware para NTP
# (lista vacía por defecto). Como un valor especial, '*' habilita el sello de tiempo en todas
# las interfaces que lo soportan.
timesync_ntp_hwts_interfaces: ["*"]
# Nombre del paquete que debe ser instalado y configurado para NTP.
# Los posibles valores son "chrony" y "ntp". Si no está definido, se configurará el servicio activo
# o habilitado que esté actualmente en uso. Si no hay ningún servicio activo o habilitado, se
# seleccionará un paquete específico para el sistema y su versión.
timesync_ntp_provider: chrony
# A veces, los administradores pueden necesitar configuraciones extendidas para chrony que
# no están cubiertas por los ajustes predefinidos proporcionados por este rol.
# 'timesync_chrony_custom_settings' permite definir una lista de configuraciones personalizadas
# para el archivo chrony.conf, proporcionando una lista de configuraciones. Como ejemplo,
# para la depuración, uno podría necesitar registrar mediciones, estadísticas y seguimiento.
# Esta información se almacena generalmente en el directorio /var/log/chrony. Para
# eso, uno necesita definir dos configuraciones diferentes (logdir y log), como sigue:
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
# Esta variable es aplicable solo para sistemas de actualización transaccional.
# Si una actualización transaccional requiere un reinicio, el rol procederá con el
# reinicio si `timesync_transactional_update_reboot_ok` está establecido en `true`. Si se establece
# en `false`, el rol notificará al usuario que se requiere un reinicio, permitiendo
# un manejo personalizado del requisito de reinicio. Si esta variable no está configurada,
# el rol fallará para asegurar que el requisito de reinicio no se pase por alto.
# Para sistemas de actualización no transaccionales, esta variable se ignora.
timesync_transactional_update_reboot_ok: true
Ejemplos de Playbooks
Instalar y configurar ntp para sincronizar el reloj del sistema con tres servidores NTP:
- name: Gestionar sincronización de tiempos con 3 servidores
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
iburst: true
- hostname: bar.example.com
iburst: true
- hostname: baz.example.com
iburst: true
roles:
- linux-system-roles.timesync
Instalar y configurar linuxptp para sincronizar el reloj del sistema con un
maestro en el dominio PTP número 0, que es accesible en la interfaz eth0:
- name: Gestionar sincronización de tiempos en el dominio PTP 0, interfaz eth0
hosts: targets
vars:
timesync_ptp_domains:
- number: 0
interfaces: [eth0]
roles:
- linux-system-roles.timesync
Instalar y configurar chrony y linuxptp para sincronizar el reloj del sistema con múltiples servidores NTP y dominios PTP para una sincronización altamente precisa y resistente:
- name: Gestionar múltiples servidores NTP y dominios PTP
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
maxpoll: 6
- hostname: bar.example.com
maxpoll: 6
- hostname: baz.example.com
maxpoll: 6
timesync_ptp_domains:
- number: 0
interfaces: [eth0, eth1]
transport: L2
delay: 0.000010
- number: 1
interfaces: [eth2]
transport: UDPv4
delay: 0.000010
roles:
- linux-system-roles.timesync
Instalar y configurar chrony con múltiples servidores NTP y configuraciones avanzadas personalizadas: registrar mediciones
, estadísticas
y seguimiento
en /var/log/chrony
:
- name: Gestionar con configuraciones avanzadas personalizadas
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
- hostname: bar.example.com
- hostname: baz.example.com
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
roles:
- linux-system-roles.timesync
rpm-ostree
Ver README-ostree.md
Configure NTP and/or PTP
ansible-galaxy install linux-system-roles.timesync