1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Cloud InfrastructureAdvent Calendar 2024

Day 21

CD3 Automation ToolkitでOCIリソースをExcelから爆速構築!その3 リソース更新削除編

Posted at

前回のおさらい

"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です。

image.png

Bucket

PhoenixとTokyoに1個づつのBucketがあります。
image.png

更新(Excel)

Compute

Test InstanceのMemoryを16GB→8GB、Boot volume sizeを50GB→60GBに更新します。(画像は更新後)
image.png

Bucket

2つのBucketを削除します。空になりました。(画像は更新後)
image.png

OCI CloudShellへのアップロード

ローカルのExcelファイルをOCI CloudShellのHomeにドラッグしてアップロードします。
(ここではCD3-Blank-template_terraform_test_1_2.xlsxとしています)
image.png

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"を選択
    image.png

  • 正常に処理が完了すると、*.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

image.png

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を削除します。

image.png
image.png

まとめ(その3)

更新したExcelファイルからCD3を通してリソースの更新、削除が完了しました。またbucketに関してはhomeとremoteリージョンそれぞれに対して削除が及んでいることも確認できましたね。

参考情報

CD3サイト
Help Center
Youtube 学習コンテンツ
GitHubのCD3リポジトリ

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?