Guide
Dette er guiden for oppkobling av utstyr
Nødvendigheter: Linux eller WSL
Førstegangsinstallasjon
Før du kan komme i gang og og administere Cisco-laben må du installere Ansible, TFTP og andre dependencies på en maskin med Linux installert, helst Ubuntu-distribusjonen da den ble benyttet i prototype-utviklingen. Selve maskinen kan ta hvilken som helst form (laptop, liveboot fra USB, VM, Raspberry Pi), men må være på samme lokalt nett som nettverksutstyret.
Scapy
Scapy er et Python-bibliotek som gjør det mulig å oppdage enheter på nettverket. I dette tilfellet tar vi i bruk verktøyet for å liste opp alle aktive IP-adresser og tilknyttede MAC-adresser i et nettverk.
For å installere Scapy pakkebibliotek skriv i kommandolinjen
sudo apt install python3-scapy
Ansible
For mer informasjon om installasjonsprosessen se her.
- Installasjon av Ansible
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install ansible
- Denne må lastes ned for at ansible skal kunne kjøre Python-skripter
sudo apt install python3-is-python
- Ansible galaxy collection for å lettere konfigurere Cisco-utstyret
ansible-galaxy collection install cisco.ios
TFTP-server
- Last ned TFTP-serveren
sudo apt install tftpd-hpa
- Konfigurer TFTP-serveren. Åpne filen /etc/default/tftpd-hpa som burde se sånn ut:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
Her går det an å bytte ut innholdet i TFTP_DIRECTORY til tftp-mappen i git. Gjøres dette må eierskapet av mappen byttes til tftp gruppen og brukeren, som gjøres med denne kommandoen:
sudo chown tftp:tftp tftp
Det går også ann å bruke standard mappen, /srv/tftp, men da må må filene i tftp-mappen i git bli overført til mappen som har valgt for TFTP-serveren.
Fremgangsmåte
Før du begynner sørg for at TFTP-serveren kjører.
- Skru av strømmen på alle podene som skal oppdateres eller bli konfigurert
- Koble til en ethernetkabel fra g0/0 for 2901, 4221 og 3650 og fa 0/0 for 2960 til svitsjen på toppen av poddene. (Det er viktig å bruke rett ethernet port på nettverksutstyret for at oppdateringsscriptet skal fungere)
- Skru på strømmen igjen og vent til alt utstyret har bootet opp og satt opp SSH. Dette kan ta opp til 10 minutter
Nå er nettverksutstyret klart for å bli konfigurert av Ansible. Det er laget flere playbooks for diverse ulike formål som bli forklart under. Den letteste måten å gjøre dette er ved å bruke bash filen script.sh, som blir brukt på følgene måte:
./script.sh playbooks/<navn på playbook>
Her er en liste over de nåverende playbooks:
show_version
show version er en veldig enkel playbook som bare vil sende tilbake hvilken IOS versjon nettverksutstyret kjører på.
clear config
Denne playbooken vil slette oppstartskonfigurasjonen på nettverksutstyret.
update_*
Brukes til å oppdatere nettverksutstyret
send_konfig
Brukes til å sende konfigurasjons filer til nettverksutstyret
Nytt legge til nytt utstyr i maskinvarelisten
Feilsøking
Hvis ansible-galaxy collection install cisco.ios feiler kan disse kommandoene hjelpe
sudo apt install python3-pip
sudo -H pip install -Iv 'resolvelib<0.6.0'
Hvis installasjonen av pip eller scapy feiler, kan denne kommandoen hjelpe
sudo add-apt-repository universe
Hvis SCP-filer får feilmeldingen Insert error message, kan det være fordi ansible prøver å bruke ansible-pylibssh som ikke fungerer med Cisco-utstyret, dette kan løses ved å avinstallere ansible-pylibssh.