OSM (Open Source MANO) v16 インストール

OSM (Open Source MANO)の公式サイトでは、コマンド

$ wget https://osm-download.etsi.org/ftp/osm-16.0-sixteen/install_osm.sh
$ chmod +x install_osm.sh
$ ./install_osm.sh

を打つだけでインストールできると書いてありますが、インストールスクリプトに書かれているバージョンが古く使用可能でないパッケージ等がある理由で途中で失敗してしまいます。2026年1月にOSM v16のインストールに成功した際の設定について書きます。

環境

インストールした環境 OSM公式の推奨環境
OS Ubuntu 22.04 LTS (Jammy Jellyfish) Ubuntu 22.04 LTS (Jammy Jellyfish)
RAM 16GB 16GB
CPU数 4 4
ディスク 128GB 80GB
NIC ネット接続ありx1
ネット接続なしx1
ネット接続ありx1

インストール

インストールスクリプトを実行する前に設定を書き換えます。

1. インストールスクリプトと設定ファイル等のダウンロード

1. 公式サイトの3行のコマンドのうち、2行をそのまま実行します。

$ wget https://osm-download.etsi.org/ftp/osm-16.0-sixteen/install_osm.sh
$ chmod +x install_osm.sh

2. install_osm.shの最終行をコメントアウトします。これはインストールスクリプトと設定ファイル等をダウンロードして実行はしないための措置です。

@@ -176,4 +176,4 @@
add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops"
sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install osm-devops
- $DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"
+ #$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"

3. install_osm.shを実行します。(-yを付けると、先に進めてよいか聞かれる箇所で自動ではいと答えてくれます。ただし、スクリプト中のsudo apt installでディスクスペースを使用してよいか聞かれるときなどは自動で答えてくれません。)

$ ./install_osm.sh

2. インストールスクリプトと設定ファイルの書き換え

※書き換え内容は2026年1月に動いた一例であり、これ以外の設定で動く場合も、時期や環境などによってはこの設定でも動かない場合があると思われます。

書き換えるファイルは全て/usr/share/osm-devops/installers/の中にあります。

2.1. インストールスクリプト(/usr/share/osm-devops/installers/直下)

1. install_k3s_cluster.sh

@@ -17,5 +17,5 @@
 
 # K3s releases: https://github.com/k3s-io/k3s/releases/
-K8S_VERSION="v1.29.3+k3s1"
+K8S_VERSION="v1.32.11+k3s1"
 
 # configure registry
@@ -84,5 +84,5 @@
     echo "Waiting for pods to be ready"
     local time_for_readiness=20   # seconds ready
-    local time_for_failure=100    # seconds broken
+    local time_for_failure=200    # seconds broken
 
     # Equivalent number of samples

K3s自体は1.29でも入りますが、後の方のチェックで失敗します。また、ポッドの起動が時間がかかるため、待ち時間を延ばします。

2. install_mongodb.sh

@@ -29,5 +29,5 @@
     helm repo add bitnami https://charts.bitnami.com/bitnami
     helm repo update
-    helm upgrade mongodb-k8s bitnami/mongodb -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/mongodb-values.yaml --version ${MONGODB_HELM_VERSION} --timeout 10m || FATAL_TRACK mongodb "Failed installing mongodb helm chart"
+    helm upgrade mongodb-k8s bitnami/mongodb -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/mongodb-values.yaml --version ${MONGODB_HELM_VERSION} --timeout 10m --set image.repository=bitnamilegacy/mongodb || FATAL_TRACK mongodb "Failed installing mongodb helm chart"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }

bitnamiにはこのファイルの上の方で設定されているMongoDB 6.0.5が既にないため、代わりに6.0.5がまだあるbitnamilegacyを参照するように変更します。

3. install_ngsa.sh

@@ -35,5 +35,5 @@
     helm repo add apache-airflow https://airflow.apache.org
     helm repo update
-    helm upgrade airflow apache-airflow/airflow -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/airflow-values.yaml --version ${AIRFLOW_HELM_VERSION} --timeout 10m || FATAL_TRACK ngsa "Failed installing airflow helm chart"
+    helm upgrade airflow apache-airflow/airflow -n ${OSM_NAMESPACE} --create-namespace --install -f ${OSM_HELM_WORK_DIR}/airflow-values.yaml --version ${AIRFLOW_HELM_VERSION} --timeout 20m || FATAL_TRACK ngsa "Failed installing airflow helm chart"
     [ -z "${DEBUG_INSTALL}" ] || DEBUG end of function
 }

こちらもポッドの起動に時間がかかるため、待ち時間を延長します。

2.2. 設定ファイル(フォルダ/usr/share/osm-devops/installers/helm/usr/share/osm-devops/installers/mgmt-cluster内)

1. helm/osm/values.yaml

@@ -198,4 +198,7 @@
 
 kafka:
+  image:
+    repository: bitnamilegacy/kafka
+    tag: 4.0.0-debian-12-r10
   enabled: true
   listeners:
@@ -203,5 +206,25 @@
       protocol: "PLAINTEXT"
   fullnameOverride: "kafka"
-  # replicaCount: 1
+  replicaCount: 3
+  listeners:
+    client:
+      protocol: "PLAINTEXT"
+    controller:
+      protocol: "PLAINTEXT"
+    interbroker:
+      protocol: "PLAINTEXT"
+  controller:
+    containerPort: 9093
+  livenessProbe:
+    enabled: true
+    initialDelaySeconds: 300
+    periodSeconds: 10
+    failureThreshold: 15
+  readinessProbe:
+    enabled: true
+    initialDelaySeconds: 60
+    periodSeconds: 10
+    failureThreshold: 10
+  terminationGracePeriodSeconds: 60 
 
 keystone:
@@ -252,6 +275,13 @@
   enabled: true
   image:
+    repository: bitnamilegacy/mysql
     tag: "8.1-debian-11"
   fullnameOverride: "mysql"
+  primary:
+    startupProbe:
+      enabled: true
+      initialDelaySeconds: 90
+      periodSeconds: 10
+      failureThreshold: 100
 
 nbi:
</pre>

こちらもkafkaとmysqlがbitnamiから取れないため、参照先を変更します。また、ポッドの起動に時間がかかるため、タイムアウトして失敗しないよう時間制限を緩めます。また、なぜかkafkaのpodたちが通信に失敗することがあるので、ポートを指定します。

2. helm/values/airflow-values.yaml

@@ -48,2 +48,7 @@
   persistence:
     size: 8Gi
+
+postgresql:
+  image:
+    repository: bitnamilegacy/postgresql
+    tag: 15 

同様にairflowが依存するpostgresqlについて参照先を変更します。

3. mgmt-cluster/gitea/values-standalone-ingress-ssh2222.yaml

@@ -435,4 +435,7 @@
 ## @param memcached.service.port Port for Memcached
 memcached:
+  image:
+    repository: bitnamilegacy/memcached
+    tag: 1.6.10
   enabled: true
   service:
@@ -448,4 +451,7 @@
 ## @param postgresql.persistence.size PVC Storage Request for PostgreSQL volume
 postgresql:
+  image:
+    repository: bitnamilegacy/postgresql
+    tag: 15
   enabled: true
   global:

giteaが依存するmemcachedとpostgresqlについて参照先を変更します。

3. インストール実行

1. install_osm.shの最終行のコメントアウトを解除します。
install_osm.sh

@@ -176,4 +176,4 @@
add_repo "deb [arch=amd64] $REPOSITORY_BASE/$RELEASE $REPOSITORY devops"
sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install osm-devops
- #$DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"
+ $DEVOPS_PATH/installers/full_install_osm.sh -R $RELEASE -r $REPOSITORY -u $REPOSITORY_BASE -D $DEVOPS_PATH -t $DOCKER_TAG "$@"

2. install_osm.shを実行します。(-yを付けると、先に進めてよいか聞かれる箇所で自動ではいと答えてくれます。ただし、スクリプト中のsudo apt installでディスクスペースを使用してよいか聞かれるときなどは自動で答えてくれません。)

$ ./install_osm.sh -y

3. インストールが完了するまでに少なくとも30分ほどはかかります。画面には進捗状況が表示されます。

補足

  • インストールに失敗した場合、再度インストールする前に失敗したインストールの残骸を削除する必要があります。その際、osmがインストールの序盤で生成する/usr/local/bin/k3s-killall.sh/usr/local/bin/k3s-uninstall.shがあるため、それを実行するとよいです。また、/etc/kubernetes//var/lib/etcd/$HOME/.kube//etc/cni/net.dも削除しておくとよいです。
  • bitnamilegacyにもあまり古すぎるファイルはないようで、今回ではたとえばpostgresqlとkafkaはデフォルトで指定されるバージョンが見つからなかったので、bitnamilegacyにあるバージョンに差し替えました。bitnamilegacyでどのバージョンがあるかについては、 https://hub.docker.com の各レポジトリのtagsを参照するとよいです。例えば、mongodbであれば、 https://hub.docker.com/r/bitnamilegacy/postgresql/tags を見ると、どのバージョンがあるかがわかります。
  • bitnamilegacyのパッケージは基本的にサポートが切れているので、プロダクション環境では使わない方がいいらしいです。
  • タイミングの問題で同期がうまくいかずにインストールが失敗することもあり、その場合には全く同じ設定でもう一度インストールするとうまくいくことがあります。

創立18周年のご挨拶

残暑厳しき折、皆様には益々ご清祥のこととお喜び申し上げます。
本日、株式会社ビットマイスターは創立18周年を迎えることができました。ここまで歩みを続けてこられましたのは、ひとえに皆様から賜りました温かいご支援とご信頼のおかげであり、心より厚く御礼申し上げます。

第18期は、拡大を続ける通信関連研究の支援が大きな柱となりました。
Beyond5Gに向けた各種検証用アプリケーションの開発や、サイバーフィジカルシステムにおけるワイヤレスエミュレータ環境の構築、陸上から宇宙に至るまでをシームレスに結ぶ通信オーケストレーターの開発、「サイバネティック・アバター」基盤研究における信頼性向上ネットワークシステムの構築など、これまで培ってきた知見をさらに発展させる取り組みが進みました。いずれも高度な技術支援を必要とする案件であり、私たちにとって大きな成長の機会となっております。

教育・学術分野におきましても、大学向けの科学教育・教育工学分野でのシステム改修・保守サポートを継続するほか、学術クラウドファンディングサイト「academist」を運営するアカデミスト様の研究支援プログラムへの協賛研究プロジェクトのIT化や運営支援など、多様な形で研究者の活動を支えてまいりました。研究者を取り巻く環境はますます高度化し、限られた資源の中で迅速かつ質の高い成果が求められる時代を迎えております。そうした状況にあっても研究者の皆さまが本来の探究に集中できるよう、通信・教育・防災といった多彩なプロジェクトで培った経験と、OSS(オープンソースソフトウェア)の活用を組み合わせ、研究開発の立ち上げから環境構築、成果の可視化や社会発信に至るまで、一貫した支援をお届けしています。

一方で、弊社の研究支援サービスに関心を寄せてくださる新規のお客様からのご相談も増加しておりますが、リソースの制約からすべてのご依頼に十分対応できない場面も生じております。今後は事業のさらなる効率化を図るとともに、新規採用や外部パートナーとの協力体制を強化し、一つでも多くのニーズにお応えできるよう、創意工夫を重ねてまいります。

私たちの使命は、ソフトウェア技術を最大限に活用し、多様な研究開発を支援しながら、皆様と共に次世代の技術を築き上げていくことです。これからも誠実かつ柔軟な姿勢で、研究者の挑戦と社会の期待に応えてまいりたいと存じます。

今後とも変わらぬご支援とご指導を賜りますよう、心からお願い申し上げます。

令和7年8月20日
株式会社ビットマイスター
代表取締役 笠原 勉

創立17周年のご挨拶

残暑厳しき折、皆様にはお変わりなくお過ごしのことと存じます。

本日、株式会社ビットマイスターは創立17周年を迎えることができました。これもひとえに、皆様のご支援とご愛顧の賜物と、心より感謝申し上げます。

第17期は、数年来携わらせていただいている研究プロジェクトの他、新たな次世代分野への支援も開始しました。複数の人が遠隔操作する多数のアバターとロボットを組み合わせた、大規模で複雑なタスクを実行するためのサイバネティック・アバターの基盤研究向けの信頼性向上ネットワークシステム構築、無人自動運転を目指した最新MaaS研究向けV2X技術開発、ともに新規のエンドユーザ様向けの支援となりました。

Beyond5G向けの要素技術の各種検証用アプリケーションの開発、サイバーフィジカルシステムでのワイヤレスエミュレータの環境構築、陸上から宇宙に至る全ての領域をシームレスに繋ぐ通信システムのオーケストレーター開発、ならびにシミュレーション用ソフトウェアの提供等の通信関連研究の継続支援におきましては、おかげさまで拡大傾向にあります。

主に大学様に向けた科学教育・教育工学分野の支援においては、過去に提供したシステムの保守サポートに加え、教育ツール関連の新規開発を行いました。弊社が開発協力した学習アプリケーションを利用した研究が学会で賞を獲得したとの報告をいただくこともあり、研究推進の一助となれたことを嬉しく存じます。

また、埼玉大学様と地元企業様との産学官連携活動をきっかけに開発したデジタルサイネージ型防災情報提供システム『ソナエージ』は、次の展開に向けた活動を続けて来ました。災害情報などの危機管理情報を便利に取り扱うための、準天頂衛星みちびきが送信する災危通報メッセージのデコーダー「azarashi」を開発し公開しています。

弊社が提供している「研究開発ITサービス」は、研究活動をソフトウェア技術でサポートすることですが、昨今は、単に研究用のソフトウェアの提供にとどまらず、研究開発環境の構築方法や、研究成果をステークフォルダーに分かりやすく説明するアウトリーチ用のデモンストレーション手法等を、研究の初期委段階からアイデア含めて相談いただくことも増えてきました。創業時より積み重ねてきた研究支援ノウハウを効果的にご利用いただけるように、第18期におきましても社員一同、より一層精進してまいりますので、今後とも変わらぬご愛顧を賜りますようお願い申し上げます。

厳しい暑さが続きますが、皆様どうぞご自愛ください。

令和6年8月20日
株式会社ビットマイスター
代表取締役 笠原 勉

Common Alert Message Format

きょうは Common Alert Message Format (CAMF) について所感を書きます。準天頂衛星みちびきの災害・危機管理通報サービス(DCR)というのがありまして、その拡張(DCX)のメッセージフォーマットがCAMFです。

みちびきからはすでにCAMFのDCXメッセージが降ってきていて、欧州連合のGalileoの早期警報システム(EWS)もこの共通メッセージフォーマットが使われることになっています。なので、CAMFのデコーダーを実装すればGalileoのEWSも簡単にサポートできるはずです。こういうのは作る側からすると非常にありがたいですね。とはいえ、既存の気象庁の防災気象情報に基づいたDCRのメッセージフォーマットもわかりやすくよくできていました。CAMFはやろうとしてることが壮大な分、少し仕様が複雑です。

仕様の解説は仕様書を見てもらえばいいので、DCR/DCXデコーダーazarashiを実装していて感じたことを書きます。
Continue reading →

Azarashi supported DCX

ようやくできました。みちびきの災害・危機管理通報サービス(災危通報、DCR)にJ-AlertとL-Alertが追加されると聞いて、「2つ追加されるだけでしょ?かんたんかんたん」と思っていたら全然違いました。DCRのデコーダーをもう一度作るような手間がかかりました。

https://pypi.org/project/azarashi/

J-Alert、L-AlertはDCXというDCRとは異なるメッセージで配信され、CAMFというメッセージフォーマットを使っています。日本の災害・危機管理通報だけをターゲットにしたメッセージフォーマットではなく、様々な災害が定義されており、EUのGALILEOと共通で用いられることが想定されているようです。これはまた別の記事で書きます。

さて、azarashiはDCXをCAMFで定義されているビットフィールドに従ってこのように文字列化します。
Continue reading →