Vagrant поддерживает установку следующих версий Cisco IOS: vIOS из VIRL и Cisco IOS-XE CSR-1000v. Ниже приводится описание установки Cisco vIOS с использованием Vmware Fusion, но также возможно установка и с использованием VirtualBox. Полное описание установки можно посмотреть на сайте Binary Nature для CSR 1000v и для vIOS. Ниже описана краткая процедура создания образ Cisco vIOS для Vagrant: Создаем виртуальную машину “Other 64-bit”, сохраняем например, как IOSv-L3-156-2. И меняем некоторые настройки для виртуальной машины:
- Processors 1 processor core
- Memory 512 MB
- Network Adapter Share with my Mac
- Hard Disk (IDE) выбираем образ vIOS: vios-adventerprisek9-m.vmdk.SPA.156-2.T.vmdk
- CD/DVD (IDE) Remove CD/DVD Drive
- Sound Card Remove Sound Card
- USB & Bluetooth Remove USB Controller
Добавляем на стройки serial в файл vmx VM:
serial0.present="TRUE"
serial0.yieldOnMsrRead="TRUE"
serial0.fileType="network"
serial0.fileName="telnet://127.0.0.1:52099"
Запускаем VM командой:
vmrun start ~/Virtual Machines.localized/IOSv-L3-156-2.vmwarevm/IOSv-L3-156-2.vmx nogui
Заходим в консоль роутера и добавляем следущий конфигурацию:
conf t
username vagrant privilege 15 secret vagrant
aaa new-model
aaa authentication login VTYS local
aaa authorization exec VTYS local
no ip domain-lookup
line con 0
privilege level 15
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
no exec-banner
exec-timeout 0 0
logging synchronous
login authentication VTYS
authorization exec VTYS
transport input ssh
exit
int g1
shut
ip addr dhcp
no cdp enable
no shut
exit
ip domain-name example.com
ip ssh version 2
ip ssh rsa keypair-name SSHKEYS
crypto key generate rsa usage-keys label SSHKEYS modulus 1024
ip scp server enable
ip ssh pubkey-chain
username vagrant
key-hash ssh-rsa DD3BB82E850406E9ABFFA80AC0046ED6
exit
end
wr mem
При работе в Vagrant необходимо будет добавлять интерфейсы, после чего надо будет заново создавать ключи для ssh, для этого используется EEM скрипт:
conf t
event manager session cli username vagrant
event manager applet EEM_SSH_Keygen authorization bypass
event syslog pattern SYS-5-RESTART
action 0.0 info type routername
action 0.1 set status none
action 1.0 cli command enable
action 2.0 cli command "show ip ssh | include ^SSH"
action 2.1 regexp "([ED][^ ]+)" \$_cli_result result status
action 2.2 syslog priority informational msg "SSH is currently \$status"
action 3.0 if \$status eq Disabled
action 3.1 cli command "configure terminal"
action 3.2 cli command "crypto key generate rsa usage-keys label SSHKEYS modulus 1024"
action 3.3 cli command "end"
action 3.4 cli command "copy run start"
action 3.5 syslog priority informational msg "SSH keys generated by EEM"
action 4.0 end
end
Останавливаем VM
vmrun stop ~/Virtual Machines.localized/IOSv-L3-156-2.vmwarevm/IOSv-L3-156-2.vmx
Переходим в директорию VM и меняем некоторые настройки виртуальной машины
cd $HOME/Virtual\ Machines.localized/IOSv-L3-156-2.vmwarevm
sed -i '' '/generatedAddress/d' IOSv-L3-156-2.vmx
sed -i '' '/uuid/d' IOSv-L3-156-2.vmx
printf '{"provider": "vmware_desktop"}' > metadata.json
tar cvzf cisco-iosv-l3-156-2.box ./*
vagrant box add --provider vmware_desktop --name cisco-iosv-l3-156-2 cisco-iosv-l3-156-2.box
Теперь можно скачать образец vagrant файла и создать лабу на основе vIOS:
curl -Lo Vagrantfile https://raw.githubusercontent.com/mweisel/vagrant-vmware-examples/master/cisco-iosv-l3-single-mgmt-int