
本記事の目的
Oracle Cloud Infrastructure (OCI) で環境の構築を行う方法としては、GUIコンソールやCLIを利用する方法などが提供されていますが、もちろんオーケストレーションツールとして広く使われているterraformにも対応しています。
Oracle Cloud 公式ブログでも「TerraformでOCIの構築を自動化する – Oracle Cloud Infrastructureアドバンスド」という記事が紹介されています。
本記事では、上記チュートリアルに沿ってローカルPC(Windows7)に作成したterraform実行環境の設定手順と、git上で公開されているテンプレートを使ったDBaaS環境の構築手順を簡単に紹介します。
検証手順
環境準備
チュートリアル記事に従って、以下の作業を実施しました。
(1)Terraformのインストール
(2)Terraform Provider for Oracle Cloud Infrastructure のインストール
インストール先は任意のフォルダを選べばよいと思いますが、今回はそれぞれ、
C:\Program Files (x86)\Terraform配下と
C:\Users\xxxxx\AppData\Local\terraform.d\plugins配下
に配置しました。
(3)movaxterm
Bash ターミナルとしてはmovaxtermを利用しました。
前述の公式ブログのチュートリアル記事に、以下のような注意書きがありますが、
Bashターミナルをセットアップする際に、WindowsのPATH環境変数を引き継げるようにし、また%USERPROFILE%をホームディレクトリに設定しておくと便利です。設定方法は各ツールによって異なりますので、ツールに応じた適切な設定を実施してください
movaxtermの場合、
アプリ起動後に、Setting > ConfigurationからTerminalタブの「Use Windows PATH environment」をチェックすればOKです。
PATHが通っていれば、以下でバージョン確認できます。
➤terraform -version Terraform v0.11.11
あとは、チュートリアル記事に沿っていけば、terraformでの環境構築の手順概要を理解できると思います。
DBaaS環境構築
チュートリアル記事でも軽く触れられていますが、githubのterraform-providers/terraform-provider-ociというページで、OCI用のterraformサンプルテンプレートが公開されています。
今回は、db_systemsフォルダ内にあるサンプルを利用して、実際にDBaaS環境を構築してみました。
・簡単に手順概要だけ紹介
1.テンプレートファイルをローカルPCの任意フォルダに配置
2.env-vars の設定(チュートリアルに沿って作成したものを再読み込みすればOK)
3.terraform init
4.terraform plan -out=plan1
5.terraform apply plan1
うまくいけば、以下のようなネットワーク関連リソースを含めてDBaaS(VM) 環境一式が構築できると思います。
internet_gateway
route_table
subnet
vcn
security list
tfファイルを編集するだけで、簡単に異なる設定の環境や、複数の環境を構築できるはず。
もやはサービスコンソールでの環境構築には戻れない?!
DBaaS環境設定確認
[root@myoracledb ~]# dbcli describe-system DbSystem Information ---------------------------------------------------------------- ID: 41e14b33-68b4-4cd7-bf11-8825f4c222b7 Platform: Vmdb Data Disk Count: 8 CPU Core Count: 1 Created: February 11, 2019 8:22:10 AM UTC System Information ---------------------------------------------------------------- Name: 6dqzzvba Domain Name: tfexsubdbsys.tfexvcndbsys.oraclevcn.com Time Zone: UTC DB Edition: EE DNS Servers: NTP Servers: 169.254.169.254 Disk Group Information ---------------------------------------------------------------- DG Name Redundancy Percentage ------------------------- ------------------------- ------------ Data External 100 Reco External 100 [root@myoracledb ~]# dbcli describe-database -in aTFdb Database details ---------------------------------------------------------------- ID: xxxxx Description: aTFdb DB Name: aTFdb DB Version: 12.1.0.2.180717 DB Type: Si DB Edition: EE DBID: 725153475 Instance Only Database: false CDB: true PDB Name: pdbName PDB Admin User Name: pdbuser Class: Oltp Shape: Storage: ASM DB Redundancy: CharacterSet: AL32UTF8 National CharacterSet: AL16UTF16 Language: AMERICAN Territory: AMERICA Home ID: 0b057d02-9fef-4a92-ac8c-de90161a242b Console Enabled: false Level 0 Backup Day: Sunday AutoBackup Enabled: false BackupConfigId: ecf8a51a-2dce-4a79-9edd-6da037040b38 Created: February 11, 2019 8:22:11 AM UTC DB Domain Name: tfexsubdbsys.tfexvcndbsys.oraclevcn.com
環境削除
不要となったら以下のコマンド実行で、依存リソース含めて全部削除可能。
➤ terraform destroy (中略) Terraform will perform the following actions: - oci_core_internet_gateway.internet_gateway - oci_core_route_table.route_table - oci_core_subnet.subnet - oci_core_virtual_network.vcn - oci_database_db_system.test_db_system Plan: 0 to add, 0 to change, 5 to destroy. Do you really want to destroy all resources? Terraform will destroy all your managed infrastructure, as shown above. There is no undo. Only 'yes' will be accepted to confirm. Enter a value: yes (中略) Destroy complete! Resources: 5 destroyed.
参考文書
・Oracle Cloud Infrastructure Provider
https://www.terraform.io/docs/providers/oci/index.html
・terraform-provider-oci
https://github.com/terraform-providers/terraform-provider-oci
・Terraform Recommended Practices
https://www.terraform.io/docs/enterprise/guides/recommended-practices/index.html
Leave a Reply