1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Schematics/terraformを使い分散クラウドSatelliteをIBM Cloud上に自動構築

Last updated at Posted at 2022-08-04

1. 目的

IBM Cloud Satelliteを、AWSやAzureの上に作成する時は、IBM Catalogからボタンを押下すればSatelliteのlocationをセットアップしてControle Planeの作成まで自動的に実施されます。これに対してIBM Cloud上に作成する時は、現在は手動作成する以外に方法がありません。最低6台の仮想Server作成からはじめてHostAttachShellをダウンロードして流した後にROKSクラスターの作成まで非常に手間暇かかる作業になります(最低半日)。これをIBM Cloud Schematicsを利用して自動構築できるようにしました。

IBM Cloud Schematicsは各種Serviceの導入/管理自動化を目的にTerraformによるInfrastructure as Codeを実現するための開発支援・実行環境を提供します。

IBMCloudのSchematicsで利用できるTerraformのサンプルがGitHub上に各種公開されており、これをベースに一部修正を加えて利用しております。(修正内容は"4.サンプルTerraformの修正内容"にて後述)

以下Satelliteセットアップの際のScematicsの利用手順及び利用したTerraformを紹介します。

Schematicsによる自動化対象範囲
1.VPC新規作成/仮想Server6台作成,他各種VPCサービス作成
2.Satellite Location作成
3.Server上のHostAttach Shell実行によりHost割り当て
4.Satellite Controle Plane作成
5.ROKSクラスター作成

(注意)
1. IBM Cloud上にIBM Cloud Satelliteを作成するのはテストまたはPOC用途に限定されます(サポート対象)
https://cloud.ibm.com/docs/satellite?topic=satellite-ibm

2. IBM Cloud上のSatelliteの手動セットアップについて下記を参照ください。
https://qiita.com/nori0315/items/a93229d561ce8c3bcd5b

2. Schematicsの作成/実行

SchematicsはCLIインターフェースを利用することもできますが、ここではIBMCloud Portalから入りGUIにより利用します。

APIキーの作成

まずSatelliteを作成するためにのAPI Keyを作成します。
スクリーンショット 2022-07-20 11.48.12.png

Workspaceの作成

IBM Cloud CatalogからSchematicsを選択してワークスペース作成ボタンを押下すると下記画面現れるのでterraformのディレクトリィのあるgithubのリポジトリーを入力します。

(https://github.com/saka0315/terraform-provider-ibm/tree/master/examples/ibm-satellite)

スクリーンショット 2022-07-20 10.02.10.png

画面をスクロールして新規作成するワークスペース名を入力、ここではロケーションは北アメリカを選択して次へのボタンを押下します。

スクリーンショット 2022-07-20 10.03.03.png

下記の確認画面が出るので右下の作成ボタンを押します。

スクリーンショット 2022-07-20 10.03.18.png

左メニューからジョブを選択して、該当のワークスペースの作成が成功したことを確認します。

スクリーンショット 2022-07-20 10.05.38.png

設定変数の入力/確認

左メニューから設定を選択して、画面スクロールするとterraform のvariables.tfで定義した変数一覧が現れます。
スクリーンショット 2022-07-20 10.10.56.png

一番上にあるibmcloud_api_keyに先ほど作成したAPIキーを入力して機密ボタンにチェックを入れ保存します。
スクリーンショット 2022-07-20 10.10.21.png

他の変数は環境に合わせて適宜入力/保存してください。ここではDefault値を利用するものとします。

入力項目 変数名 デフォルト値
リソースグループ名 resource_group  Default
satelliteリージョン  ibm_region  us-east
satelliteロケーション名 location  satelllite-ibm
Satellite管理リージョン名  managed_from  wdc
ロケーションゾーン location_zones  us-east-1, us-east-2, us-east-3
VPC各種リソースのプレフィクス名  is_prefix satellite-ibm
VPC仮想サーバーのFlavor profile bx2-4x16
ROKSクラスター名  cluster satellite-ibm-cluster
ROKS配置ゾーン  cluster_zones us-east-1,us-east-2, us-east-3
ROKSバージョン  kube_version 4.8_openshift

Planの生成

右上のプラン生成ボタンを押してプランを生成(terraform plan)して、入力内容のチェツクを行います。

スクリーンショット 2022-07-20 10.12.44.png

Planの生成の失敗時は、ジョブの画面のログよりエラーメッセージを確認
して、設定画面の変数入力もしくはterraformスクリプトに原因がないかを確認します。terraformスクリプト修正した場合は設定画面の"最新をプル"を押下すればワークスペースの更新ジョブが流れます。

Planの適用

プランの生成が成功した後に、右上のプランの適用ボタンを押してPlanの適用(terraform apply)を実施します。
スクリーンショット 2022-07-20 11.15.29.png

Schematics/Satellite/VPCの確認

ジョブ画面よりプランの適用が成功したことが確認できました。

スクリーンショット 2022-07-20 13.05.30.png

次にSchematicsにより各種リソースが正常に作成されたことを確認します、
下記はVPCの仮想サーバーの画面になり、satellite-ibm-instance-0 ~ satellite-ibm-instance-05まで、bx2-4x16のフレーバーで作成されていることがわかります。

スクリーンショット 2022-07-20 13.10.52.png

Satelliteの概要画面です。 "satelllite-ibm"の名前でロケーションが作成され、6台のHostが割り当て済みで正常に稼働していることがわかります。また右上に"Schematicsで管理"のボタンが現れ、以後は変更ある場合は当画面ではなくSchematics画面で管理することになります。

スクリーンショット 2022-07-20 13.10.00.png

ROKS概要画面から"satellite-ibm-cluster"の名前でクラスターが作成され、正常に稼働されていることが確認できます。
スクリーンショット 2022-07-20 13.10.08.png

またOpenshift Webコンソールにアクセスできることが確認できました
スクリーンショット 2022-07-20 13.21.09.png

アプリケーションをBuild/Deployする時は、SatelliteではDefaultで内部Image Registryを提供していないので事前にICOS等に作成する必要があります。

3. Schematicsからの削除

これまで作成したSatellite関連リソースを削除するときは左
メニューのジョブを選び該当のワークスペースを選択して
アクションボタンより"リソースの破棄"を選択することによりワークスペース
削除されます。

スクリーンショット 2022-07-20 13.25.16.png

4. サンプルTerraformの修正内容について

IBMより提供されているTerraformは下記内容を修正しています。
(https://github.com/saka0315/terraform-provider-ibm/tree/master/examples/ibm-satellite)

1. modules/cluster/main.tf バグ修正

ROKS ClusterのWorkerPool作成時にエラー発生したので
DefaultのWorker Poolを利用するように修正しています。
(Worker Poolの入力部をコメントアウト)

2. variables.tf 

・変数profileを追加 (仮想サーバーのフレーバー選択)
VPC Server仕様を変更できるようにしました。デフォルトは"bx2-4x16" (4vCPU,16GRAM)
・変数kube_versionのデフォルト値の変更
4.7_openshift=>4.8_openshiftに変更
・変数resource_groupのデフォルト値の追加
 "Default"を設定

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?