Vagrant, Cisco IOS, Ansible, Часть 1

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

Print Friendly, PDF & Email
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments