此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何在IE3400上部署、激活和启动IOx应用。
Cisco 建议您了解以下主题:
自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。
在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有多种方法。本文档介绍以下方法:
其中一种方法足以执行所有任务,为了实现完整性并广泛受众,我们在此记录了这三种方法。
本地管理器是一个图形界面,用于在支持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应用程序处于已部署状态。
部署应用后,下一步是激活它。在此阶段,指定应用程序使用的资源。
如图所示,单击已部署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是基于CLI的本地管理器的对应产品,用于使用CLI在支持IOx的平台上管理和部署IOx应用。IOxclient正在与启用IOx的设备(本例中为IE3400)上运行的相同Web服务进行通信。
您可以使用以下链接下载ioxclient:https://developer.cisco.com/docs/iox/#!iox-resource-downloads
提取后,我们可以运行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
现在已部署应用程序,您可以继续激活它。在此阶段,您指定应用程序要使用哪些资源。
要选择允许应用使用或配置网络的计算资源,您需要以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>
支持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
部署后,与其他方法一样,下一步是激活应用程序。在此阶段,指定应用程序使用哪些资源。
您至少需要配置网络。这可以如下所示:
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获取的地址)来测试它。