Contenido

Introducción

Prerequisites

Requirements

Configurar

Redes

Habilitar IOx

Introducción

Vía Local Manager

Conexión al administrador local

Implementar

activate

Inicio

Usar cliente Exclient

Preparar ioxclient

Implementar

activate

Inicio

Utilice CLI de IOS-XE

Implementar

activate

Inicio

Introducción

Este documento describe cómo implementar, activar e iniciar una aplicación IOx en IE3400.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Comprensión básica de Cisco IOx e IOS

- IE3400 8P2S u 8T2S que ejecuta la versión IOS XE >17.2.1

Configurar

Desde la versión 17.2.1 del IOS, los switches de la serie reforzada IE3400 admiten el alojamiento de aplicaciones IOx. Esto le permite ejecutar su propio código/aplicaciones/contenedores personalizados en el dispositivo de borde. Como ocurre con la mayoría de las plataformas de IoT que admiten el alojamiento de aplicaciones, hay que tener en cuenta algunos aspectos específicos, que se explican con más detalle en este documento.

Redes

El IE3400 tiene una interfaz adicional (virtual) para la conectividad a las aplicaciones IOx, llamada AppGigabitEthernet1/1

En esta imagen se muestra una arquitectura simplificada para esta interfaz.

Como puede ver, la interfaz denominada AppGigabitEthernet1/1 proporciona conectividad a las aplicaciones. Hay varias opciones disponibles, ya que AppGigabitEthernet1/1 se puede configurar como una interfaz normal, física, tanto en modo de acceso como troncal. Otro nombre común para este puerto es el puerto KR.

Actualmente, una interfaz de aplicación IOx necesita tener el ID de VLAN configurado incluso si la interfaz AppGigabitEthernet1/1 está configurada en modo de acceso, esto se debe a que el tráfico recibido por virteth2/L2br siempre está etiquetado.

En este documento, se configura AppGigabitEthernet1/1 en el modo de acceso en VLAN 1:

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

Para alcanzar el switch y las aplicaciones IOx, se debe configurar la dirección IP SVI para 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

Habilitar IOx

Una vez configurada la red, habilite IOx en el dispositivo.

En IE3400, se necesita una tarjeta SD para almacenar las aplicaciones y los datos de Ex. Antes de habilitar IOx, asegúrese de que la tarjeta SD tenga el formato del sistema de archivos 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

Luego, habilite IOx con este 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.

Para obtener acceso a la funcionalidad de IOx de forma remota, utilizando, por ejemplo, Local Manager o ioxclient, asegúrese de que el servidor web esté habilitado y de que un usuario esté configurado para el acceso:

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

Introducción

Existen varios métodos para implementar aplicaciones IOx en IE3400. Este documento describe lo siguiente:

- Uso del administrador local - Interfaz de usuario gráfica

- Uso de ioxclient - CLI remota

- Uso de IOS-XE - CLI en el dispositivo

Uno de los métodos es suficiente para realizar todas las tareas, solo están documentados aquí para que sean completos y lleguen a una amplia audiencia.

Vía Local Manager

Local Manager es una interfaz gráfica que se utiliza para administrar e implementar aplicaciones IOx en plataformas habilitadas para IOx. Local Manager se está ejecutando en el propio dispositivo habilitado para IOx, en este caso, el IE3400.

Conexión al administrador local

Si ha seguido el procedimiento para habilitar el servidor web y agregar un usuario, debería poder acceder a la interfaz web del IE3400 utilizando la dirección IP de SVI mediante https://<svi ip>/ (en este artículo: https://192.168.0.30/):

Puede iniciar sesión con el usuario creado como se explicó anteriormente y, a continuación, navegar hasta Configuration > Services > IOx, como se muestra en la imagen.

En caso de que prefiera navegar directamente a Local Manager, puede utilizar la siguiente dirección URL: https://<svi ip>/iox/login (en este artículo https://192.168.0.30/iox/login).

En la pantalla Local Manager login (Inicio de sesión del administrador local), vuelva a utilizar el nombre de usuario priv 15 definido anteriormente.

Implementar

Cuando inicie sesión, inicie la implementación de la aplicación.

Haga clic en Add New, elija un nombre para la aplicación y busque el paquete de aplicaciones en su PC, como se muestra en la imagen.

Después de hacer clic en Aceptar, la aplicación se carga e instala en el IE3400. Si todo va bien, debería ver esta imagen en la pantalla, con la aplicación IOx en estado implementado.

activate

Una vez implementada la aplicación, el siguiente paso es activarla. En esta fase, se especifican los recursos utilizados por la aplicación.

Haga clic en el botón Activate de la aplicación IOx implementada, como se muestra en la imagen.

En la siguiente pantalla, puede seleccionar la cantidad de recursos informáticos que desea asignar a la aplicación.

Para configurar la red, haga clic en editar para la configuración de red, como se muestra en la imagen.

En la configuración de red, elija editar el nombre de red predeterminado (mgmt-bridge300) y luego haga clic en Configuración de interfaz, como se muestra en la imagen.

En la ventana emergente, elija utilizar una IP dinámica, que permite a la aplicación IOx obtener una IP del servidor DHCP en la VLAN configurada en la interfaz AppGi1/1 o establecer una IP estática.

Como se mencionó en el paso de la red, es importante que especifique la VLAN para que coincida con el acceso/tronco de AppGi1/1 en este paso.

Actualmente, una interfaz de aplicación IOx necesita tener el ID de VLAN configurado incluso si la interfaz AppGigabitEthernet1/1 está configurada en modo de acceso, esto se debe a que el tráfico recibido por virteth2/L2br siempre está etiquetado.

Ahora guarde los parámetros de red y active la aplicación.

Si todo va bien, la aplicación debe terminar en el estado Activado.

Inicio

Ahora que la aplicación está activada, todo lo que se necesita para poner las cosas en marcha, es iniciar la aplicación.

Haga clic en el botón Inicio de la aplicación en Local Manager, como se muestra en la imagen.

Después de esta acción, la aplicación debe estar en estado En ejecución y debe poder alcanzar la aplicación mediante la red configurada.

En caso de que elija utilizar DHCP, navegue hasta Administrar > App-Info > nombre de interfaz > eth0, para encontrar la dirección IP para la aplicación.

Para este documento, esta aplicación es un simple servidor web que se ejecuta en el puerto 9000. Para probarlo, navegue hasta la dirección IP configurada (u obtenida a través de DHCP):

Usar cliente Exclient

IOxclient es la contraparte basada en CLI de Local Manager y se utiliza para administrar e implementar aplicaciones IOx en plataformas habilitadas para IOx mediante CLI. IOxclient habla con el mismo servicio web que se ejecuta en el dispositivo habilitado para IOx, en este caso el IE3400.

Puede descargar ioxclient mediante el siguiente enlace: https://developer.cisco.com/docs/iox/#!iox-resource-downloads

Preparar ioxclient

Una vez extraído, podemos ejecutar ioxclient y crear un perfil que le dirá a ioxclient cómo alcanzar el 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

La información que debe introducirse depende de la configuración de red y del usuario priv15 especificados como se explica al principio de este artículo.

Tenga en cuenta que el número de puerto IOx para IE3400 es 443 de forma predeterminada y no el puerto sugerido 8443.

Implementar

El primer paso es implementar IE3400 como la aplicación instalada en el dispositivo de borde.

Esto se puede hacer como se muestra aquí a través de 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

Puede verificar el estado de la aplicación con el comando app list:

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    DEPLOYED

activate

Ahora que la aplicación está implementada, puede proceder a activarla. En esta fase, se especifican los recursos que utilizará la aplicación.

Para elegir qué recursos informáticos se permiten a la aplicación utilizar o configurar redes, debe proporcionar información en formato JSON.

Para este artículo, este JSON se utiliza para la activación:

[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"

}

}]

}

}

Lo anterior establece el ID de VLAN y la dirección IP correctos que se utilizarán para la aplicación. En caso de que desee utilizar DHCP, puede quitar el bloque ipv4.

Como se mencionó en el paso de la red, es importante que especifique la VLAN para que coincida con el acceso/tronco de AppGi1/1 en este paso.

Actualmente, una interfaz de aplicación IOx necesita tener el ID de VLAN configurado incluso si la interfaz AppGigabitEthernet1/1 está configurada en modo de acceso, esto se debe a que el tráfico recibido por virteth2/L2br siempre está etiquetado.

Para activar la aplicación IOx a través de la carga útil JSON, utilice este 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

Una vez más, puede utilizar el comando app list para comprobar el estado después de la activación:

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    ACTIVATED

Inicio

Ahora que la aplicación está activada, todo lo que se necesita para poner las cosas en marcha, es iniciar la aplicación.

El comando ioxclient para iniciar nuestra aplicación es el siguiente:

[jensd@cen8 ~]$ ioxclient app start testweb

Currently active profile :  default

Command Name:  application-start

App testweb is Started

Para saber qué dirección IP se adquirió de DHCP, en caso de que haya omitido la parte ipv4 durante la activación, puede utilizar este comando:

[jensd@cen8 ~]$ ioxclient app info testweb | grep ipv4

"ipv4": {

"ipv4": "192.168.0.223",

...

Para verificar si el comando start fue exitoso, podríamos utilizar nuevamente el comando ioxclient app list o simplemente verificar si la aplicación hace lo que se supone que debe hacer.

Para este artículo, esta aplicación es un servidor web simple, que se ejecuta en el puerto 9000 para que podamos probarlo consultando la dirección IP configurada (u obtenida a través de DHCP):

[jensd@cen8 ~]$ curl http://192.168.0.223:9000

<html><body><h1>IOX python webserver on arm64v8</h1></body></html>

Utilice CLI de IOS-XE

El dispositivo IOS-XE que está habilitado para IOx, expone la capacidad de implementar la aplicación y se administra directamente desde la CLI de IOS-XE. Esto no requiere que se active el servidor web en IOS-XE.

Implementar

Dado que la aplicación se implementa desde la CLI de IOS-XE, primero copie su paquete de aplicaciones IOx en un sistema de archivos al que se pueda acceder fácilmente desde esa CLI.

Lo más fácil es copiar primero el paquete de aplicaciones IOx (package.tar) en 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 vez que el paquete esté allí, impleméntelo para 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.

Cuando se complete esta operación, podrá comprobar el estado de la instalación.

ie3400#sh app-hosting list

App id                                   State

---------------------------------------------------------

testweb                                  DEPLOYED

activate

Después de la implementación, al igual que con los demás métodos, el siguiente paso es activar la aplicación. En esta fase, especifique qué recursos utiliza la aplicación.

Como mínimo, debe configurar la red. Esto se puede hacer como se muestra aquí:

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

Esto indica a la aplicación que reciba una IP estática, usando el ID de VLAN 1.

Como se mencionó en el paso de la red, es importante que especifique la VLAN para que coincida con el acceso/tronco de AppGi1/1 en este paso.

Actualmente, una interfaz de aplicación IOx necesita tener el ID de VLAN configurado incluso si la interfaz AppGigabitEthernet1/1 está configurada en modo de acceso, esto se debe a que el tráfico recibido por virteth2/L2br siempre está etiquetado:

Después de configurar la configuración, continúe con la activación:

ie3400#app-hosting activate appid testweb

testweb activated successfully

Current state is: ACTIVATED

Inicio

Después de la activación, el último paso es iniciar la aplicación.

Esto se puede hacer con este comando:

ie3400#app-hosting start appid testweb

testweb started successfully

Current state is: RUNNING

Si no configuró una dirección IP en la fase de activación y decidió utilizar DHCP, puede obtener la dirección IP que recibió su aplicación:

ie3400#sh app-hosting detail | i IPv4

IPv4 address        : 192.168.0.224

Para verificar si el comando start fue exitoso, simplemente podemos verificar si la aplicación hace lo que se supone que debe hacer.

Para este documento, esta aplicación es un simple servidor web, que se ejecuta en el puerto 9000 para que podamos probarlo consultando la dirección IP configurada (u obtenida a través de DHCP).