Sommario

Introduzione

Prerequisiti

Requisiti

Configurazione

Reti

Abilita IOx

Per iniziare

Tramite Local Manager

Connetti a Local Manager

Implementazione

Attiva

Inizio

Usa client IOx

Preparare ioxclient

Implementazione

Attiva

Inizio

Usa CLI IOS-XE

Implementazione

Attiva

Inizio

Introduzione

In questo documento viene descritto come distribuire, attivare e avviare un'applicazione IOx su IE3400.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Conoscenze base di Cisco IOx e IOS

- IE3400 8P2S o 8T2S con IOS XE versione >17.2.1

Configurazione

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.

Reti

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

Abilita IOx

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

Per iniziare

Esistono diversi metodi per distribuire applicazioni IOx a IE3400. Nel presente documento vengono descritti i seguenti metodi:

- Utilizzo di Gestione locale - Interfaccia grafica

- Uso di ioxclient - CLI remota

- Uso di IOS-XE - CLI su dispositivo

Uno dei metodi è sufficiente per eseguire tutte le attività, sono semplicemente documentati tutti e tre qui per completezza e per raggiungere un vasto pubblico.

Tramite Local Manager

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.

Connetti a Local Manager

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.

Implementazione

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.

Attiva

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.

Inizio

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):

Usa client IOx

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

Preparare ioxclient

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.

Implementazione

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

Attiva

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

Inizio

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>

Usa CLI IOS-XE

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.

Implementazione

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

Attiva

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

Inizio

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).