








Автоматизация настроек Cisco по шаблону
Ubuntu 12.04+Expect1. Задача:
1.1. Автоматизировать настройку множества устройств Cisco по шаблону.
2.Исходная система:
2.1.Установлена система Ubuntu 12.04 LTS Server;
2.2.Имеется логин и пароль от учетной записи root;
3.Этапы решения:
3.1.Устанавливаем необходимых утилиты:
apt-get install expect
3.2.Решение состоит из 3х файлов которые расположены в одной и той же папке:
3.2.1. Решение состоит из 3х файлов которые расположены в одной и той же папке:
3.2.1. ssh.sh – главный файл который запускает весь процесс автоматической настройки по шаблону. Данный файл содержит:
#!/bin/bash
SCRIPT=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
SCRIPTPATH=$(dirname "$SCRIPT") #задает переменной SCRIPTPATH путь к текущему файлу
echo $SCRIPTPATH
while read ipadd
do
#echo $ipadd
export ipadd
$SCRIPTPATH/enableint.sh $ipadd #запускаем скрипт изменения конфигурации и передаем ей переменную IP адрес
done < $SCRIPTPATH/IP-list #снимаем построчно IP адреса устройств, чьи конфигурации надо изменить по шаблону
3.2.2. IP-list – список IP адресов устройств чьи настройки следует изменить с помощью шаблона. Данный файл содержит:
IP_ADDRESS1
IP_ADDRESS2
…
IP_ADDRESSn
3.2.3. 3.2.3. enableint.sh – скрипт который непосредственно подключается к устройству и вводит в него изменения конфигурации. Данный файл содержит:
#!/usr/bin/expect -f
set timeout 20
set IPaddress [lindex $argv 0] #задаем переменной IPaddress IP адрес, который был указан при запуске текущего скрипта как переменная
set Username "USERNAME" #задаем логин
set Password "PASSWORD" #задаем пароль
set Directory /home/Desktop/logs
#log_file -a $Directory/session_$IPaddress.log
send_log "### /START-SSH-SESSION/ IP: $IPaddress @ [exec date] ###\r"
spawn ssh -o "StrictHostKeyChecking no" $Username@$IPaddress
expect "*assword: "
send "$Password\r"
expect "*>"
send "enable\r"
expect "*assword: "
send "$Password\r"
expect "*#"
send "conf t\r"
expect "*)#"
send "КОМАНДА\r"
expect "*)#"
…
send "КОМАНДА\r"
expect "*)#"
send "do wr mem\r"
sleep 1
send_log "\r### /END-SSH-SESSION/ IP: $IPaddress @ [exec date] ###\r"
3.3.Задаем право на запуск скрипта:
chmod 111 ПУТЬ_ДО_СКРИПТА/ssh.sh
3.4.Запуск скрипта
ПУТЬ_ДО_СКРИПТА/ssh.sh