GNU/Linux >> Tutoriels Linux >  >> Linux

RCRON – Configuration de la haute disponibilité des tâches cron

rcron est un outil puissant qui aide les administrateurs système à configurer la redondance des tâches cron et le basculement sur des groupes de machines. RCRON garantit qu'une tâche installée sur plusieurs machines ne s'exécutera que sur la machine active à tout moment.

Fonctionnement du RCRON

Haute disponibilité utilisant RCRON (un nœud sera estampillé comme actif et le deuxième nœud sera estampillé comme passif), la même configuration cron sera sur les deux, la seule différence serait l'état actif/passif dans un fichier.

Pour la commutation automatique de l'état actif/passif, nous utiliserons le démon KEEPALIVED, qui utilise le signal keepalive pour la communication entre 2 nœuds. Après l'envoi d'un signal, si aucune réponse n'est reçue, le lien est considéré comme inactif.

Dans ce scénario, un nœud est marqué comme maître KEEPALIVED et le second comme sauvegarde KEEPALIVED. Le nœud maître gardera l'état rcron actif et le nœud de sauvegarde gardera l'état rcron passif. Dès que le nœud maître descend, il enverra un signal de priorité 0 au nœud de sauvegarde, qui basculera et se comportera comme un nœud maître et marquera consécutivement rcron comme actif dès que le nœud maître se rallumera, le nœud de sauvegarde passera en mode sauvegarde.

Étapes d'installation et de configuration de RCRON sur CentOS/RHEL

Dans mon scénario, j'ai deux machines Linux, l'une est principale et la seconde est esclave.

Étape 1 :Activez le transfert IP sur les deux nœuds. Modifiez le fichier /etc/sysctl.conf et effectuez les modifications ci-dessous

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

Étape 2 :Ajoutez le référentiel EPEL sur les deux nœuds.

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

Étape 3 :Installez les packages nécessaires sur les deux nœuds.

# yum install subversion byacc flex gcc

Étape 4  :Si vous obtenez Internet à partir du serveur proxy, définissez http_proxy pour 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

Étape 5 :Si nous obtenons une connexion Internet directement, ignorez les paramètres de proxy. Téléchargez le logiciel rcron depuis SVN.

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

Étape 6 :Créez le répertoire sur les deux nœuds.

# 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

Sur le nœud maître, exécutez les commandes ci-dessous :

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

Sur le nœud esclave, exécutez les commandes ci-dessous :

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

Étape 7 :Installez maintenant le package keepalive sur les deux nœuds.

a) Téléchargez la dernière archive tar source :

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

b) Installez le package RPM BUILD :

# yum -y install rpm-build

c) Décompressez la boule de tar et modifiez le fichier 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/

remplacer de la version 1.2.2 à la version : 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

La commande ci-dessus créera un RPM compilé à partir de la source à l'emplacement :

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

Installez maintenant rpm avec la commande rpm :

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

Étape 8 :SETUP la configuration keepalive.

Pour le nœud maître, configurez ce qui suit :

# 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"
}

Pour le nœud de secours :

# 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"
}

Où "172.16.243.145" et "172.16.243.144" sont l'adresse IP des machines Linux.

Étape 9  :Créer un exemple d'entrée crontab sur le maître et l'esclave.

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

Démarrez le service Keepalive sur les deux nœuds :

# service keepalived start ; chkconfig keepalived on

Remarque :Au cas où le démon keepalived serait tué, nous allons créer un script crontab.

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

Contenu du script :

# 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. Tâches Cron / Tâches automatisées

  2. Dépannage des tâches Cron

  3. Comment supprimer des tâches cron

  4. Utiliser les tâches CRON pour visiter l'url ?

  5. Comment obtenir une liste de toutes les tâches cron planifiées sur ma machine ?

Haute disponibilité Pfsense

Tâches Cron planifiées

Comment configurer Redis pour une haute disponibilité avec Sentinel dans CentOS 8 - Partie 2

Cron Jobs et Crontab sur Linux expliqués

Comment configurer et gérer les tâches Cron dans cPanel

Tolérance aux pannes Linux :haute disponibilité Linux