Scripting 101 - F5 / Sauvegarde automatique de vos loadbalancers

2 min. lecture

Share

Aujourd'hui nous allons voir comment déployer un script en tâche plannifiée (crontab) pour automatiser les backups de configuration de vos équipements F5. Certains d'entre vous l'auront surement déjà en production ;), mais je tenais à vous faire profiter des mes petites recettes de cuisine maison !

1 - Rappel sur les formats de sauvegarde

Chez F5 nous avons 2 formats de sauvegardes :
  • Le SCF (Single Configuration File, voir SOL#13408) : qui donne un fichier à plat texte concatenant les fichiers :
    • bigip.conf (configuration de loadbalancing)
    • bigip_base.conf (configuration réseau)
    • bigip_gtm.conf (configuration du module GTM = nouveauté depuis V11, ex wideip.conf en V10)
    • bigip_user.conf
    • certaines configurations LINUX
  • Le UCS (User Configuration Set, voir SOL#4423) : qui est une archive TGZ contenant les dossiers/fichiers :
    • /etc (configurations LINUX)
    • /config (configurations, certificats, licence F5)
    • /var/XXX
    • /home
Dans les avantages/inconvénients de chacun, il faut retenir :
  • Le format SCF est plus utile pour industrialiser les configurations des F5, où l'on peut facilement exporter une configuration modèle et modifer les IPs pour la recharger sur un autre boitier. Ce format ne sauvegarde pas : licences, certificats SSL, configuration ASM/WAM.
  • Le format UCS est vraiment destiné à une sauvegarde complète de la plateforme, où l'on retrouvera toutes les configurations, licenses ! et certificats, mais sans les logs ... Ce qui sera utile pour une restauration en cas de RMA.

2 - Script d'automatisation

Vous trouverez en pièce jointe un script qui vous permettra :
  • De générer automatiquement un UCS
  • De définir une période de rotation/concervation des backups
  • De répliquer l'UCS via FTP ou SCP/Rsync
Code source :
#!/bin/bash# Romain MOREL# [email protected]# Script de backup automatique en local + FTP# Version 1.0-FTP# Variables globalesPATH=$PATH:/usr/bin/:/usr/kerberos/bin/DATE=`date +"20%y-%m-%d"`UCS=`/bin/hostname`.$DATE.ucs# Repertoire local de stockage des backupsLOCALBACKUPDIR=/var/local/ucs# Nombre de jours de conservationARCHIVE_DAYS=60# Variables pour l'envoi en FTPFTPSERVER="ftp.mycompany.com"FTPUSER="ftpuser"FTPPASS="ftppass"FTPBACKUPDIR="/f5-backups"# Fonction FTP ftpput(){ ftp -u$1<< END_FTP quote USER $2 quote PASS $3cd$5 put $4 quit END_FTP }# Creation de la sauvegarde locale tmsh save /sys ucs $LOCALBACKUPDIR/$UCScd$LOCALBACKUPDIR# A decommenter pour activer le transfert FTP#ftpput $FTPSERVER $FTPUSER $FTPPASS $UCS $FTPBACKUPDIR# Nettoyage des anciens backups (plus anciens que $ARCHIVE_DAYS) find $LOCALBACKUPDIR -mtime +$ARCHIVE_DAYS| xargs rm -f

3 - Configuration et Installation

Le déploiement est assez simple, il vous suffira de :
  • Editer le code source pour configurer les variables $ARCHIVE_DAYS (nombre de jours de conservation des backups), FTPXXX (informations pour se connecter au serveur FTP distant pour la réplication)
  • Copier le script dans le répertoire /config de votre BIG-IP à l'aide de votre client SCP préféré
  • Mettre le script en crontab grâce aux commandes suivantes :
root@bigip - / # cd /etc/cron.daily root@bigip - /etc/cron.daily# ln -s /config/backup_config.sh
A venir, la version avec réplication en SCP/SFTP (avec paire de clés RSA) pour sécuriser les échanges ! A bientôt ;) Romio

Inscrivez-vous à notre newsletter

Recevez dans votre boîte aux lettres électronique les dernières nouvelles sur la sécurité, des informations et les tendances du marché.

À la une

Plus de nouveautés