Inleiding
Dit document beschrijft hoe u batchopdrachten moet gebruiken om een configuratie uit een apparaat in een cluster op de Cisco Email Security Applicatie (ESA) op te slaan. Dit kan worden gebruikt op alle versies van AsyncOS voor ESA.
Vóór AsyncOS versie 8.5 konden geclusterde apparaten geen bruikbare configuratie opslaan die moet worden gebruikt om een configuratie op een Cisco ESA te herstellen. Om een bruikbare configuratie uit het apparaat te krijgen, moest u het apparaat uit een cluster verwijderen en de configuratie als een standalone apparaat opslaan.
Voorwaarden
Opmerking: Dit artikel is een proof-of-concept en wordt als voorbeeld gegeven. Hoewel deze stappen met succes zijn getest, is dit artikel voornamelijk bedoeld voor demonstratie- en illustratiedoeleinden. Aangepaste scripts vallen buiten het bereik en de ondersteunbaarheid van Cisco. Het Cisco Technical Assistance Center zal op geen enkel moment aangepaste externe scripts schrijven, bijwerken of problemen oplossen. Alvorens u probeert en om het even welke scripts construeert, zorg ervoor dat u scripting kennis wanneer u het definitieve script construeert hebt.
Verzamel deze informatie van de ESA's in cluster:
- IP-adressen en/of hostnaam
- Clusternaam
- Naam clustergroep (indien van toepassing)
Raadpleeg de CLI Reference Guide voor uw versie van AsyncOS voor e-mail security, omdat er CLI batch veranderingen zijn die afhankelijk zijn van de herziening die uw ESA uitvoert.
Lees en begrijp deze TechNotes:
Automatiseer of scripts voor een back-up van configuratiebestanden van een applicatie in een cluster
Voor versies van AsyncOS eerder dan versie 8.5, wanneer u probeert de configuratie op te slaan terwijl u in het cluster zit met de opdracht saveconfig of mailconfig, genereert de ESA deze waarschuwing:
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 versie 8.5 en hoger bevatten opgeslagen configuraties nu zowel de configuratie op machineniveau als de clusterconfiguratie. Dit wordt in detail behandeld in versie 8.5 en de latere gebruikersgids. Raadpleeg de eindgebruikershandleidingen voor meer informatie.
Er is geen noodzaak om een back-up te maken van de configuratie voor elk apparaat in een cluster. Er kunnen echter meerdere clusters in een netwerk zijn, waarbij voor elke cluster meerdere groepen worden geconfigureerd. Het is vrij moeilijk om elk apparaat uit het cluster te verwijderen en vervolgens de configuratie op te slaan en het cluster weer handmatig te verenigen.
Deze opdrachten kunnen worden gebruikt als u zich aanmeldt bij de ESA, de ESA uit het cluster verwijdert, de configuratie opslaat of verstuurt en zich vervolgens weer bij het cluster aansluit.
Om te beginnen is het belangrijk de machinenaam en het serienummer van de ESA's in het cluster en de groepsnaam te kennen. Dit kan worden verkregen als u clusterconfig-lijst op de CLI invoert:
(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]
Als u het apparaat uit een cluster wilt verwijderen, gebruikt u de opdracht ClusterConfig removemachine <apparaatnaam>:
(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]
Sla de configuratie met de opdracht saveconfig met wachtwoorden op het apparaat op. Zoals opgemerkt, kunnen "Bestanden met gemaskeerde wachtwoorden niet worden geladen met de opdracht loadconfig." Voer dus N in als hierom wordt gevraagd:
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]
U kunt ook mailconfig gebruiken om de configuratie naar een geldige e-mailontvanger te e-mailen. Zoals opgemerkt, kunnen "Bestanden met gemaskeerde wachtwoorden niet worden geladen met de opdracht loadconfig." Voer dus N in als hierom wordt gevraagd:
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]
Gebruik tot slot de opdracht clusterconfiguratie-batch om het apparaat terug te voegen naar het cluster:
clusterconfig join [--port=xx] <ip_of_remote_cluster> <admin_username>
<admin_password> <groupname>
[an error occurred while processing this directive]
Om met het vorige voorbeeld verder te gaan, wordt dit uitgevoerd in deze opdracht:
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]
U zult merken dat de opdrachtprompt automatisch wordt gewijzigd in de naam op clusterniveau, zoals in het vorige voorbeeld is aangegeven als "Cluster ESA1_ESA2)".
Geavanceerd geautomatiseerd of gescripts voor back-ups van configuratiebestanden
Vanaf een externe host (UNIX/Linux/OSX) kunt u de vorige opdrachten gebruiken om het proces te kunnen script.
Hier is een voorbeeld van het gehele proces dat in het script is geschreven, waarbij ervan wordt uitgegaan dat het cluster via Secure Shell (SSH), poort 22 loopt:
#! /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]
Hier is een onderzoek van de belangrijkste opdrachten die in het script zijn ingesloten:
- Verwijder ESA1 uit het cluster:
ssh $USERNAME@$HOSTNAME "clustermode cluster; clusterconfig removemachine
$MACHINENAME" 2> /dev/null
[an error occurred while processing this directive]
- Standalone configuratiebestand downloaden:
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]
- Kopieer de XML van ESA1 naar de lokale host:
scp -q $USERNAME@$HOSTNAME:/configuration/$FILENAME $BACKUP_PATH
[an error occurred while processing this directive]
- Zet ESA1 terug in het cluster.
ssh $USERNAME@$HOSTNAME "clusterconfig join $HOSTNAME2 admin ironport
Main_Group" 2> /dev/null
[an error occurred while processing this directive]
Een volledig voorbeeld van het script in actie zou in dit moeten resulteren:
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]
Gerelateerde informatie