Introduzione
In questo documento viene descritto come usare i comandi batch per salvare una configurazione da un accessorio in un cluster su Cisco Email Security Appliance (ESA). Può essere utilizzato su tutte le versioni di AsyncOS per ESA.
Nelle versioni precedenti a AsyncOS 8.5, gli accessori del cluster non potevano salvare una configurazione utilizzabile per il ripristino di una configurazione su un Cisco ESA. Per ottenere una configurazione utilizzabile dall'accessorio, è necessario rimuovere l'accessorio dal cluster e salvare la configurazione come accessorio autonomo.
Prerequisiti
Nota: questo articolo è una prova di concetto e viene fornito come base di esempio. Benché questi passaggi siano stati testati con successo, il presente articolo è destinato principalmente a scopi dimostrativi e illustrativi. Gli script personalizzati non rientrano nell'ambito e nella supportabilità di Cisco. Il Technical Assistance Center di Cisco non è in grado di scrivere, aggiornare o risolvere i problemi relativi agli script esterni personalizzati in alcun momento. Prima di provare a creare uno script, accertatevi di disporre delle conoscenze necessarie per creare lo script finale.
Raccogliere queste informazioni dalle ESA in cluster:
- indirizzi IP e/o nome host
- Nome cluster
- Nome gruppo cluster (se applicabile)
Per la versione di AsyncOS for Email Security in uso, consultare la CLI Reference Guide, in quanto sono presenti modifiche batch CLI che dipendono dalla revisione eseguita dall'ESA.
Leggere e comprendere le seguenti note tecniche:
Automazione o creazione di script per il backup di un file di configurazione di un accessorio in un cluster
Per le versioni AsyncOS precedenti alla versione 8.5, quando si tenta di salvare la configurazione in un cluster con il comando saveconfig o mailconfig, ESA genera questo avviso:
WARNING: Clustered machines do not support loadconfig. Your configuration file has
complete data for the entire cluster, but cannot be used to restore a configuration.
[an error occurred while processing this directive]
In AsyncOS versione 8.5 e successive, le configurazioni salvate ora contengono sia la configurazione a livello di computer che la configurazione del cluster. Questo argomento è descritto in dettaglio nella Guida dell'utente versione 8.5 e successive. Fare riferimento alle Guide per l'utente finale per ulteriori informazioni.
Non è necessario eseguire il backup della configurazione di ciascun accessorio di un cluster. In una rete potrebbero tuttavia essere presenti più cluster, con più gruppi configurati per ogni cluster. È piuttosto difficile rimuovere ogni appliance dal cluster, quindi salvare la configurazione e riunirla di nuovo manualmente al cluster.
Questi comandi possono essere usati se si accede all'ESA, si rimuove l'ESA dal cluster, si salva o si invia la configurazione per posta, quindi si torna a unirsi al cluster.
Per iniziare, è importante conoscere il nome del computer e il numero di serie delle ESA nel cluster e il nome del gruppo. È possibile ottenere questo risultato immettendo il comando clusterconfig list sulla CLI:
(Cluster ESA1_ESA2)> clusterconfig list
Cluster esaA_esaB
=====================
Group Main_Group:
Machine ESA1.local (Serial #: 0000E878109A-G091111)
Machine ESA2.local (Serial #: 0000E878525D-9091111)
[an error occurred while processing this directive]
Per rimuovere l'accessorio dal cluster, usare il comando clusterconfig removemachine <nome accessorio>:
(Cluster ESA1_ESA2)> clusterconfig removemachine ESA1.local
Please wait, this operation may take a minute...
Machine ESA1.local removed from the cluster.
[an error occurred while processing this directive]
Con il comando saveconfig, salvare la configurazione sull'accessorio con una password. Come detto, "I file con password nascoste non possono essere caricati usando il comando loadconfig." Assicurarsi quindi di immettere N quando richiesto:
ESA1.local> saveconfig
Do you want to mask the password? Files with masked passwords cannot be loaded
using loadconfig command. [Y]> n
File written on machine "esaA.local" to the location
"/configuration/C100V-0000E878109A-G091111-20140909T184724.xml".
Configuration saved.
[an error occurred while processing this directive]
In alternativa, usare mailconfig per inviare la configurazione tramite e-mail a un destinatario valido. Come detto, "I file con password nascoste non possono essere caricati usando il comando loadconfig." Assicurarsi quindi di immettere N quando richiesto:
ESA1.local> mailconfig
Please enter the email address to which you want to send the configuration file.
Separate multiple addresses with commas.
[]> joe@example.com
Do you want to mask the password? Files with masked passwords cannot be loaded
using loadconfig command. [Y]> n
The configuration file has been sent to joe@example.com.
[an error occurred while processing this directive]
Utilizzare infine il comando clusterconfig batch per collegare nuovamente l'accessorio al cluster:
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Per continuare con l'esempio precedente, eseguire questo comando:
esaA.local> clusterconfig join --port=22 172.16.6.161 admin ironport Main_Group
Joining a cluster takes effect immediately, there is no need to commit.
(Cluster ESA1_ESA2)>
[an error occurred while processing this directive]
Si noterà la modifica automatica del prompt dei comandi nel nome a livello di cluster, come indicato nell'esempio precedente come "Cluster ESA1_ESA2)".
Backup avanzati automatizzati o basati su script dei file di configurazione
Da un host esterno (UNIX/Linux/OSX), è possibile utilizzare i comandi precedenti per eseguire lo script del processo.
Di seguito è riportato un esempio dell'intero processo scritto nello script, con il presupposto che il cluster venga eseguito su Secure Shell (SSH), porta 22:
#! /bin/bash
#
# Script to save the ESA config, then copy locally via SCP. This is assuming you
wish to
# have the cluster in SSH via port 22. This script has been written and tested against
# AsyncOS 9.0.0-390 (01/15/2014).
#
# *NOTE* This script is a proof-of-concept and provided as an example basis. While
these steps have
# been successfully tested, this script is for demonstration and illustration purposes.
Custom
# scripts are outside of the scope and supportability of Cisco. Cisco Technical
Assistance will
# not write, update, or troubleshoot custom external scripts at any time.
#
# <SCRIPT>
#
# $HOSTNAME & $HOSTNAME2 can be either the FQDN or IP address of the ESAs in cluster.
#
HOSTNAME= [IP/HOSTNAME ESA1]
HOSTNAME2= [IP/HOSTNAME ESA2]
#
# $MACHINENAME is the local name for ESA1.
#
MACHINENAME= [MACHINENAME AS LISTED FROM 'clusterconfig list']
#
# $USERNAME assumes that you have preconfigured SSH key from this host to your ESA.
# http://www.cisco.com/c/en/us/support/docs/security/email-security-appliance/
118305-technote-esa-00.html
#
USERNAME=admin
#
# $BACKUP_PATH is the directory location on the local system.
#
BACKUP_PATH= [/local/path/as/desired]
#
# Following will remove ESA1 from cluster in order to backup standalone config.
# "2> /dev/null" at the end of string will quiet any additional output of the
clustermode command.
#
echo "|=== PHASE 1 ===| REMOVING $MACHINENAME FROM CLUSTER"
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
#
# $FILENAME contains the actual script that calls the ESA, issues the 'saveconfig'
command.
# The rest of the string is the cleanup action to reflect only the <model>-
<serial number>-<timestamp>.xml.
#
echo "|=== PHASE 2 ===| BACKUP CONFIGURATION ON ESA"
FILENAME=`ssh -q $USERNAME@$HOSTNAME "saveconfig y 1" | grep xml | sed -e
's/\/configuration\///g' | sed 's/\.$//g' | tr -d "\""`
#
# The 'scp' command will secure copy the $FILENAME from the ESA to specified
backup path, as entered above.
# The -q option for 'scp' will disable the copy meter/progress bar.
#
echo "|=== PHASE 3 ===| COPY XML FROM ESA TO LOCAL"
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
#
# Following will re-add ESA1 back into cluster.
#
echo "|=== PHASE 4 ===| ADDING $MACHINENAME BACK TO CLUSTER"
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
#
echo "|=== COMPLETE ===| $FILENAME successfully saved to $BACKUP_PATH"
#
# </SCRIPT>
#
[an error occurred while processing this directive]
Di seguito è riportato un esame dei comandi principali incorporati nello script:
- Rimuovere ESA1 dal cluster:
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Scarica file di configurazione autonomo:
FILENAME=`ssh -q $USERNAME@$HOSTNAME "saveconfig y 1" | grep xml | sed -e 's/
\/configuration\///g' | sed 's/\.$//g' | tr -d "\""`
[an error occurred while processing this directive]
- Copiare il codice XML da ESA1 all'host locale:
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Reinserire ESA1 nel cluster.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Di seguito è riportato un esempio completo dello script in azione:
my_host$ ./cluster_backup
|=== PHASE 1 ===| REMOVING ESA1.local FROM CLUSTER
Please wait, this operation may take a minute...
Machine ESA1.local removed from the cluster.
|=== PHASE 2 ===| BACKUP CONFIGURATION ON ESA
|=== PHASE 3 ===| COPY XML FROM ESA TO LOCAL
|=== PHASE 4 ===| ADDING ESA1.local BACK TO CLUSTER
Joining a cluster takes effect immediately, there is no need to commit.
|=== COMPLETE ===| C100V-0000E878109A-G091111-20150116T192955.xml successfully
saved to /Users/saved_esa_configurations/
[an error occurred while processing this directive]
Informazioni correlate