[Oracle Cloud] TerraformでOCI Database(DBaaS)環境を作ってみた

本記事の目的

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

 

 

 

スポンサードリンク

1 Trackback / Pingback

  1. [Oracle Cloud] OCI DBaaS関連情報まとめ – IT Edge Blog

Leave a Reply

Your email address will not be published.


*