M-CORD Service Onboard & Debug

M-CORD Service Onboard & Debug

此篇文章將描述在開發 M-CORD Service 時,在 CORD 這種龐大的架構下,應該如何去 Debug Service 在哪裡寫錯了,作為未來找不到方向時的指引。

在最開始,我們可以做最基本的 Syntax Check,檢查 Service 是否有哪邊漏了冒號之類的:

若還是沒有錯誤,那可能就是引用到未知的 Library,畢竟在 M-CORD Service Development 時,修改別人的 Service 卻沒改對是很常見的。

Debug Using XOS API

在我們要 make xos 時,他會去 onboard 所有在 Makefile 被指定的 Service,若你的 Service 也在內且寫錯了,那就會看到一直處於 onboarding 的狀態當中。

此時,如果你檢查了 onboarding 使用的 check status api,可以發現是:

這邊所帶的兩個參數:

  • $1: 81 – XOS Default API Port
  • $2: services/name – 你的 Service 名稱

不過因為我們以 curl 回來的資訊,會是 html Source Code,並不便於我們觀看。

因此,可以考慮建立 SSH Tunnel 到 CORD Server 上:

接著你就能夠直接連線到以下網址去檢查問題:

localhost:8888/api/utility/onboarding/services/oai/ready/

Automatically create slice and instance

當我們已經完成 Service 時,可以考慮利用 mcord.yaml 來自動建立 Instance,這樣便不需要每次重新 Build M-CORD 後,都需要再次手動建立 Instance。

以下內容可以直接參考到 aweimeow/MCORD-OAIService 原始碼的內容。

node_type & node_templates

在 yaml 中定義可以參考到 TOSCA Simple Profile in YAML.,TOSCA 全名為 Topology and Orchestration Specification for Cloud Applications,是一種定義網路服務的格式。

node_type 會定義出我們擁有的 Node,例如在 OAI Component 便代表著我定義 Open Air Interface EPC 這個角色的節點。

裡面定義了這個 Node 有三個屬性:kind, display_message, image_name,還有他們的型態、預設值、是否再建立時為必須屬性,以及對於此屬性的簡單描述。

node_template 則定義了這個 Service,包含他的類型是 RANvEPC,以及 Service 的 Key Location。

這邊的 Key Location 對應到我們在 MakeFile 當中複製 id_rsaid_rsa.pub 的動作。

定義完以上兩者之後,我們還需要建立 Slice 作為 Tenant 的容器。

在 Slice 定義了使用的 Service放置 Slice 的地點 - site預設的 Image預設的 Flavor[1]連線到的網路

在這邊連到三個 Network:

  • management
  • management_host
  • wan_network

前面兩者能夠讓我們從外界連進這個 Slice 底下的 Tenant 進行操作,而 wan_network 則代表這個 Tenant 的對外網路能力。

最後是自動建立 Tenant:

寫在最後

若想要對於 TOSCA Template Engine 更瞭解,可以參閱先前我撰寫的 CORD TOSCA Yaml Engine

文章當中的 TOSCA configuration file 都是把縮排去掉的版本,為了觀看方便,原始可執行的版本請見 aweimeow/MCORD-OAIService – mcord.yaml

若出現以下訊息時,請不要緊張:

它代表你的 YAML 寫錯了,你需要檢查在他說的那一行當中,是不是多一格空格或少一格空格。

而且,你不孤單,看看 這個連結 就知道多少人深受 YAML Format 所苦了 XD

References

[1] Openstack 對於 Virtual Machine 的資源定義,包含使用的 CPU 資源、使用的 Memory、Disk …,文件可參考到 OpenStack Docs: Flavors

Leave a Reply

Your email address will not be published. Required fields are marked *