O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve como implantar, ativar e iniciar um aplicativo IOx no IE3400.
A Cisco recomenda que você tenha conhecimento destes tópicos:
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.
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
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
Há vários métodos para implantar aplicativos IOx no IE3400. Este documento descreve os seguintes itens:
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.
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.
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.
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.
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.
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):
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
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.
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
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
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>
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.
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
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
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).