Instalar Chrony con Ansible.

Ansible Logo

En este procedimiento voy a proceder a instalar chrony con una receta de Ansible. Voy a tener preconfigurado un archivo de configuración apuntando a mi servidor ntp. En la configuración de la receta voy a omitir que impacte en dicho equipo.

Chrony viene por defecto en las distribuciones de Red Hatimpl_soft 1​ y está disponible en los repositorios de Ubuntuimpl_soft 2​, está orientado a los ordenadores comunes y corrientes, los cuales son inestables, entran en modo de suspensión o tienen conexión de manera intermitente con internet. Estos conceptos también para máquinas virtuales, un ambiente mucho más inestable.

Chrony se caracteriza por su bajo consumo de recursos y soporta ambos protocolos muy bien (NTP y PTP), esta compuesto por dos componentes principales: chronyd un demonio que se ejecuta al iniciar la computadora y chronyc una interfaz por línea de comandos al usuario para su configuración.

Ha sido evaluado como muy seguro y con apenas unas cuantas incidenciasimpl_soft 3​, su ventaja es la versatilidad de su código, escrito desde cero para evitar la complejidad de códigoimpl_soft 4​. Chrony está escrito bajo licencia Licencia Pública General de GNU, versión 2 y fue escrito por Richard Curnow en 1997 con otros colaboradores y actualmente es mantenido por Miroslav Lichvar y el desarrollo y mantenimiento está patrocinado por Red Hatimpl_soft 5​.

(Extraído de Wikipeida)

La receta para instalar chrony con Ansible:

En la receta procedo a aplicar el cambio a todos los servidores menos a rbpi3-001, la misma esta compuesta por 3 tareas:

  • Instalar chrony.
  • Copiar el archivo de configuración.
  • Verificar que el servicio quede funcionando.

La receta:

cat /etc/ansible/utils/chrony.yml
---
- hosts: all:!rbpi3-001.sismonda.local 
  become: yes 

  tasks:
  - name: Instalar Chrony.
    package:
      name: 
       - chrony
      state: latest

  - name: Copiar chrony.conf.
    template:
      src: /etc/ansible/utils/chrony/chrony.conf 
      dest: /etc/chrony/chrony.conf
      owner: root
      group: root
      mode: 0644
      backup: yes

  - name: Verificar ejecución de Chrony.
    systemd: 
      name: chrony
      state: started
      daemon_reload: yes
      enabled: yes

El archivo de configuración:

cat /etc/ansible/utils/chrony/chrony.conf
# Welcome to the chrony configuration file. See chrony.conf(5) for more
# information about usuable directives.

# This will use (up to):
# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled
# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well
# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm)
# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only
# sources will be used.
# At the same time it retains some protection against one of the entries being
# down (compare to just using one of the lines). See (LP: #1754358) for the
# discussion.
#
# About using servers from the NTP Pool Project in general see (LP: #104525).
# Approved by Ubuntu Technical Board on 2011-02-08.
# See http://www.pool.ntp.org/join.html for more information.
#pool ntp.ubuntu.com        iburst maxsources 4
#pool 0.ubuntu.pool.ntp.org iburst maxsources 1
#pool 1.ubuntu.pool.ntp.org iburst maxsources 1
#pool 2.ubuntu.pool.ntp.org iburst maxsources 2

server 10.0.0.31

# This directive specify the location of the file containing ID/key pairs for
# NTP authentication.
keyfile /etc/chrony/chrony.keys

# This directive specify the file into which chronyd will store the rate
# information.
driftfile /var/lib/chrony/chrony.drift

# Uncomment the following line to turn logging on.
#log tracking measurements statistics

# Log files location.
logdir /var/log/chrony

# Stop bad estimates upsetting machine clock.
maxupdateskew 100.0

# This directive enables kernel synchronisation (every 11 minutes) of the
# real-time clock. Note that it can’t be used along with the 'rtcfile' directive.
rtcsync

# Step the system clock instead of slewing it if the adjustment is larger than
# one second, but only in the first three clock updates.
makestep 1 3

Procedimiento:

Previo a la ejecución de cualquier receta es conveniente hacer una prueba de vuelo con el parámetro «–check».

En este caso quería asegurarme de que la receta no impacte en el servidor rbpi3-001 que es mi servidor NTP. (Si fallaba la instalación de «chrony» implicaba remover el paquete NTPSEC).

ansible-playbook /etc/ansible/utils/chrony.yml --check
Prueba de ejecución de un playbook.

En la salida de la prueba detecto que el equipo alphaprime.sismonda.local esta fuera de línea. Y en el resumen veo que el equipo rbpi3-001 fue eximido de la corrida.

Sí la ejecución del chequeo fue exitosa podemos aplicar los cambios ejecutando el comando sin el –check.

ansible-playbook /etc/ansible/utils/chrony.yml

Es siempre conveniente verificar que el demonio este funcionando en forma correcta, debemos ejecutar el siguiente comando en nuestro servidor ansible.

ansible all -a "chronyc sources"
La salida del comando, da error mi ntp server que no tiene este servicio en ejecución.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.