Contents

Introduction

Prerequisites

Requirements

Configurar

Rede

Ativar IOx

Comece já

Via Gerenciador Local

Conectar-se ao Gerenciador local

Implantar

Ativar

Iniciar

Usar cliente IOx

Preparar o ioxclient

Implantar

Ativar

Iniciar

Usar CLI IOS-XE

Implantar

Ativar

Iniciar

Introduction

Este documento descreve como implantar, ativar e iniciar um aplicativo IOx no IE3400.

Prerequisites

Requirements

A Cisco recomenda que você tenha conhecimento destes tópicos:

- Compreensão básica do Cisco IOx e IOS

- IE3400 8P2S ou 8T2S executando IOS XE versão >17.2.1

Configurar

Desde a versão 17.2.1 do IOS, os switches da série robusta IE3400 suportam hospedagem de aplicativos IOx. Isso permite que você execute seu próprio código/aplicativos/contêineres personalizados no dispositivo de borda. Como ocorre com a maioria das plataformas da IoT que oferecem suporte à hospedagem de aplicativos, há alguns detalhes a serem considerados, que são explicados mais detalhadamente neste documento.

Rede

O IE3400 tem uma interface (virtual) adicional para conectividade com os aplicativos IOx, chamada AppGigabitEthernet1/1

A arquitetura simplificada para esta interface é mostrada nesta imagem.

Como você pode ver, a interface chamada AppGigabitEthernet1/1 fornece conectividade aos aplicativos. Há várias opções disponíveis, pois AppGigabitEthernet1/1 pode ser configurado como uma interface física e regular no modo de acesso ou tronco. Outro nome comum para esta porta é a porta KR.

Atualmente, uma interface de aplicativo IOx precisa ter o ID de VLAN configurado, mesmo que a interface AppGigabitEthernet1/1 esteja configurada no modo de acesso, isso ocorre porque o tráfego recebido pelo virteth2/L2br é sempre marcado.

Neste documento, AppGigabitEthernet1/1 no modo de acesso na VLAN 1 está configurado:

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 acessar o switch e os aplicativos IOx, o endereço IP SVI para a VLAN 1 precisa ser configurado:

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

Ativar IOx

Quando a rede estiver configurada, ative o IOx no dispositivo.

No IE3400, é necessário um cartão SD para armazenar os aplicativos e dados do IOx. Antes de IOx ser habilitado, verifique se o cartão SD está formatado com o sistema de arquivos 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

Em seguida, ative o IOx com 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 obter acesso remoto à funcionalidade do IOx, usando, por exemplo, o Local Manager ou o ioxclient, certifique-se de que o servidor Web esteja ativado e que um usuário esteja configurado para acesso:

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

Comece já

Há vários métodos para implantar aplicativos IOx no IE3400. Este documento descreve os seguintes itens:

- Usando o Gerenciador local - IU gráfica

- Usando o ioxclient - CLI remota

- Usando IOS-XE - CLI no dispositivo

Um dos métodos é suficiente para executar todas as tarefas, eles são apenas documentados aqui para estarem completos e para atingir um grande público.

Via Gerenciador Local

O Local Manager é uma interface gráfica a ser usada para gerenciar e implantar aplicativos IOx em plataformas habilitadas para IOx. O Gerenciador local está sendo executado no próprio dispositivo habilitado para IOx, neste caso, o IE3400.

Conectar-se ao Gerenciador local

Se você passou pelo procedimento para habilitar o servidor web e adicionar um usuário, deve ser capaz de acessar a interface da Web do IE3400 usando o endereço IP do SVI usando https://<svi ip>/ (neste artigo: https://192.168.0.30/):

Você pode fazer login usando o usuário criado conforme explicado acima e navegar para Configuration > Services > IOx, como mostrado na imagem.

Caso prefira navegar diretamente para o Gerenciador local, você pode usar o seguinte URL: https://<svi ip>/iox/login (neste artigo https://192.168.0.30/iox/login).

Na tela de login do Local Manager, use novamente o usuário priv 15 definido acima.

Implantar

Depois de fazer login, inicie a implantação do aplicativo.

Clique em Adicionar novo, escolha um nome para o aplicativo e navegue até o pacote do aplicativo no PC, como mostrado na imagem.

Depois de clicar em OK, o aplicativo será carregado e instalado no IE3400. Se tudo correr bem, você verá essa imagem na tela, com seu aplicativo IOx em um estado implantado.

Ativar

Quando o aplicativo for implantado, a próxima etapa é ativá-lo. Nessa fase, são especificados os recursos usados pelo aplicativo.

Clique no botão Ativar do aplicativo IOx implantado, como mostrado na imagem.

Na próxima tela, você pode selecionar a quantidade de recursos de computação a serem atribuídos ao aplicativo.

Para configurar a rede, clique em editar para a configuração de rede, como mostrado na imagem.

Na configuração de rede, escolha editar o nome de rede padrão (mgmt-bridge300) e clique em Interface Setting, como mostrado na imagem.

No pop-up, escolha usar um IP dinâmico, que permita que o aplicativo IOx busque um IP do servidor DHCP na VLAN configurada na interface AppGi1/1 ou defina um IP estático.

É importante, como mencionado na etapa de rede, que você especifique a VLAN para corresponder ao acesso/tronco de AppGi1/1 nesta etapa.

Atualmente, uma interface de aplicativo IOx precisa ter o ID de VLAN configurado, mesmo que a interface AppGigabitEthernet1/1 esteja configurada no modo de acesso, isso ocorre porque o tráfego recebido pelo virteth2/L2br é sempre marcado.

Agora, salve as configurações de rede e ative o aplicativo.

Se tudo correr bem, o aplicativo deverá terminar no status Ativado.

Iniciar

Agora que o aplicativo está ativado, tudo que resta para que as coisas funcionem, é iniciar o aplicativo.

Clique no botão Iniciar do aplicativo no Gerenciador local, como mostrado na imagem.

Depois dessa ação, o aplicativo deve estar no estado Em execução e você deve conseguir acessar o aplicativo usando a rede configurada.

Caso tenha optado por usar o DHCP, navegue para Manage > App-Info > interface-name > eth0, para encontrar o endereço IP do aplicativo.

Para este documento, este aplicativo é um servidor web simples, executado na porta 9000. Para testá-lo, navegue até o endereço IP configurado (ou obtido por DHCP):

Usar cliente IOx

O IOxclient é a contraparte baseada em CLI do Local Manager e é usado para gerenciar e implantar aplicativos IOx em plataformas habilitadas para IOx usando CLI. O IOxclient está conversando com o mesmo serviço Web em execução no próprio dispositivo habilitado para IOx, neste caso o IE3400.

Você pode baixar o ioxclient usando o seguinte link: https://developer.cisco.com/docs/iox/#!iox-resource-downloads

Preparar o ioxclient

Depois de extraído, podemos executar o ioxclient e criar um perfil que dirá ao ioxclient como acessar o 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

As informações que precisam ser inseridas dependem da configuração da rede e do usuário priv15 especificado conforme explicado no início deste artigo.

Lembre-se de que o número da porta IOx para IE3400 é 443 por padrão e não a porta 8443 sugerida.

Implantar

A primeira etapa é implantar o IE3400 como o aplicativo instalado no dispositivo de borda.

Isso pode ser feito conforme mostrado aqui através do 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

Você pode verificar o status do aplicativo com o comando app list:

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    DEPLOYED

Ativar

Agora que o aplicativo está implantado, você pode continuar a ativá-lo. Nesta fase, você especifica quais recursos serão usados pelo aplicativo.

Para escolher quais recursos de computação são permitidos para o aplicativo usar ou configurar a rede, você precisa fornecer informações no formato JSON.

Para este artigo, este JSON é usado para ativação:

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

}

}]

}

}

O acima define o ID da VLAN e o endereço IP corretos a serem usados para o aplicativo. Caso deseje usar o DHCP, você pode remover o bloco ipv4.

É importante, como mencionado na etapa de rede, que você especifique a VLAN para corresponder ao acesso/tronco de AppGi1/1 nesta etapa.

Atualmente, uma interface de aplicativo IOx precisa ter o ID de VLAN configurado, mesmo que a interface AppGigabitEthernet1/1 esteja configurada no modo de acesso, isso ocorre porque o tráfego recebido pelo virteth2/L2br é sempre marcado.

Para ativar o aplicativo IOx através do payload JSON, use 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

Novamente, você pode usar o comando app list para verificar o status após a ativação:

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    ACTIVATED

Iniciar

Agora que o aplicativo está ativado, tudo que resta para que as coisas funcionem, é iniciar o aplicativo.

O comando ioxclient para iniciar nosso aplicativo é o seguinte:

[jensd@cen8 ~]$ ioxclient app start testweb

Currently active profile :  default

Command Name:  application-start

App testweb is Started

Para saber qual endereço IP foi adquirido do DHCP, caso você tenha ignorado a peça ipv4 durante a ativação, use este comando:

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

"ipv4": {

"ipv4": "192.168.0.223",

...

Para verificar se o comando start foi bem-sucedido, poderíamos usar novamente o comando ioxclient app list ou simplesmente verificar se o aplicativo faz o que deve fazer.

Para este artigo, este aplicativo é um servidor web simples, executado na porta 9000 para que possamos testá-lo consultando o endereço IP configurado (ou obtido por DHCP):

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

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

Usar CLI IOS-XE

Dispositivo IOS-XE habilitado para IOx, expõe a capacidade de fazer a implantação de aplicativos e é gerenciado diretamente da CLI do IOS-XE. Isso não exige que o Servidor Web no IOS-XE seja ativado.

Implantar

Como o aplicativo é implantado a partir da CLI do IOS-XE, primeiro copie seu pacote de aplicativos do IOx em um sistema de arquivos que é facilmente acessível a partir dessa CLI.

O mais fácil é primeiro copiar o pacote de aplicativos IOx (package.tar) para 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)

Quando o pacote estiver lá, implante-o 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.

Quando isso for concluído, você poderá verificar o status da instalação.

ie3400#sh app-hosting list

App id                                   State

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

testweb                                  DEPLOYED

Ativar

Depois da implantação, como com os outros métodos, a próxima etapa é ativar o aplicativo. Nesta fase, especifique quais recursos são usados pelo aplicativo.

No mínimo, você precisa configurar a rede. Isso pode ser feito conforme mostrado aqui:

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

Isso instrui o aplicativo a receber um IP estático, usando a VLAN ID 1.

É importante, como mencionado na etapa de rede, que você especifique a VLAN para corresponder ao acesso/tronco de AppGi1/1 nesta etapa.

Atualmente, uma interface de aplicativo IOx precisa ter a ID da VLAN configurada mesmo que a interface AppGigabitEthernet1/1 esteja configurada no modo de acesso, isso ocorre porque o tráfego recebido pelo virteth2/L2br é sempre marcado:

Depois de definir a configuração, continue com a ativação:

ie3400#app-hosting activate appid testweb

testweb activated successfully

Current state is: ACTIVATED

Iniciar

Após a ativação, a última etapa é iniciar o aplicativo.

Isso pode ser feito com este comando:

ie3400#app-hosting start appid testweb

testweb started successfully

Current state is: RUNNING

Caso não tenha definido um endereço IP na fase de ativação e decidido usar o DHCP, você pode obter o endereço IP recebido pelo aplicativo:

ie3400#sh app-hosting detail | i IPv4

IPv4 address        : 192.168.0.224

Para verificar se o comando start foi bem-sucedido, podemos simplesmente verificar se o aplicativo faz o que ele deve fazer.

Para este documento, este aplicativo é um servidor web simples, executado na porta 9000 para que possamos testá-lo consultando o endereço IP configurado (ou obtido por DHCP).