Introduzione
In questo documento viene descritto come ricreare l'immagine di Application Policy Infrastructure Controller (APIC) con l'aiuto di un server HTTP.
Prerequisiti
Requisiti
- Cisco Integrated Management Controller (CIMC) deve essere configurato con l'indirizzo IP OOB.
- Controllare le note sulla versione di APIC e verificare a quale immagine software APIC è necessario rieseguire l'immagine.
- Ottenere un'immagine software da software.cisco.com.
- Verificare che il checksum MD5 dell'immagine corrisponda a quello pubblicato su Cisco.com.
- Caricare l'immagine APIC sul server HTTP.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
In caso di guasto di un cluster APIC o di migrazione hardware da L2/M2 a L4/M4, è possibile che per ripristinare la funzionalità sia necessario ricreare l'immagine di singoli dispositivi APIC. In questa procedura viene descritto un approccio semplificato per ricreare l'immagine degli APIC uno alla volta utilizzando un server HTTP, in modo da velocizzare il ripristino dei cluster con un'interruzione minima delle attività.
Ripetere la procedura in sequenza per ciascun dispositivo APIC che richiede la re-imaging. Una volta ricreata l'immagine di tutti gli APIC, ripristinare la configurazione del cluster in base alle necessità ed eseguire test completi per convalidarne la funzionalità.
Questa procedura concisa consente un ripristino APIC efficiente, consentendo agli amministratori di risolvere rapidamente i guasti del cluster e di ripristinare le operazioni di rete in modo efficace.
Soluzione
Per ricreare l'immagine dell'APIC utilizzando un server HTTP, è necessario eseguire la procedura seguente.
Passaggio 1. Scaricare il firmware dal sito Web di Cisco.
Aprire software.cisco.com/download.
Passaggio 2. Immettere APIC e selezionare qui la versione appropriata per ACI. In questo caso, è selezionato 4.2(7F).
Ad esempio:

Passaggio 3. Copiare l'immagine ISO del software APIC sul server HTTP.
Esempio: http://x.x.x.x/iso/

Passaggio 4. SSH/Console su Cisco Integrated Management Controller.
# ssh admin@cimc_ip
Dove cimc_ip è l'indirizzo IP CIMC. Ad esempio:
# ssh admin@x.x.x.x
admin@x.x.x.x's password:
system#
system# scope vmedia
system /vmedia #
system /vmedia # map-www volume_name http://http_server_ip_and_path iso_file_name
Dove:
- nome_volume è il nome del volume.
- http_server_ip_and_path è l'indirizzo IP del server HTTP e il percorso del file ISO.
- nomefile_iso è il nome del file iso.
Nota: Tra http_server_ip_and_path e iso_filename è presente uno spazio.
Ad esempio:
system /vmedia # map-www apic http://x.x.x.x/iso/ aci-apic-dk9.4.2.7f.iso
Server username: admin
Server password:
Confirm password:
Nota: /* Se non è richiesta l'autenticazione, premere Invio.
system /vmedia # show mappings detail
Map-Status deve essere visualizzato come OK.
Ad esempio:
system /vmedia # show mappings detail
Volume apic:
Map-Status: OK
Drive-Type: CD
Remote-Share: http://x.x.x.x/iso/
Remote-File: aci-apic-dk9.4.2.7f.iso
Mount-Type: www
Mount-Options: noauto,username=admin,password=********3
system /vmedia #
system /vmedia # connect host
CISCO Serial Over LAN:
Press Ctrl+x to Exit the session
Passaggio 5. Spegnere e riaccendere la console KVM della GUI CIMC.
Scegliere Alimentazione > Power Cycle System (avvio a freddo) per spegnere e riaccendere il controller

Dalla console SOL: Controllare lo schermo durante il processo di avvio e prepararsi a premere F6 al momento opportuno per accedere al menu di selezione di avvio.
Ad esempio:

Dopo aver premuto F6
Nota: Se si perde l'opportunità e non è stato possibile premere F6 al momento opportuno, tornare al punto 5 per spegnere e riaccendere il controller e ripetere la procedura finché non si è in grado di premere F6 per accedere al menu di selezione di avvio.

È inoltre possibile che sia necessario immettere la password del BIOS. La password predefinita è password.

Nel menu di selezione dell'avvio, selezionare l'opzione Cisco CIMC-Mapped vDVD1.22 come dispositivo di avvio singolo.

Passaggio 6. Tornare alla CLI di CIMC e monitorare l'output di Connect Host.
Monitorare la cli CIMC , quando viene visualizzato il messaggio Per velocizzare l'installazione, immettere l'URL iso tra dieci minuti, quindi immettere l'URL del server http con l'immagine APIC.
++ grep /run/install/repo
++ cut -f 1 -d ' '
++ tr -d '[:digit:]'
+ usbdevice=/dev/sr
+ mkdir /mnt/usbdata
+ mount /dev/sr2 /mnt/usbdata
mount: special device /dev/sr2 does not exist
+ true
+ '[' -f /mnt/usbdata/ifabric.iso ']'
+ mountpoint -q /mnt/usbdata
+ true
+ echo 'INFO: found second partition on install media but did not find ifabric.iso. '
INFO: found second partition on install media but did not find ifabric.iso.
+ echo 'Continuing on to ISO URL prompt.'
Continuing on to ISO URL prompt.
+ '[' 0 -eq 0 ']'
+ read_iso_url
+ true,,
+ echo 'To speed up the install, enter iso url in next ten minutes: ' << Enter the http server URL with apic image >>
To speed up the install, enter iso url in next ten minutes:
+ read -t 600 -p '? ' url
?
http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso 5:program-log << Enter the http server details >>
[anaconda] 1:main* 2:shell 3:log 4:storage-lo> Switch tab: Alt+Tab | Help: F1
Nota: Non c'è spazio tra http_server_ip_and_path e iso_filename.
Passaggio 7. Dopo aver immesso l'URL HTTP, il processo di avvio continuerà.
Nota: Se si sceglie l'opzione static, verrà richiesto di immettere il nome dell'interfaccia, l'indirizzo IP di gestione e il gateway.
+ '[' 0 -eq 0 ']'
+ read_iso_url
+ true
+ echo 'To speed up the install, enter iso url in next ten minutes: '
To speed up the install, enter iso url in next ten minutes:
+ read -t 600 -p '? ' url
?
[ahttp://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso 5:program-log
++ awk -F '/|:' '{print $4}'
+ urlip=x.x.x.x
+ '[' -z http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso ']'
+ '[' -z x.x.x.x ']'
+ break
+ '[' -n http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso ']'
+ set +e
+ configured=0
+ '[' 0 -eq 0 ']'
+ echo 'Configuring network interface'
Configuring network interface
+ echo 'type static, dhcp, bash for a shell to configure networking, or url to re-enter the url: '
>>
<< Type static and configure the APIC OOB IP address with it’s gateway>>
type static, dhcp, bash for a shell to configure networking, or url to re-enter the url:
+ read -p '? ' ntype
? static. << Enter the static to configure the networking >>
[anaconda] 1:main* 2:shell 3:log 4:storage-lo> Switch tab: Alt+Tab | Help: F1
Nota: Dopo aver digitato l'interfaccia statica, questa verrà elencata nell'interfaccia CIMC e verrà selezionata l'interfaccia corretta. se è stata selezionata l'interfaccia errata, il pacchetto perderà il 100% e dopo tre tentativi di ping non riusciti verrà nuovamente richiesto di selezionare l'interfaccia corretta finché il valore di perdita del pacchetto sarà 0. Se non si è a conoscenza dell'interfaccia, selezionare l'interfaccia tutte una alla volta.
Ad esempio:
+ case $ntype in
+ configure_static
+ echo 'Available interfaces'
Available interfaces
+ ls -l /sys/class/net
total 0
lrwxrwxrwx. 1 root root 0 May 3 07:08 enp11s0 -> ../../devices/pci0000:00/0000:00:03.0/0000:06:00.0/0000:07:01.0/0000:09:00.0/0000:0a:00.0/0000:0b:00.0/net/enp11s0
lrwxrwxrwx. 1 root root 0 May 3 07:08 enp12s0 -> ../../devices/pci0000:00/0000:00:03.0/0000:06:00.0/0000:07:01.0/0000:09:00.0/0000:0a:01.0/0000:0c:00.0/net/enp12s0
lrwxrwxrwx. 1 root root 0 May 3 07:08 enp1s0f0 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.0/net/enp1s0f0
lrwxrwxrwx. 1 root root 0 May 3 07:08 enp1s0f1 -> ../../devices/pci0000:00/0000:00:01.0/0000:01:00.1/net/enp1s0f1
lrwxrwxrwx. 1 root root 0 May 3 07:08 lo -> ../../devices/virtual/net/lo
+ read -p 'Interface to configure: ' interface
Interface to configure: enp1s0f0 << select the correct interface >>
[anaconda] 1:main* 2:shell 3:log 4:storage-lo>
Passaggio 8. Controllo dell'interfaccia corretto.
Dopo aver immesso l'interfaccia, tenterà di eseguire il ping sul server http e, se l'interfaccia selezionata è corretta, il pacchetto perduto deve essere 0% e inizierà il recupero dell'immagine dal server http.
Ad esempio: Dopo aver inserito l'interfaccia corretta con perdita del pacchetto pari a 0%.
+ read -p 'Interface to configure: ' interface
Interface to configure: enp1s0f0
+ read -p 'address: ' addr
address: x.x.x.x/24
+ read -p 'gateway: ' gw
gateway: x.x.x.x
+ ip addr add x.x.x.x/24 dev enp1s0f0
+ ip link set enp1s0f0 up
+ ip route add default via x.x.x.x
++ seq 1 2
+ for count in '$(seq 1 2)'
+ ping -c 1 x.x.x.x
PING x.x.x.x (x.x.x.x) 56(84) bytes of data.
64 bytes from x.x.x.x: icmp_seq=1 ttl=64 time=55.0 ms
--- x.x.x.x ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 55.056/55.056/55.056/0.000 ms
+ configured=1
+ break
+ '[' 1 -eq 0 ']'
+ echo 'Fetching http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso'
Fetching http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso >> started fetching the apic image from HTTP server
+ wget -o /dev/null -O /tmp/cdrom.iso http://x.x.x.x/iso/aci-apic-dk9.4.2.7f.iso
Se è stata selezionata l'interfaccia errata, il pacchetto andrà perduto al 100% e, dopo tre tentativi di ping non riusciti, verrà chiesto di nuovo di selezionare l'interfaccia corretta.
Ad esempio: Dopo aver inserito l'interfaccia sbagliata con una perdita del 100%.
+ read -p 'Interface to configure: ' interface
Interface to configure: enp11s0
+ read -p 'address: ' addr
address: x.x.x.x/24
+ read -p 'gateway: ' gw
gateway: x.x.x.x
+ ip addr add x.x.x.x/24 dev enp11s0
+ ip link set enp11s0 up
+ ip route add default via x.x.x.x
++ seq 1 2
+ for count in '$(seq 1 2)'
+ ping -c 1 x.x.x.x
PING x.x.x.x (x.x.x.x) 56(84) bytes of data.
From x.x.x.x icmp_seq=1 Destination Host Unreachable
--- x.x.x.x ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
+ sleep 20
+ for count in '$(seq 1 2)'
+ ping -c 1 x.x.x.x
PING x.x.x.x (x.x.x.x) 56(84) bytes of data.
From x.x.x.x icmp_seq=1 Destination Host Unreachable
--- x.x.x.x ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
+ sleep 20
+ '[' 0 -eq 0 ']'
+ echo 'Configuring network interface'
Configuring network interface
+ echo 'type static, dhcp, bash for a shell to configure networking, or url to re-enter the url: ' <>
type static, dhcp, bash for a shell to configure networking, or url to re-enter the url:
+ read -p '? ' ntype
?
Monitorare la CLI di CIMC e attendere circa 40-50 min. , si otterrà il seguente output sulla CLI.
[anaconda] 1:main* 2:shell 3:log 4:storage-lo> Switch tab: Alt+Tab | Help: F1
[ OK ] Started Show Plymouth Power Off Screen.
[ OK ] Stopped Availability of block devices.
Stopping Logout off all iSCSI sessions on shutdown...
Stopping LVM2 metadata daemon...
[ OK ] Stopped LVM2 metadata daemon.
[ OK ] Stopped Logout off all iSCSI sessions on shutdown.
[ OK ] Stopped target Network.
[ OK ] Stopped Remount Root and Kernel File Systems.
Stopping Remount Root and Kernel File Systems...
[ OK ] Started Restore /run/initramfs.
[ OK ] Reached target Shutdown.
dracut Warning: Killing all remaining processes
Powering off.
reboot: Power down
Passaggio 9. Esci da SOL dopo lo spegnimento
Attendere che venga visualizzato il messaggio poweroff nella console SOL, quindi uscire da SOL premendo Ctrl e x (Ctrl+x) ed eseguire nuovamente il login a CIMC e modificare nuovamente l'ambito.
(i) Change the scope to virtual media again:
system# scope vmedia
system /vmedia #
(ii) Unmap the .iso image that you mapped in 2.c:
system /vmedia # unmap volume_name
At the Save mapping prompt, enter yes if you want to save the mapping or no if you do not want to save the mapping. For example:
system /vmedia # unmap apic
Save mapping? Enther 'yes' or 'no' to confirm (CTRL-C to cancel) → yes
system /vmedia #
(iii) Connect back to SOL again:
system /vmedia # connect host
Passaggio 10. Configurazione iniziale
Dalla console KVM: Scegliere Alimentazione > Accendi sistema per accendere il controller e Lunch KVM , che richiederà la configurazione iniziale APIC.

Attenzione: Questo metodo è applicabile esclusivamente agli indirizzi Out-of-Band (OOB) dell'IPV4 APIC (server HTTP). Il supporto per IPv6 non è al momento disponibile.