GNU/Linux >> Tutoriales Linux >  >> Linux

RCRON:configuración de alta disponibilidad de trabajos cron

rcron es una poderosa herramienta que ayuda a los administradores de sistemas a configurar la redundancia de trabajos cron y la conmutación por error en grupos de máquinas. RCRON asegura que un trabajo instalado en varias máquinas solo se ejecutará en la activa en cualquier momento.

Funcionamiento de RCRON

Alta disponibilidad usando RCRON (un nodo se marcará como activo y el segundo nodo se marcará como pasivo), la misma configuración de cron estará en ambos, la única diferencia sería el estado activo/pasivo en un archivo.

Para el cambio automático de estado activo/pasivo, utilizaremos el demonio KEEPALIVED, que utiliza la señal de actividad para la comunicación entre 2 nodos. Después de enviar una señal, si no se recibe respuesta, se supone que el enlace está caído.

En este escenario, un nodo se marca como maestro KEEPALIVED y el segundo como copia de seguridad KEEPALIVED. El nodo maestro mantendrá el estado rcron activo y el nodo de respaldo mantendrá el estado rcron pasivo. Tan pronto como el nodo maestro se apague, enviará una señal de prioridad 0 al nodo de respaldo, que cambiará y se comportará como un NODO MAESTRO y marcará consecutivamente a rcron como activo tan pronto como el nodo maestro vuelva a funcionar, el nodo de respaldo cambiará al modo de copia de seguridad.

Pasos de instalación y configuración de RCRON en CentOS/RHEL

En mi escenario, tengo dos máquinas Linux, una es primaria y la segunda es esclava.

Paso 1 :habilite el reenvío de IP en ambos nodos. Edite el archivo /etc/sysctl.conf y realice el siguiente cambio

net.ipv4.ip_forward = 1
# sysctl -p      ; Save the Changes without rebooting the Machine

Paso 2 :agregue el repositorio EPEL en ambos nodos.

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

Paso 3 :instale los paquetes necesarios en ambos nodos.

# yum install subversion byacc flex gcc

Paso 4 :si obtiene Internet desde el servidor proxy, configure http_proxy para svn.

# mkdir /root/.subversion/
# vi ~/.subversion/servers
http-proxy-exceptions = *.example.com
http-proxy-host = www.example.com
http-proxy-port = 8080
http-compression = no

Paso 5 :Si obtenemos una conexión a Internet directamente, omita la configuración del proxy. Descarga el software rcron desde SVN.

# cd /root;
# svn co http://rcron.googlecode.com/svn/trunk rcron
# cd rcron/rcron
# ./configure
# make
# make install

Paso 6 :Cree el directorio en ambos nodos.

# mkdir /etc/rcron/
##############################################
For MASTER SERVER Setup RCRON.conf as follows
##############################################
# vi /etc/rcron/rcron.conf
# An arbitrary name
cluster_name        = cluster
# A file containing either the word "active" or the word "passive"
state_file          = /var/run/rcron/state
# The default state in case state_file can't be read
#default_state       = active
syslog_facility     = LOG_CRON
syslog_level        = LOG_INFO
# We can tune jobs niceness/priorities 
nice_level          = 19
+++++++++++++++++++++++++++++++++++++++++++++++
For BACKUP SERVER NODE , Setup RCRON.conf as follows
+++++++++++++++++++++++++++++++++++++++++++++++
vi /etc/rcron/rcron.conf;
# An arbitrary name
cluster_name = cluster
# A file containing either the word "active" or the word "passive"
state_file = /var/run/rcron/state
# The default state in case state_file can't be read
#default_state = passive
syslog_facility = LOG_CRON
syslog_level = LOG_INFO
# We can tune jobs niceness/priorities 
nice_level = 19

En el nodo maestro Ejecutar debajo de los comandos :

# mkdir /var/run/rcron
# touch /var/run/rcron/state
# echo "active" > /var/run/rcron/state

En el nodo esclavo, ejecute los siguientes comandos :

# mkdir /var/run/rcron
# touch /var/run/rcron/state
# echo "passive" > /var/run/rcron/state

Paso 7 :ahora instale el paquete keepalive en ambos nodos.

a) Descargue el tarball fuente más reciente:

# cd /root
# wget http://cgit.luffy.cx/keepalived/snapshot/keepalived-1.2.7.tar.gz

b) Instale el paquete RPM BUILD:

# yum -y install rpm-build

c) Descomprima la bola de alquitrán y edite el archivo keepalived.spec.in:

# tar -zxvf keepalived-1.2.7.tar.gz
# mkdir -p /root/rpmbuild/SOURCES/
# cp /root/keepalived-1.2.7.tar.gz /root/rpmbuild/SOURCES/

reemplazar de la versión 1.2.2 a la versión:1.2.7:

# vi /root/keepalived-1.2.7/keepalived.spec.in
# yum -y install popt*
# cd /root/keepalived-1.2.7
# rpmbuild -ba keepalived.spec.in

El comando anterior creará un RPM compilado desde la fuente en la ubicación:

/root/rpmbuild/RPMS/x86_64/keepalived-1.2.7-5.x86_64.rpm

Ahora instale rpm con el comando rpm:

# rpm -ivh /root/rpmbuild/RPMS/x86_64/keepalived-1.2.7-5.x86_64.rpm

Paso 8 :CONFIGURAR la configuración de keepalived.

Para el nodo principal, configure lo siguiente:

# vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { 
state MASTER 
interface eth0 
lvs_sync_daemon_inteface eth0 
virtual_router_id 31 
priority 101 
advert_int 5
vrrp_unicast_bind 172.16.243.144 
vrrp_unicast_peer 172.16.243.145 
authentication { 
auth_type PASS 
auth_pass 1111
}
notify_backup "/bin/echo passive > /var/run/rcron/state" 
notify_master "/bin/echo active > /var/run/rcron/state" 
notify_fault "/bin/echo passive > /var/run/rcron/state"
}

Para el nodo de respaldo:

# vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP 
interface eth0 
lvs_sync_daemon_inteface eth0
virtual_router_id 31
priority 100 
advert_int 5 
vrrp_unicast_bind 172.16.243.145 
vrrp_unicast_peer 172.16.243.144
authentication { 
auth_type PASS 
auth_pass 1111
}
notify_backup "/bin/echo passive > /var/run/rcron/state" 
notify_master "/bin/echo active > /var/run/rcron/state" 
notify_fault "/bin/echo passive > /var/run/rcron/state"
}

Donde "172.16.243.145" y "172.16.243.144" son la dirección IP de las máquinas Linux.

Paso 9 :Cree una entrada crontab de muestra tanto en el maestro como en el esclavo.

* * * * * /usr/local/bin/rcron --conf /etc/rcron/rcron.conf echo `date` >> /tmp/output

Inicie el servicio Keepalive en ambos nodos:

# service keepalived start ; chkconfig keepalived on

Nota :En caso de que el demonio keepalived muera, vamos a crear un script crontab.

* * * * * * /root/keep-alive-monitor

Contenido del guión:

# cat /root/keep-alive-monitor
#!/bin/sh
echo "test" >> /tmp/monitor;
ps -ef|grep -v grep|grep -i keepalived;
if [ $? -eq 0 ] ; then 
exit 0
else 
echo "passive" > /var/run/rcron/state;
/etc/init.d/keepalived restart;
fi


Linux
  1. Trabajos cron / Tareas automatizadas

  2. Solución de problemas de trabajos cron

  3. Cómo eliminar trabajos cron

  4. Agregar trabajos cron en CWP

  5. ¿Cómo puedo obtener una lista de todos los trabajos cron programados en mi máquina?

Alta disponibilidad de Pfsense

Trabajos cron programados

Cómo configurar Redis para alta disponibilidad con Sentinel en CentOS 8 – Parte 2

Cron Jobs y Crontab en Linux explicados

Cómo configurar y administrar trabajos cron en cPanel

Tolerancia a fallas de Linux:alta disponibilidad de Linux