本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本文檔介紹如何在IE3400上部署、啟用和啟動IOx應用程式。
思科建議您瞭解以下主題:
自IOS版本17.2.1以來,IE3400強固型系列交換機支援IOx應用託管。這允許您在邊緣裝置上運行自己的自定義代碼/應用程式/容器。與大多數支援應用託管的IoT平台一樣,需要記住一些具體資訊,本文檔將對此進行進一步說明。
IE3400具有一個附加(虛擬)介面,用於連線到IOx應用程式,稱為AppGigabitEthernet1/1
此介面的簡化架構如下圖所示。
您可以看到,稱為AppGigabitEthernet1/1的介面提供了到應用的連線。有多種選項可用,因為AppGigabitEthernet1/1可在訪問或中繼模式下配置為常規物理介面。此埠的另一個常見名稱是KR埠。
目前,即使AppGigabitEthernet1/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功能,例如使用Local Manager或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。本文檔介紹了以下內容:
其中一種方法足以執行所有任務,它們僅記錄在此所有三個任務以實現完整性和廣泛受眾。
Local Manager是一個圖形介面,用於在支援IOx的平台上管理和部署IOx應用程式。本地管理器正在啟用IOx的裝置本身(在本例中為IE3400)上運行。
如果您已經完成啟用Web伺服器和新增使用者的過程,您應該能夠使用https://<svi ip>/ SVI IP地址訪問IE3400的Web介面(本文中為:https://192.168.0.30/):
您可以使用如上所述建立的使用者登入,然後導覽至Configuration > Services > IOx,如下圖所示。
如果您希望直接導航到本地管理器,您可以使用以下URL:https://<svi ip>/iox/login(本文https://192.168.0.30/iox/login)。
在Local Manager登入螢幕上,再次使用上面的priv 15使用者定義。
登入後,開始部署應用程式。
按一下Add New,選擇應用程式的名稱,然後瀏覽到PC上的應用程式套件,如下圖所示。
按一下OK後,應用程式將上傳並安裝在IE3400上。如果一切順利,您應該會在螢幕上看到此影象,並且您的IOx應用程式處於已部署狀態。
部署應用後,下一步是啟用它。在此階段,指定應用程式使用的資源。
按一下已部署IOx應用的Activate按鈕,如下圖所示。
在下一個螢幕中,您可以選擇要分配給應用程式的計算資源量。
若要設定網路,請按一下「edit」以設定網路組態,如下圖所示。
在網路配置中,選擇編輯預設的網路名稱(mgmt-bridge300),然後按一下Interface Setting,如下圖所示。
在彈出視窗中,選擇使用動態IP(允許IOx應用程式從您在AppGi1/1介面上配置的VLAN中的DHCP伺服器獲取IP)或設定靜態IP。
如同在網路步驟中提到的,在此步驟中,必須指定要與AppGi1/1的接入/中繼匹配的VLAN。
目前,即使AppGigabitEthernet1/1介面配置為接入模式,IOx應用介面也需要配置VLAN ID,這是因為通過virteth2/L2br接收的流量總是進行標籤。
現在儲存網路設定並啟用應用程式。
如果一切順利,應用程式應該會結束為已啟用狀態。
既然應用程式已經啟用,那麼啟動應用程式就是一切工作的基礎。
在Local Manager中按一下應用程式的Start按鈕,如下圖所示。
執行此操作後,應用應處於「正在運行」狀態,並且您應該能夠使用配置的網路連線應用。
如果您選擇使用DHCP,請導航到Manage > App-Info > interface-name > eth0以查詢應用程式的IP地址。
對於本文而言,此應用程式是運行在埠9000上的簡單Web伺服器。要測試它,請導航到配置的IP地址(或通過DHCP獲得):
IOxclient是基於CLI的Local Manager版本,用於使用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。
目前,即使AppGigabitEthernet1/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。
目前,即使AppGigabitEthernet1/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獲取的)來測試它。