前回のおさらい
"CD3 Automation Toolkit"でOCIリソースをExcelから爆速構築!シリーズです。
その1概要説明とリソース作成編はこちら
その2リソース出力編はこちら
導入
検証内容
前回までの再掲です。
- 既存リソースの取り込み必要のない前述のユースケースパターン "Greenfield workflow"環境にて、Excelファイルから正常にリソースが作成と削除、更新がされるか検証する
- 作成対象リソースは次の通り
Phoenixリージョン(Home)
- VCN
- Subnet
- Route Table
- Security List
- Compute ☆
- Object Storage - Bucket ★
Tokyoリージョン(Remote)
- Object Storage - Bucket ★
検証シナリオ
前記事(その1)で実行済
- Excelを記入してアップロードし、当ツールで"create resources"を実行
- 生成されたTerraformコードを利用して構築(Apply)実行する
前記事(その2)で実行済
- 構築したリソースをExcelファイルに出力して想定どおりか確認する
当記事はこちら
- Excelファイルより、リソース更新(☆のセル値更新)とリソース削除(★の削除)操作ののちファイル更新
- 再アップロードして再度"create resources"の実行
- 生成されたTerraformコードを利用して構築(Apply)実行する
基本的な流れはその1と同じです!
操作手順(ざっくり)
作業前のリソース状態
Compute
Testで始まるインスタンスが2個、そのうちのTest InstanceのMemoryが16GB、Boot volume sizeが50GBです。
Bucket
PhoenixとTokyoに1個づつのBucketがあります。
更新(Excel)
Compute
Test InstanceのMemoryを16GB→8GB、Boot volume sizeを50GB→60GBに更新します。(画像は更新後)
Bucket
2つのBucketを削除します。空になりました。(画像は更新後)
OCI CloudShellへのアップロード
ローカルのExcelファイルをOCI CloudShellのHomeにドラッグしてアップロードします。
(ここではCD3-Blank-template_terraform_test_1_2.xlsxとしています)
Computeへの転送
実行例
xxx@cloudshell:~ (us-phoenix-1)$ scp -i .ssh/cd3/(ssh-key-xxx.key) ~/CD3-Blank-template_terraform_test_1_2.xlsx cd3user@10.2.0.54:/cd3user/mount_path/(tenancy name)
FIPS mode initialized
CD3-Blank-template_terraform_test_1_2.xlsx
※ CD3コンテナのtenanciesフォルダは、Computeの/cd3user/mount_pathフォルダにマップされます(ドキュメント)
コンテナの起動と接続
コンテナ接続
#Computeに接続
ssh -i .ssh/cd3/(ssh-key-xxx.key) cd3user@10.2.0.54
#コンテナIDの確認(xxxxxxxx部)と開始
sudo podman ps -a
sudo podman start xxxxxxxx
# ログイン
sudo podman exec -it cd3_toolkit bash
設定ファイル名の更新(変更がある場合のみ)
vi /cd3user/tenancies/(tenancy name)/(tenancy name)_setUpOCI.properties
ファイル名を更新します。またworkflow_type=create_resourcesとします。
#path to cd3 excel eg /cd3user/tenancies/<customer_name>/CD3-Customer.xlsx
cd3file=/cd3user/tenancies/(tenancy name)/CD3-Blank-template_terraform_test_1_2.xlsx
#specify create_resources to create new resources in OCI(greenfield workflow)
#specify export_resources to export resources from OCI(non-greenfield workflow)
workflow_type=create_resources
CD3の実行
今回はCompute、Bucketの単位で順にファイル出力とTerraform Plan/Applyを実行していきます。
Computeリソースの更新
Computeを更新します。
ツールの起動
cd /cd3user/oci_tools/cd3_automation_toolkit/
python setUpOCI.py /cd3user/tenancies/(tenancy name)/(tenancy name)_setUpOCI.properties
入力値のバリデーション
- Validationメニューは"8. Validate Instances"を選択
Summary:
=======
There are no errors in CD3. Please proceed with TF Generation
CD3でのコード生成
-
コード生成のメニューは"7. Compute" > "2. Add/Modify/Delete Instances/Boot Backup Policy"を選択
-
正常に処理が完了すると、*.auto.tfvarsが後述のcomputeディレクトリに出力(更新)されます。
TerraformによるComputeリソース作成
- Computeリソースディレクトリは以下のパス
cd /cd3user/tenancies/(Tenancy name)/terraform_files/(Region name)/compute
computeリソース向けのディレクトリに*.auto.tfvarsが作成されていることを確認します。
TerraformによるComputeリソース更新
terraform plan
plan後の計画を確認します。
想定出力(新規作成0件、変更1件、削除0件)
Plan: 0 to add, 1 to change, 0 to destroy.
1件の内容が意図通りか、Excel入力時のミスやTerraformによる想定外の解釈はないかを確認を行います。
問題なければリソースを更新します
terraform apply
途中で"yes"を挟みつつ、正常にリソースが作成されると以下のようにメッセージが表示されます。
Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
リソース更新の確認(目視)
目視で確認。リソースは想定通り更新されているようですね。
Test InstanceのMemoryを16GB→8GB、Boot volume sizeを50GB→60GB
Object Storageリソースの削除
Bucketを2個削除します。
入力値のバリデーション
- Validationメニューは"11. Validate Buckets"を選択
CD3でのコード生成
- コード生成のメニューは"8. Storage" > "3. Add/Modify/Delete Object Storage Buckets"を選択
- 正常に処理が完了すると、*.auto.tfvarsが後述のossディレクトリに出力(更新)されます。
TerraformによるObjectリソース削除
- Objectリソースディレクトリは以下のパス
※ 今回Bucketはus-phoenix-1とap-tokyo-1に作成しているので、それぞれのリージョンのossディレクトリごとにTerraformコマンドを実行します。
cd /cd3user/tenancies/(Tenancy name)/terraform_files/(Region name)/oss
まずはHomeリージョンのPhoenix(Region nameはphoenix)で実施
terraform plan
plan後の計画を確認します。(内部的にはBucketとLifeCyclePolicyの削除になるので1Bucketあたり2件です)
想定出力(新規作成0件、変更0件、削除2件)
Plan: 0 to add, 0 to change, 2 to destroy.
2件の内容が意図通りか、Excel入力時のミスやTerraformによる想定外の解釈はないかを確認を行います。
問題なければリソースを更新します
terraform apply
途中で"yes"を挟みつつ、正常にリソースが作成されると以下のようにメッセージが表示されます。
Apply complete! Resources: 0 added, 0 changed, 2 destroyed.
つぎにRemoteリージョンであるTokyo(Region nameはtokyo)で実施
terraform plan
plan後の計画を確認します。
想定出力(新規作成0件、変更0件、削除2件)
Plan: 0 to add, 0 to change, 2 to destroy.
こちらも問題ないのでApplyします
terraform apply
こちらも問題なくapply完了
Apply complete! Resources: 0 added, 0 changed, 2 destroyed.
リソース削除の確認(目視)
目視で確認。リソースは想定通り両リージョンともに削除されているようですね。
2つのBucketを削除します。
まとめ(その3)
更新したExcelファイルからCD3を通してリソースの更新、削除が完了しました。またbucketに関してはhomeとremoteリージョンそれぞれに対して削除が及んでいることも確認できましたね。