#!/usr/bin/perl -w use strict; use IO::Prompter; my $ok; my ($os, $host, $priv); my ($cmd, $cmc, $style); my ($admin,$adminpw); my ($user,$userpw,$userhash); chdir ("/home/rancid/var/rancid/network/configs"); do { $host = prompt("\nHostname :"); $os = prompt("\nGerätetyp :", -guarantee => [ 'nxos', 'ios', 'asa' ] ); $priv = prompt("\nPrv-Lvl :", -guarantee => [ '0', '15' ] ); $admin = prompt("\nAdmin :"); $adminpw = prompt('Admin Passwort :', -echo => '*'); $style = prompt("\nUser Passwort in Klartext? (Bei nein ein Hash):", -yn1); $user = prompt("\nUser :"); if ($style eq 'y') { $userpw = prompt('User Passwort :', -echo => '*'); } if ($style eq 'n') { $userhash = prompt('User Hash :'); } $ok = prompt("\nEingabe korrekt :", -yn1); } while ($ok eq 'n'); print "\n"; my @files=glob("*"); foreach my $file (@files) { $cmd="clogin -u $admin -p $adminpw -c"; if ($file eq $host) { if ( $os eq 'nxos' ) { $cmc='"conf t\nusername ' . "$user" . ' password 0 ' . "$userpw" . ' role network-admin\n\nend\ncopy run start\n\n"' if($style eq 'y'); $cmc='"conf t\nusername ' . "$user" . ' password 5 ' . "$userhash" . ' role network-admin\n\nend\ncopy run start\n\n"' if($style eq 'n'); print "$file\n"; `$cmd $cmc $file`; #print "$cmd $cmc $file\n"; } if ( $os eq 'ios' ) { $cmc='"conf t\nusername ' . "$user" . " privilege " . "$priv" . " view root password 0 " . "$userpw" . '\n\nend\ncopy run start\n\n"' if($style eq 'y'); $cmc='"conf t\nusername ' . "$user" . " privilege " . "$priv" . " view root password 7 " . "$userhash" . '\n\nend\ncopy run start\n\n"' if($style eq 'n'); print "$file\n"; `$cmd $cmc $file`; #print "$cmd $cmc $file\n"; } if ( $os eq 'asa' ) { $cmc='"conf t\nusername ' . "$user" . ' password ' . "$userpw" . " privilege " . "$priv" . '\n\nend\ncopy run start\n\n"' if ($style eq 'y'); $cmc='"conf t\nusername ' . "$user" . ' password ' . "$userhash" . " encrypted privilege " . "$priv" . '\n\nend\ncopy run start\n\n"' if ($style eq 'n'); print "$file\n"; `$cmd $cmc $file`; #print "$cmd $cmc $file\n"; } } }