cancel
Showing results for 
Search instead for 
Did you mean: 

how to rollback configuration

how to rollback configuration

choi_seonghyeon
New Contributor
I would like to restore the configuration in such a way that I can not enter the command incorrectly and reboot.

Is there a way to recover settings during operation?

For example, I want to know commands such as Juniper's rollback and cisco's replace rollback.

thanks.
5 REPLIES 5

Drew_C
Valued Contributor III
You can always
code:
enable cli-config-logging
to keep up with commands run through the CLI.
There's also the CLI Journal, introduced in 22.1.

These features at least let you know what has been done so you can undo them.

Alexandr_P
Valued Contributor
Hi!

Long time ago was script.
The entered command is applied immediately and a timer is started, after which it is asked whether to apply the change or not, if no response is received, the command is canceled. With the rollback command, you can immediately roll back the changes.

(Take in mind, that I wasn't tried this script  )

****************************

— You must enclose the next two commands in double quotes —

Enter Backout Command e.g. «disable port 1:1»

«disable port 25»

Enter Commit Command e.g. «enable port 1:1» [THIS WILL EXECUTE]

«enable port 25»

enable port 25 has been executed

A delay of 10000 miliseconds has been started

A delay of 10000 miliseconds has been stopped

Do you want to commit? y/N e.g. «y»

n

disable port 25 has been executed because a commit of y was not set

Notes

*******************************

- A delay variable is used to allow the commit command to finish. Set

this delay preference in miliseconds

- The idletimeout variable is used in the event the commit command terminates

your session. Set this idletimeout variable preference in seconds

- This script dynamically creates a failsafe upm profile. This profile is used

only in the event you were to lose your session with the switch

- The failsafe upm profile is only triggered from failsafe log filter. This

log filter is unique to your session IP address.

Credits: jpadilla@extremenetworks.com

Any issues please report the bug in the ExtremeXOS Forum.

Скрипт:

#@MetaDataStart

#@DetailDescriptionStart

###############################################################################

# Extreme Networks® CLI Script

#

# Script : commit.xsf

# Revision : 1.0

# Last Updated : 2010, July 21st

# Purpose : This script executes a backout command in the event

# your commit command fails or you were to lose your

# telnet/ssh session.

# Author : jpadilla@extremenetworks.com, Extreme Extensibility Team

# Contact : info@extremenetworks.com

# Contact : www.ethernation.net (ExtremeXOS Forums)

###############################################################################

# Change Log:

# 1.0 — 2010, July 21st

# * First Revision

###############################################################################

###############################################################################

#@DetailDescriptionEnd

enable cli scripting

disable cli-config-logging

disable clipaging

create log entry «**********Starting CLI Script**********»

###############################################################################

#@ScriptDescription «Short Script Description»

#@VariableFieldLabel «When this script encounters errors, do you wish to abort or ignore (abort or ignore)»

set var ynCliModeAbortEnabled ignore

#@SeparatorLine

# Begin custom variable definitations

# Set the amount of time in miliseconds to allow the command to take affect

set var delay 10000

set var idletimeout 1

# End of custom variable definitations

#@MetaDataEnd

###############################################################################

# CONFIGURATION DETAIL

###############################################################################

# ERROR HANDLING

###############################################################################

if (!$match($ynCliModeAbortEnabled,ignore)) then

create log entry «CLI mode set for Ignore on error»

configure cli mode scripting ignore-error

else

create log entry «CLI mode set for abort on error»

configure cli mode scripting abort-on-error

endif

###############################################################################

# Start of CLI Script (Enter the custom script code below)

###############################################################################

set var blank «»

show var blank

set var comment « — You must enclose the next two commands in double quotes — »

show var comment

show var blank

set var backout $READ(Enter Backout Command e.g. «disable port 1:1»)

save var key red backout

show var blank

# Verify we don't already have a failsafe upm

set var CLI.OUT «»

show upm profile

set var inputA $TCL(list ${CLI.OUT})

set var listA $TCL(split $inputA «\n»)

set var countA $TCL(llength $listA)

set var icountBack ($countA — 0)

set var icount 0

while ($icount < $icountBack) do

set var findIt $TCL(lindex $listA $icount)

set var findUPM $TCL(regexp {failsafe} $findIt)

if ($findUPM == 1) then

delete upm profile failsafe

endif

set var icount ($icount + 1)

endwhile

# create a failsafe upm

# make sure there is no space before the «.» below

create upm profile failsafe

load var key red backout

$(backout)

create log entry «UPM failsafe has executed $(backout)»

configure idletimeout 20

disable log target upm «failsafe»

delete log target upm «failsafe»

delete log filter «failsafe»

delete var key red

.

# The above «.» should not have a space before it!

# Grab the session IP Address

set var CLI.OUT «»

show session

set var inputA $TCL(list ${CLI.OUT})

set var listA $TCL(split $inputA «\n»)

set var countA $TCL(llength $listA)

set var icountBack ($countA — 0)

set var icount 0

while ($icount < $icountBack) do

set var findIt $TCL(lindex $listA $icount)

set var findSessionIP $TCL(regexp {(\*[0-9]{1,}\s+.*.\s+)([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})} $findIt)

if ($findSessionIP == 1) then

set var ipOnly $TCL(regexp -inline {(\*[0-9]{1,}\s+.*.\s+)([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})} $findIt)

set var value1 $TCL(lindex $ipOnly 2)

endif

set var icount ($icount + 1)

endwhile

# Create the failsafe log filter

create log filter failsafe

configure log filter failsafe add events AAA.logout match string «$(value1)»

create log target upm failsafe

enable log target upm failsafe

configure log target upm failsafe filter failsafe severity Info

configure log target upm failsafe match Any

set var command $READ(Enter Commit Command e.g. «enable port 1:1» [THIS WILL EXECUTE])

show var blank

# set upm timer so we can execute the failsafe upm in a timely manner

configure idletimeout $idletimeout

enable idletimeout

$(command)

set var comment «$(command) has been executed»

show var comment

create log entry «$(command)»

set var comment «A delay of $(delay) miliseconds has been started»

show var comment

set var wait $TCL(after $delay)

set var comment «A delay of $(delay) miliseconds has been stopped»

show var comment

set var commit $READ(Do you want to commit? y/N e.g. «y»)

set var search $TCL(regexp {y} $commit)

if ($search == 1) then

show var blank

set var comment «You have successfully commit the $(command) command»

show var comment

else

$(backout)

set var comment «$(backout) has been executed because a commit of y was not set»

show var comment

create log entry «$(backout) has been executed because a commit of y was not set»

endif

configure idletimeout 20

disable log target upm «failsafe»

delete log target upm «failsafe»

delete log filter «failsafe»

delete var key red

delete upm profile failsafe

if ($VAREXISTS(delay)) then

delete var delay

endif

if ($VAREXISTS(backout)) then

delete var backout

endif

if ($VAREXISTS(command)) then

delete var command

endif

if ($VAREXISTS(wait)) then

delete var wait

endif

if ($VAREXISTS(search)) then

delete var search

endif

if ($VAREXISTS(CLI.OUT)) then

delete var CLI.OUT

endif

if ($VAREXISTS(inputA)) then

delete var inputA

endif

if ($VAREXISTS(verify)) then

delete var verify

endif

if ($VAREXISTS(blackout)) then

delete var blackout

endif

if ($VAREXISTS(blank)) then

delete var blank

endif

if ($VAREXISTS(comment)) then

delete var comment

endif

if ($VAREXISTS(commit)) then

delete var commit

endif

if ($VAREXISTS(verifyCommand)) then

delete var verifyCommand

endif

if ($VAREXISTS(failsafe)) then

delete var failsafe

endif

if ($VAREXISTS(idletimeout)) then

delete var idletimeout

endif

if ($VAREXISTS(ynCliModeAbortEnabled)) then

delete var ynCliModeAbortEnabled

endif

###############################################################################

# End of CLI Script

###############################################################################

create log entry «**********Finished running CLI Script**********»

enable clipaging

enable cli-config-logging

disable cli scripting

hi

Can I rollback using a script only?

Is it necessary to press y in commit to rollback?

Apart from the separate rollback scripts, are there any commands available right away?

davidj_cogliane
Contributor
If you are working on XOS, I do not believe that is possible.

You will have to change things back. Do you perhaps have a backup that you can pull the lines out of?
GTM-P2G8KFN