Rancid – Juniper Junos – OpenNMS

Posted: 18th Juni 2012 by Thorben Hemmler in CentOS, Serveradministration
Tags: , ,

Hier ein kleiner „Trick“, wie man die mit Rancid gesicherte Config einer Juniper besser wieder einspielen kann. In diesem Fall nutzen wir die Option „display set„. Das sieht dann in etwa so aus:

In meinem Fall muss die Datei „/usr/local/rancid/bin/jrancid“ geändert werden.

# This routine parses "display set"
sub ShowConfigurationSet {
    print STDERR "    In display set: $_" if ($debug);
    print "\n";  
    print "-----------------------------------------------\n";
    print "\n";
    s/^[a-z]+@//;
    ProcessHistory("","","","# $_");
    while (<INPUT>) {
        tr/\015//d;  
        last if (/^$prompt/);
        return 1 if (/^aborted!/i);
        next if (/^system (shutdown message from|going down )/i);
        next if (/^\{(master|backup)}/);

        /error: the chassis subsystem is not running/ && return;
        /Couldn\'t initiate connection/ && return;
        /Unrecognized command/ && return;
        /command is not valid/ && return;
        /^\s+\^/ && return;
        /syntax error/ && return;

        ProcessHistory("","","","$_");
    }
    return(0);
}

Damit die Routine aktiv geschaltet wird, muss noch folgender Eintrag ergänzt werden.

# Main
@commandtable = (
        {'show configuration | display set | no-more'           => 'ShowConfigurationSet'}
);

Das Ergebnis sieht dann in etwa so aus. Man kann dann ganz einfach per copy & paste die Konfiguration einspielen.

set system host-name switch-4711
set system domain-name test.local  
set system domain-search domain.com
set system time-zone Europe/Berlin
set system authentication-order tacplus
...
...
  1. Wolfgang sagt:

    Guter Trick. Der Text kann als so eine Art Tutorial dienen. Meine Juniper werden sich auf neue Tests freuen können. Danke für den Artikel. Er hat bei mir ein bisschen Klarheit geschaffen.