Tag: M-CORD

CORD 3.0 Service onboard procedure

CORD 3.0 Service onboard procedure

CORD 2.0 與 CORD 3.0 在架構上有很大的差異,
因此在此篇文章當中紀錄包括官方文件提供的說明與我自己摸索出的步驟。

在開始之前,其實可以先翻一下 官方的 M-CORD 3.0 Developer Environment Guide

除此之外,本文當中的每一個程式碼片段上方都會註解這應該在哪個 VM 操作。

Install M-CORD 3.0

Command for localhost

但是在我的經驗當中,我使用 -p mcord 來安裝都屢次失敗,
因此後來採用 將 R-CORD 重新 Build 為 M-CORD 的方式,
至於 Build 的詳細流程可以跟隨官方的 M-CORD 3.0 Dev Guide 完成。

On-board Service

當我們要開發一個 Service 時,與 CORD-2.0 不同,在 CORD-2.0 並沒有使用到 corddev 這一臺 VM,
而我們的 Service 也都在 prod 這一臺機器上面做開發。

Command for corddev

mcord.yaml 這一個設定檔中,有一段 xos_services 定義了 M-CORD 當中的 Service:

在這裡補上我們自己寫的 OAI(Open Air Interface) 的 XOS Service。

Change M-CORD yaml Template

放完我們自己寫的 Service 還沒有結束,因為在 prod 上的 Service Profile 全部都是由 Jinja Template 產出的。

所以除了放置 services 的檔案以外,還需要修改 Template。

/cord/build/platform-install/roles/cord-profile/templates/mcord-services.yaml.j2

Build Service

接下來的工作皆由 Ansible Playbook 自動做好,包括:

  • 把設定檔同步到 prod VM
  • 生成 Synchronizer Docker Images
  • 將 Docker Images push 到 prod

Start XOS Service

接下來根據官方文件所述,在 prod 定義一些指令(都是以 docker-compose 為 base 的):

並且執行:

或執行以下指令重新 Build 一次 XOS: