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のパッケージは基本的にサポートが切れているので、プロダクション環境では使わない方がいいらしいです。
  • タイミングの問題で同期がうまくいかずにインストールが失敗することもあり、その場合には全く同じ設定でもう一度インストールするとうまくいくことがあります。