目录

简介

先决条件

要求

配置

网络

启用IOx

使用入门

通过本地管理器

连接到本地管理器

部署

Activate

开始

使用IOxclient

准备ioxclient

部署

Activate

开始

使用IOS-XE CLI

部署

Activate

开始

简介

本文档介绍如何在IE3400上部署、激活和启动IOx应用。

先决条件

要求

Cisco 建议您了解以下主题：

- 基本了解Cisco IOx和IOS

- 运行IOS XE版本>17.2.1的IE3400 8P2S或8T2S

配置

自IOS版本17.2.1起，IE3400坚固型系列交换机支持IOx应用托管。这允许您在边缘设备上运行自己的自定义代码/应用/容器。与大多数支持应用托管的IoT平台一样，我们需要牢记一些具体信息，本文档将对此作进一步说明。

网络

IE3400有一个额外的（虚拟）接口，用于连接IOx应用，称为AppGigabitEthernet1/1

此图中显示了此接口的简化架构。

如您所见，名为AppGigabitEthernet1/1的接口提供与应用的连接。AppGigabitEthernet1/1在接入或中继模式下均可配置为常规物理接口，因此有多种可用选项。此端口的另一个常见名称是KR端口。

目前，即使AppGiabitEthernet1/1接口配置为接入模式，IOx应用接口也需要配置VLAN ID，这是因为virteth2/L2br接收的流量始终被标记。

在本文档中，配置了VLAN 1中接入模式的AppGigabitEthernet1/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

为了同时访问交换机和IOx应用，需要配置VLAN 1的SVI IP地址：

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

启用IOx

配置网络后，在设备上启用IOx。

在IE3400上，需要SD卡来存储IOx应用和数据。在启用IOx之前，请确保SD卡使用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

然后，使用以下命令启用IOx:

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.

要远程访问IOx功能，请使用（例如，本地管理器或ioxclient），确保已启用Web服务器并为用户配置了访问权限：

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

使用入门

将IOx应用部署到IE3400有多种方法。本文档介绍以下方法：

- 使用本地管理器 — 图形UI

- 使用ioxclient — 远程CLI

- 使用IOS-XE — 设备上CLI

其中一种方法足以执行所有任务，为了实现完整性并广泛受众，我们在此记录了这三种方法。

通过本地管理器

本地管理器是一个图形界面，用于在支持IOx的平台上管理和部署IOx应用。本地管理器在启用IOx的设备（本例中为IE3400）上运行。

连接到本地管理器

如果您已完成启用Web服务器和添加用户的过程，您应该能够使用SVI IP地址访问IE3400的Web界面，使用https://<svi ip>/(在本文中：https://192.168.0.30/):

您可以使用如上所述创建的用户登录，然后导航到Configuration > Services > IOx，如图所示。

如果您希望直接导航到Local Manager，可以使用以下URL:https://<svi ip>/iox/login(在本文中为https://192.168.0.30/iox/login)。

在Local Manager登录屏幕上，再次使用上面定义的priv 15用户。

部署

登录后，开始部署应用。

单击Add New，为应用程序选择一个名称，然后浏览到PC上的应用程序包，如图所示。

单击OK后，应用程序将上传并安装在IE3400上。如果一切正常，您应在屏幕上看到此映像，IOx应用程序处于已部署状态。

Activate

部署应用后，下一步是激活它。在此阶段，指定应用程序使用的资源。

如图所示，单击已部署IOx应用的激活按钮。

在下一个屏幕中，您可以选择要分配给应用的计算资源量。

要配置网络，请单击“Network Configuration（网络配置）”的编辑，如图所示。

在网络配置中，选择编辑默认网络名称(mgmt-bridge300)，然后单击Interface Setting，如图所示。

在弹出窗口中，选择使用动态IP，该动态IP允许IOx应用从您在AppGi1/1接口上配置的VLAN中的DHCP服务器获取IP，或设置静态IP。

如网络步骤所述，在此步骤中，您必须指定VLAN以与AppGi1/1的接入/中继匹配。

目前，即使AppGiabitEthernet1/1接口配置为接入模式，IOx应用接口也需要配置VLAN ID，这是因为virteth2/L2br接收的流量始终被标记。

现在保存网络设置并激活应用。

如果一切顺利，应用程序应最终处于“激活”状态。

开始

既然应用程序已激活，那么启动应用程序就是实现目标。

如图所示，单击Local Manager中应用程序的“开始”按钮。

执行此操作后，应用应该处于Running状态，并且您应该能够使用配置的网络访问应用。

如果您选择使用DHCP，请导航至Manage > App-Info > interface-name > eth0，以查找应用的IP地址。

对于本文档，此应用程序是一个简单的Web服务器，运行在端口9000上。要测试它，请导航至已配置（或通过DHCP获取）的IP地址：

使用IOxclient

IOxclient是基于CLI的本地管理器的对应产品，用于使用CLI在支持IOx的平台上管理和部署IOx应用。IOxclient正在与启用IOx的设备（本例中为IE3400）上运行的相同Web服务进行通信。

您可以使用以下链接下载ioxclient:https://developer.cisco.com/docs/iox/#!iox-resource-downloads

准备ioxclient

提取后，我们可以运行ioxclient并创建一个配置文件，该配置文件将告诉ioxclient如何到达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

需要输入的信息取决于本文开头所说明的网络配置和priv15用户。

请记住，IE3400的IOx端口号默认为443，而不是建议的端口8443。

部署

第一步是部署IE3400作为安装在边缘设备上的应用。

这可以通过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

您可以使用app list命令验证应用的状态：

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    DEPLOYED

Activate

现在已部署应用程序，您可以继续激活它。在此阶段，您指定应用程序要使用哪些资源。

要选择允许应用使用或配置网络的计算资源，您需要以JSON格式提供信息。

对于本文，此JSON用于激活：

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

}

}]

}

}

以上设置了用于应用的正确VLAN ID和IP地址。如果您想使用DHCP，可以删除ipv4块。

如网络步骤所述，在此步骤中，您必须指定与AppGi1/1的接入/中继匹配的VLAN。

目前，即使AppGiabitEthernet1/1接口配置为接入模式，IOx应用接口也需要配置VLAN ID，这是因为virteth2/L2br接收的流量始终被标记。

要通过JSON负载激活IOx应用，请使用以下命令：

[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

同样，您可以在激活后使用app list命令检查状态：

[jensd@cen8 ~]$ ioxclient app list

Currently active profile :  default

Command Name:  application-list

List of installed App :

1. testweb    --->    ACTIVATED

开始

既然应用程序已激活，那么启动应用程序就是实现目标。

用于启动应用的ioxclient命令如下：

[jensd@cen8 ~]$ ioxclient app start testweb

Currently active profile :  default

Command Name:  application-start

App testweb is Started

为了了解从DHCP获取的IP地址，如果激活期间跳过了ipv4部分，可以使用以下命令：

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

"ipv4": {

"ipv4": "192.168.0.223",

...

要检查start命令是否成功，我们可以再次使用ioxclient app list命令，或者只检查应用程序是否执行了预期的操作。

对于本文，此应用是一个简单的Web服务器，运行在端口9000上，因此我们可以通过查询配置的IP地址（或通过DHCP获取的）来测试它：

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

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

使用IOS-XE CLI

支持IOx的IOS-XE设备，可显示执行应用部署的能力，并直接从IOS-XE CLI进行管理。这不需要启用IOS-XE上的Web服务器。

部署

由于应用是从IOS-XE CLI部署的，因此首先将IOx应用包复制到可从该CLI轻松访问的文件系统。

最简单的方法是首先将IOx应用程序包(package.tar)复制到闪存：

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)

一旦软件包到达，请为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.

完成此操作后，您可以检查安装状态。

ie3400#sh app-hosting list

App id                                   State

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

testweb                                  DEPLOYED

Activate

部署后，与其他方法一样，下一步是激活应用程序。在此阶段，指定应用程序使用哪些资源。

您至少需要配置网络。这可以如下所示：

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

这指示应用使用VLAN ID 1接收静态IP。

如网络步骤所述，在此步骤中，您必须指定与AppGi1/1的接入/中继匹配的VLAN。

目前，即使AppGiabitEthernet1/1接口配置为接入模式，IOx应用接口也需要配置VLAN ID，这是因为virteth2/L2br接收的流量始终被标记：

设置配置后，继续激活：

ie3400#app-hosting activate appid testweb

testweb activated successfully

Current state is: ACTIVATED

开始

激活后，最后一步是启动应用。

这可以通过以下命令完成：

ie3400#app-hosting start appid testweb

testweb started successfully

Current state is: RUNNING

如果您未在激活阶段设置IP地址并决定使用DHCP，则可以获取您的应用程序收到的IP地址：

ie3400#sh app-hosting detail | i IPv4

IPv4 address        : 192.168.0.224

为了检查start命令是否成功，我们只需检查应用程序是否执行了它应该执行的操作。

对于本文档，此应用程序是一个简单的Web服务器，运行在端口9000上，因此我们可以通过查询配置的IP地址（或通过DHCP获取的地址）来测试它。