La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
In questo documento viene descritto come distribuire, attivare e avviare un'applicazione IOx su IE3400.
Cisco raccomanda la conoscenza dei seguenti argomenti:
A partire dalla versione IOS 17.2.1, gli switch serie rinforzati IE3400 supportano l'hosting di applicazioni IOx. Ciò consente di eseguire codice/applicazioni/contenitori personalizzati sul dispositivo edge. Come per la maggior parte delle piattaforme IoT che supportano l'hosting di applicazioni, è necessario tenere presenti alcune specifiche, che vengono ulteriormente spiegate in questo documento.
IE3400 dispone di un'interfaccia (virtuale) aggiuntiva per la connettività alle applicazioni IOx, denominata AppGigabit Ethernet1/1
Nell'immagine è illustrata l'architettura semplificata dell'interfaccia.
Come si può vedere, l'interfaccia denominata AppGigabit Ethernet1/1 fornisce la connettività alle applicazioni. AppGigabit Ethernet1/1 può essere configurato come un'interfaccia fisica regolare in modalità di accesso o trunk. Un altro nome comune per questa porta è la porta KR.
Al momento, l'ID VLAN dell'interfaccia dell'applicazione IOx deve essere configurato anche se l'interfaccia AppGigabit Ethernet1/1 è configurata in modalità di accesso, in quanto il traffico ricevuto da Virtual2/L2br è sempre contrassegnato.
In questo documento, AppGigabit Ethernet1/1 in modalità di accesso nella VLAN 1 è configurato:
ie3400#conf t Enter configuration commands, one per line. End with CNTL/Z. ie3400(config)#interface AppGigabitEthernet1/1 ie3400(config-if)#switchport mode access ie3400(config-if)#switchport access vlan 1 ie3400(config-if)#end
Per raggiungere sia le applicazioni dello switch che IOx, è necessario configurare l'indirizzo IP SVI per la VLAN 1:
ie3400#conf t Enter configuration commands, one per line. End with CNTL/Z. ie3400(config)#interface Vlan1 ie3400(config-if)#ip address 192.168.0.30 255.255.255.0 ie3400(config-if)#end
Una volta configurata la rete, abilitare IOx sul dispositivo.
In IE3400 è necessaria una scheda SD per archiviare le applicazioni e i dati IOx. Prima di abilitare IOx, verificare che la scheda SD sia formattata con il file system ext4:
ie3400#format sdflash: ext4 Format operation may take a while. Continue? [confirm] Format operation will destroy all data in "sdflash:". Continue? [confirm] format completed with no errors Format of sdflash: complete
Quindi, abilitare IOx con questo comando:
ie3400#conf t Enter configuration commands, one per line. End with CNTL/Z. ie3400(config)#iox Warning: Do not remove SD flash card when IOx is enabled or errors on SD device could occur. *Feb 21 12:49:18.310: %UICFGEXP-6-SERVER_NOTIFIED_START: R0/0: psd: Server iox has been notified to start *Feb 21 12:49:48.165: %IM-6-IOX_ENABLEMENT: R0/0: ioxman: IOX is ready.
Per ottenere l'accesso alla funzionalità IOx in remoto, utilizzando ad esempio Local Manager o ioxclient, verificare che il server Web sia abilitato e che un utente sia configurato per l'accesso:
ie3400#conf t Enter configuration commands, one per line. End with CNTL/Z. ie3400(config)#ip http secure-server ie3400(config)#username admin privilege 15 password 0 secret
Esistono diversi metodi per distribuire applicazioni IOx a IE3400. Nel presente documento vengono descritti i seguenti metodi:
Uno dei metodi è sufficiente per eseguire tutte le attività, sono semplicemente documentati tutti e tre qui per completezza e per raggiungere un vasto pubblico.
Local Manager è un'interfaccia grafica da utilizzare per gestire e distribuire le applicazioni IOx su piattaforme abilitate per IOx. Local Manager è in esecuzione sul dispositivo abilitato per IOx, in questo caso IE3400.
Se è stata eseguita la procedura per abilitare il server Web e aggiungere un utente, dovrebbe essere possibile accedere all'interfaccia Web di IE3400 utilizzando l'indirizzo IP SVI tramite https://<svi ip>/ (in questo articolo: https://192.168.0.30/):
È possibile eseguire il login utilizzando l'utente creato come spiegato in precedenza, quindi selezionare Configurazione > Servizi > IOx, come mostrato nell'immagine.
Se si preferisce passare direttamente a Gestione locale, è possibile utilizzare il seguente URL: https://<svi ip>/iox/login (in questo articolo https://192.168.0.30/iox/login).
Nella schermata di accesso di Local Manager, utilizzare nuovamente il numero 15 precedente definito dall'utente.
Una volta eseguito l'accesso, avviare la distribuzione dell'applicazione.
Fare clic su Aggiungi nuovo, scegliere un nome per l'applicazione e individuare il pacchetto di applicazioni sul PC, come mostrato nell'immagine.
Dopo aver fatto clic su OK, l'applicazione viene caricata e installata su IE3400. Se tutto va bene, dovrebbe essere visualizzata questa immagine sullo schermo, con l'applicazione IOx in stato distribuito.
Una volta distribuita l'applicazione, il passaggio successivo consiste nell'attivarla. In questa fase vengono specificate le risorse utilizzate dall'applicazione.
Fare clic sul pulsante Attiva dell'applicazione IOx distribuita, come mostrato nell'immagine.
Nella schermata successiva è possibile selezionare la quantità di risorse di elaborazione da assegnare all'applicazione.
Per configurare la rete, fare clic su edit (Modifica) per accedere a Network Configuration (Configurazione di rete), come mostrato nell'immagine.
Nella configurazione di rete, scegliere di modificare il nome di rete predefinito (mgmt-bridge300), quindi fare clic su Interface Setting (Impostazione interfaccia), come mostrato nell'immagine.
Nel popup, scegliere di usare un IP dinamico, che consenta all'applicazione IOx di recuperare un IP dal server DHCP nella VLAN configurata sull'interfaccia AppGi1/1, o di impostare un IP statico.
Come accennato nel passaggio rete, è importante specificare la VLAN che deve corrispondere all'accesso/trunk di AppGi1/1 in questo passaggio.
Al momento, l'ID VLAN dell'interfaccia dell'applicazione IOx deve essere configurato anche se l'interfaccia AppGigabit Ethernet1/1 è configurata in modalità di accesso, in quanto il traffico ricevuto da Virtual2/L2br è sempre contrassegnato.
Salvare le impostazioni di rete e attivare l'applicazione.
Se tutto va bene, l'applicazione deve avere lo stato Attivato.
Ora che l'applicazione è stata attivata, tutto ciò che rimane per far funzionare le cose, è avviare l'applicazione.
Fare clic sul pulsante Start relativo all'applicazione in Gestione locale, come mostrato nell'immagine.
Dopo questa azione, l'app dovrebbe essere nello stato In esecuzione e dovrebbe essere possibile raggiungere l'applicazione utilizzando la rete configurata.
Se si sceglie di utilizzare DHCP, selezionare Manage > App-Info > interface-name > eth0 (Gestisci informazioni sull'interfaccia > eth0) per individuare l'indirizzo IP dell'applicazione.
Per questo documento, l'applicazione è un semplice server Web in esecuzione sulla porta 9000. Per verificarlo, individuare l'indirizzo IP configurato (o ottenuto tramite DHCP):
IOxclient è la controparte basata sulla CLI di Local Manager ed è utilizzata per gestire e distribuire le applicazioni IOx su piattaforme abilitate per IOx tramite la CLI. IOxclient sta parlando con lo stesso servizio Web in esecuzione sul dispositivo abilitato per IOx, in questo caso IE3400.
È possibile scaricare ioxclient utilizzando il seguente link: https://developer.cisco.com/docs/iox/#!iox-resource-downloads
Una volta estratto, possiamo eseguire ioxclient e creare un profilo che dirà a ioxclient come raggiungere IE3400:
[jensd@cen8 ~]$ ioxclient profiles create Config file not found : /home/jensd/.ioxclientcfg.yaml Creating one time configuration.. Your / your organization's name : Cisco Your / your organization's URL : Your IOx platform's IP address[127.0.0.1] : 192.168.0.30 Your IOx platform's port number[8443] : 443 Authorized user name[root] : admin Password for admin : Local repository path on IOx platform[/software/downloads]: URL Scheme (http/https) [https]: API Prefix[/iox/api/v2/hosting/]: Your IOx platform's SSH Port[2222]: Your RSA key, for signing packages, in PEM format[]: Your x.509 certificate in PEM format[]: Activating Profile default Saving current configuration
Le informazioni da immettere dipendono dalla configurazione di rete e dall'utente priv15 specificati come spiegato all'inizio di questo articolo.
Tenere presente che il numero di porta IOx per IE3400 è 443 per impostazione predefinita e non la porta 8443 consigliata.
Il primo passaggio consiste nella distribuzione di IE3400 come applicazione installata sul dispositivo periferico.
Questa operazione può essere eseguita come mostrato di seguito tramite ioxclient:
[jensd@cen8 ~]$ ioxclient app install testweb package.tar Currently active profile : default Command Name: application-install Using the package descriptor file in the project dir Validating descriptor file package.yaml with package schema definitions ... Sending request to install the app Installation Successful. App is available at : http://192.168.0.30/iox/api/v2/hosting/apps/testweb Successfully deployed
È possibile verificare lo stato dell'app con il comando elenco app:
[jensd@cen8 ~]$ ioxclient app list Currently active profile : default Command Name: application-list List of installed App : 1. testweb ---> DEPLOYED
Una volta distribuita l'applicazione, è possibile procedere all'attivazione. In questa fase si specificano le risorse da utilizzare per l'applicazione.
Per scegliere le risorse di elaborazione che l'applicazione può utilizzare o per configurare la rete, è necessario fornire informazioni in formato JSON.
In questo articolo, questo JSON viene utilizzato per l'attivazione:
[jensd@cen8 ~]$ cat activation.json { "resources": { "network": [{ "interface-name": "eth0", "network-info": {"vlan-id": "1"}, "network-type": "vlan", "ipv4": { "dns": "", "gateway": "192.168.0.1", "ip": "192.168.0.223", "mode": "static", "prefix": "24" } }] } }
Questa procedura consente di impostare l'ID VLAN e l'indirizzo IP corretti da utilizzare per l'applicazione. Se si desidera utilizzare DHCP, è possibile rimuovere il blocco ipv4.
Come accennato nel passaggio rete, è importante specificare la VLAN che deve corrispondere all'accesso/trunk di AppGi1/1 in questo passaggio.
Al momento, l'ID VLAN dell'interfaccia dell'applicazione IOx deve essere configurato anche se l'interfaccia AppGigabit Ethernet1/1 è configurata in modalità di accesso, in quanto il traffico ricevuto da Virtual2/L2br è sempre contrassegnato.
Per attivare l'applicazione IOx tramite il payload JSON, utilizzare questo comando:
[jensd@cen8 ~]$ ioxclient app activate testweb --payload activation.json Currently active profile : default Command Name: application-activate Payload file : activation.json. Will pass it as application/json in request body.. App testweb is Activated
Anche in questo caso, è possibile utilizzare il comando elenco applicazioni per controllare lo stato dopo l'attivazione:
[jensd@cen8 ~]$ ioxclient app list Currently active profile : default Command Name: application-list List of installed App : 1. testweb ---> ACTIVATED
Ora che l'applicazione è stata attivata, tutto ciò che rimane per far funzionare le cose, è avviare l'applicazione.
Il comando ioxclient per avviare l'applicazione è il seguente:
[jensd@cen8 ~]$ ioxclient app start testweb Currently active profile : default Command Name: application-start App testweb is Started
Per sapere quale indirizzo IP è stato acquisito da DHCP, nel caso in cui sia stata ignorata la parte ipv4 durante l'attivazione, è possibile usare questo comando:
[jensd@cen8 ~]$ ioxclient app info testweb | grep ipv4 "ipv4": { "ipv4": "192.168.0.223", ...
Per verificare se il comando di avvio ha avuto esito positivo, è possibile utilizzare di nuovo il comando ioxclient app list o semplicemente verificare se l'applicazione esegue le operazioni previste.
Per questo articolo, questa applicazione è un semplice server Web, in esecuzione sulla porta 9000 in modo da poterlo verificare interrogando l'indirizzo IP configurato (o ottenuto tramite DHCP):
[jensd@cen8 ~]$ curl http://192.168.0.223:9000 <html><body><h1>IOX python webserver on arm64v8</h1></body></html>
I dispositivi IOS-XE abilitati per IOx offrono la possibilità di eseguire l'installazione dell'applicazione e di gestirli direttamente dalla CLI di IOS-XE. Non è necessario abilitare il server Web su IOS-XE.
Poiché l'applicazione viene distribuita dalla CLI di IOS-XE, copiare innanzitutto il pacchetto dell'applicazione IOx in un file system facilmente accessibile da tale CLI.
Il modo più semplice consiste nel copiare prima il pacchetto dell'applicazione IOx (package.tar) in memoria flash:
ie3400#copy scp: flash: Address or name of remote host []? 192.168.0.21 Source username [admin]? jensd Source filename []? /home/jensd/package.tar Destination filename [package.tar]? Password: Sending file modes: C0644 16547840 package.tar !!!!!!...!!!!!! 16547840 bytes copied in 25.244 secs (655516 bytes/sec)
Una volta individuato il pacchetto, distribuirlo per IOx:
ie3400#app-hosting install appid testweb package flash:package.tar Installing package 'flash:package.tar' for 'testweb'. Use 'show app-hosting list' for progress.
Al termine, è possibile controllare lo stato dell'installazione.
ie3400#sh app-hosting list App id State --------------------------------------------------------- testweb DEPLOYED
Dopo la distribuzione, come per gli altri metodi, il passaggio successivo consiste nell'attivare l'applicazione. In questa fase, specificare le risorse utilizzate dall'applicazione.
È necessario configurare almeno la rete. Questa operazione può essere eseguita come mostrato di seguito:
ie3400#conf t Enter configuration commands, one per line. End with CNTL/Z. ie3400(config)#app-hosting appid testweb ie3400(config-app-hosting)#app-vnic AppGigabitEthernet trunk ie3400(config-config-app-hosting-trunk)#vlan 1 guest-interface 0 ie3400(config-config-app-hosting-vlan-access-ip)#guest-ipaddress 192.168.0.224 netmask 255.255.255.0 ie3400(config-config-app-hosting-vlan-access-ip)#end
In questo modo l'applicazione riceve un IP statico, utilizzando l'ID VLAN 1.
Come accennato nel passaggio rete, è importante specificare la VLAN che deve corrispondere all'accesso/trunk di AppGi1/1 in questo passaggio.
Al momento, un'interfaccia dell'applicazione IOx deve avere un ID VLAN configurato anche se l'interfaccia AppGigabit Ethernet1/1 è configurata in modalità di accesso, in quanto il traffico ricevuto da Virtual2/L2br è sempre contrassegnato:
Dopo aver impostato la configurazione, procedere con l'attivazione:
ie3400#app-hosting activate appid testweb testweb activated successfully Current state is: ACTIVATED
Dopo l'attivazione, l'ultimo passaggio consiste nell'avviare l'applicazione.
A tale scopo, è possibile usare questo comando:
ie3400#app-hosting start appid testweb testweb started successfully Current state is: RUNNING
Se non è stato impostato un indirizzo IP nella fase di attivazione e si decide di utilizzare DHCP, è possibile ottenere l'indirizzo IP ricevuto dall'applicazione:
ie3400#sh app-hosting detail | i IPv4 IPv4 address : 192.168.0.224
Per verificare se il comando di avvio è stato eseguito correttamente, è sufficiente controllare se l'applicazione esegue le operazioni previste.
Per questo documento, l'applicazione è un semplice server Web, che viene eseguito sulla porta 9000 in modo che sia possibile verificarlo interrogando l'indirizzo IP configurato (o ottenuto tramite DHCP).