前回のおさらい
"CD3 Automation Toolkit"でOCIリソースをExcelから爆速構築!シリーズです。
その1概要説明とリソース作成編はこちら
導入
検証内容
前回の再掲です。
- 既存リソースの取り込み必要のない前述のユースケースパターン "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ファイルに出力して想定どおりか確認する
その3で記載予定
- Excelファイルより、リソース更新(☆のセル値更新)とリソース削除(★の削除)操作ののちファイル更新
- 再アップロードして再度"create resources"の実行
- 生成されたTerraformコードを利用して構築(Apply)実行する
リソース出力方法に関して
リソース情報の出力にはCD3で2通りあるようです。
1つめ:Export Resouces機能を利用する方法
2つめ:Show OCI機能を利用する方法
※単純なリソース情報Exportだけであれば2つめの利用を推奨します。理由は下記1補足をご確認ください。
1.Export Resourcesの利用
概要
- CD3のnon-greenfield(Terraform管理対象だがまだ反映していないリソースが存在する状態)向けに既存リソースをExcelテンプレに出力+既存リソースからtfvarsを生成する機能
- ExcelへのExport形式はCD3フォーマットが利用可能
- (重要) CD3のimport機能との併用により既存リソースのTerraform化ができる
補足
つまりCD3でのApply後に手動でリソース作成した場合はそれを含めてtfvarsを出力するため、本来はimport前提の使い方になります。
差分があるときはimportを実行するように気を付けましょう。(手順はこちら)
今回はCD3でリソース作成直後のため、こちらも利用できます
2.Show OCIの利用
- 既存リソースをCSVなどに一括出力します(他にもJSONや標準出力に対応)
- Show OCI自体はCD3とは別で開発されており、こちらもGithubで公開 Githubされているので利用方法など必要に応じて参照してください
- CD3からShow OCIを実行することが可能です
- こちらの機能はTerraformのファイルに影響を与えないので、リソースの作成結果の検証にはこちらが向いていると思われます
- CSVでの出力列形式はCD3のものとは別となります((下記"Show OCIファイルのダウンロード" 参照)
出力(Export Resources 利用の場合)
サンプルとしてphoenixに作成したObject StorageのBucketを出力します。
操作手順(ざっくり)
リソース情報取得
空のExcelテンプレートのリネーム
その1で記入したExcelテンプレートの元となった空のファイルを、識別しやすいように任意の名称でリネームします。
例:CD3-Blank-template_terraform.xlsx⇒CD3-Blank-template_terraform_export.xlsx
CloudShellへのアップロード
Computeへの転送
その1を参考にしながらファイルを転送します。
※ファイル名がその1と異なるのでsshのコマンド名の引数に注意
コンテナの起動と接続
その1を参考にしながらコンテナを起動します。
xxx_setUpOCI.propertiesの更新
下記の更新を行います。
- workflow_type ...CD3の実行タイプを制御(export_resources)
- cd3file ...利用するExcelファイルのパスを指定
vi /cd3user/tenancies/(tenancy name)/(tenancy name)_setUpOCI.properties
#path to cd3 excel eg /cd3user/tenancies/<customer_name>/CD3-Customer.xlsx
cd3file=/cd3user/tenancies/(tenancy name)/CD3-Blank-template_terraform_export.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=export_resources
CD3の実行
regionを設定します。
Make sure to execute the script for 'Fetch Compartments OCIDs to variables file' under 'CD3 Services' menu option atleast once before you continue!
workflow_type set to export_resources. Export existing OCI objects and Synch with TF state
We recommend to not have any existing tfvars/tfstate files for export out directory
Enter region (comma separated without spaces if multiple) for which you want to export OCI resources; Identity and Tags will be exported from Home Region.
Press 'Enter' to export from all the subscribed regions- eg ashburn,phoenix: phoenix
今回は例としてObject Storageの出力をおこなうため8>3と入力します。最後にリソースの存在するコンパートメント名を指定します。
Choose appropriate option from below :
1. Export Identity
2. Export Governance
3. Export Cost Management
4. Export Network
5. Export OCI Firewall
6. Export DNS Management
7. Export Compute
8. Export Storage
9. Export Databases
10. Export Load Balancers
11. Export Management Services
12. Export Developer Services
13. Export Security
14. Export Software-Defined Data Centers - OCVS
15. CD3 Services
q. Press q to quit
Enter your choice (specify comma separated to choose multiple choices): 8
=======================================================Storage=======================================================
1. Export Block Volumes/Block Backup Policy
2. Export File Systems
3. Export Object Storage Buckets
q. Press q to quit
m. Press m to go back to Main Menu
Enter your choice (specify comma separated to choose multiple choices): 3
----------------------------------------------Exporting Object Storage-----------------------------------------------
Enter name of Compartment as it appears in OCI (comma separated without spaces if multiple)for which you want to export Buckets;
Press 'Enter' to export from all the Compartments: AppDev
しばらくすると*.tfvarsやimport実行用のShellスクリプトファイルとともにExcelの出力が行われて完了します。
Export済テンプレートファイルのダウンロード
コマンド例(クライアント(CloudShell)で実行)
scp -i .ssh/cd3/(ssh-key-xxx.key) cd3user@10.2.0.54:/cd3user/mount_path/(Tenancy name)/CD3-Blank-template_terraform_export.xlsx ./
内容確認
export_resources側は出力指定したphoenix側のbucket情報が出力されています。
挙動に影響がない出力順序以外はcreate_resoucesとの差分がないことを確認できました。
出力(Show OCI 利用の場合)
サンプルとして作成したObject StorageのBucketを出力します。
その1 Export Resourcesと違い、Show OCIではリージョンやコンパートメントを問わず出力されます。
操作手順(ざっくり)
リソース情報取得
xxx_setUpOCI.propertiesの更新
下記の更新を行います。
- workflow_type ...CD3の実行タイプを制御(create_resources)
vi /cd3user/tenancies/(tenancy name)/(tenancy name)_setUpOCI.properties
workflow_typeをcreate_resourcesに変更します。
#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の実行
Show OCIは17を選択
Choose appropriate option from below :
0. Validate CD3
1. Identity
2. Governance
3. Cost Management
4. Network
5. OCI Firewall
6. DNS Management
7. Compute
8. Storage
9. Database
10. Load Balancers
11. Management Services
12. Developer Services
13. Security
14. Logging Services
15. Software-Defined Data Centers - OCVS
16. CD3 Services
17. Other OCI Tools
q. Press q to quit
See example folder for sample input files
Enter your choice (specify comma separated to choose multiple choices): 17
2>2と選択します
2. Execute ShowOCI Scriptを選択すると直接実行が開始されます
(※ ここで先に1. Download Latest ShowOCI Scriptを実行しておくとスクリプトを最新化できるようです)
===================================================Other OCI Tools===================================================
1. CIS Compliance Check Script
2. ShowOCI Report
3. OCI FSDR
q. Press q to quit
m. Press m to go back to Main Menu
Enter your choice (specify comma separated to choose multiple choices): 2
---------------------------------------------------ShowOCI Report----------------------------------------------------
1. Download Latest ShowOCI Script
2. Execute ShowOCI Script
q. Press q to quit
m. Press m to go back to Main Menu
Enter your choice (specify comma separated to choose multiple choices): 2
しばらく待つと全リソースが出力されます
(略)
CSV: database_backups --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_database_backups.csv
CSV: database_autonomous --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_database_autonomous.csv
CSV: limits --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_limits.csv
CSV: object_storage_buckets --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_object_storage_buckets.csv
CSV: security_loggings --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_security_loggings.csv
CSV: security_log_unified_agents --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_security_log_unified_agents.csv
CSV: security_cloud_guards --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_security_cloud_guards.csv
CSV: security_kms_vaults --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_security_kms_vaults.csv
CSV: paas_devops --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_paas_devops.csv
CSV: data_integration --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_data_integration.csv
CSV: monitor_agents --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_monitor_agents.csv
CSV: monitor_alarms --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_monitor_alarms.csv
CSV: monitor_topics_subs --> /cd3user/tenancies/harukb/othertools_files/harukb_showoci_report/harukb_monitor_topics_subs.csv
###############################################################################################
# Completed Successfully at 2024-10-12 09:23:05 - Elapsed 00:04:25 #
###############################################################################################
=====================================================================================================================
[cd3user@c3376547c570 cd3_automation_toolkit]$
Object Storage-Bucketsファイルをダウンロードしてみます。
ダウンロード対象のファイルは以下の通り
/cd3user/tenancies/(tenancy name)/othertools_files/(tenancy name)_showoci_report/(tenancy name)_object_storage_buckets.csv
Show OCIファイルのダウンロード
コマンド例(クライアント(CloudShell)で実行)
scp -i .ssh/cd3/(ssh-key-xxx.key) cd3user@10.2.0.54:/cd3user/mount_path/(tenancy name)/othertools_files/(tenancy name)_showoci_report/(tenancy name)_object_storage_buckets.csv ./
内容確認
Show OCIの出力(.csv)をExcelファイルで表示(出力)一部マスク済
- 目視で"Retention Rules","Lifecyle Exclusion Patterns"など一部カラムの出力がShow OCIには列ごと出力されていませんが、それ以外はおおむね必要な情報がBucket情報として出ているように見受けられます。
- このように出力対象外?の列情報は目視やocicli等で補完する必要があるかもしれません。
- 画像はフィルタ―済ですが、このツールはリージョン、コンパートメントをまたいでリソース出力されるため一括出力する際は大変便利ですね。