LoginSignup
4

More than 3 years have passed since last update.

【OKIT OCI Designer Toolkit】OCI 構成図作成ツールを使って、3分で環境構築をする

はじめに

先日リリースされた構成図作成ツール(OKIT OCI Designer Toolkit)を試してみました。現状はOCIコンソールには組み込まれていないので、githubレポジトリからクローンして自身の環境で構築する必要があります。便利な機能として、TerraformAnsibleスクリプトへExportする事ができるので、設計をこのツールで行うと構築が非常に簡単になります。本稿では、OKIT OCI Designer Toolkitのセットアップ ~ Terraform Applyまでの手順をまとめます。

OKIT OCI Designer Toolkitとは

OKIT OCI Designer Toolkitは、迅速な設計とプロトタイプを作成するためのツールです。
ユーザーインターフェースは以下の画像のようになっており、パレット、キャンバス、プロパティの3つに分かれています。
image.png

パレットからアイコンをドラックアンドドロップで、キャンバスへ持っていくだけで以下のような図を作成できます。めっちゃ簡単!:v:
image.png

メニューは以下のようになっています。
キャンバスに書いた構成図は、ローカルに保存(jsonファイルでExportされる)か、テンプレートとして保存ができます。
作成した構成図は、ImageTerraformAnsibleResource ManagerとしてExportが可能です。(私の環境ではResorce Manager Exportだけうまく行かなかった。)
image.png

その他のリファレンスは以下を参考にどうぞ。
インストールガイド
ユーザーガイド
サポートガイド

手順

本稿で行った手順は以下になります。

  • Terraformのセットアップ
  • OKIT OCI Designer Toolkitのセットアップ
  • OKIT OCI Designer Toolkitでデザイン
  • Terraformで環境構築

3分で環境構築してみた

Terraformのセットアップ

私は既にTerraformのセットアップを完了していたので、ここはスキップします。
初めての方は以下をご参照ください。
10分で理解するTerraform

OKIT OCI Designer Toolkitのセットアップ

私はOracle Linux OSのOCI Compute上に作成しましたが、ローカル環境でも問題なく動作すると思います。
本稿はDockerを利用します。
80portを利用するので、対象マシンのポートが空いている事を確認した上で以下を実行します。
(Macユーザーの場合、以下でポートの使用状況を確認できます。)

$sudo lsof -i:80

それでは、OKIT OCI Designer Toolkitのセットアップをしていきます。

$ git clone https://github.com/oracle/oci-designer-toolkit.git

# docker serviceを起動させて、ビルド
$ cd oci-designer-toolkit/docker/
$ ./build-docker-image.sh

# サービススタート
$ cd oci-designer-toolkit/docker/
$ ./start-okit-server.sh

これだけでセットアップ完了です。サービススタート後、以下にアクセスする事ができます。
http://localhost/okit/designer

OKIT OCI Designer Toolkitでデザイン

今回は左のFragmentsから一つ選択しました。
image.png
Exportすると、okit-terraform.zipというファイルを得る事ができます。構造はこんな感じです。

$ tree okit-terraform
okit-terraform
├── main.tf
├── terraform.tfvars
└── variables.tf

0 directories, 3 files

Terraformで環境構築

先ほどExportしたtfファイルを使って、環境構築をしていきます。
planする前に、terraform.tfvarsへ情報を追記する必要があります。
OCIDや鍵情報が空欄になっているのでそこを埋めます。

terraform.tfvars
tenancy_ocid = ""
user_ocid = ""
fingerprint = ""
private_key_path = ""
region = ""
compartment_ocid = ""

完了したら、initからはじめていきます。

# 対象のパスへ入った状態でinit
$ terraform init

# 次にPlanを実行
$ terraform plan

# 最後にApply
$ terraform apply

# 消すときはデストロイ
$ terraform destroy

成功しました:raised_hand:
Apply complete! Resources: 8 added, 0 changed, 0 destroyed

コンソールで確認したところ、ちゃんと作成されています。
image.png

planは通ってapply中にこけるパターン

OCIにはリソース制限があり、それに引っかかるケースがあると思います。
この場合だと、ネットワークコンポーネントは作られたけど、インスタンが作成されていない状態。
うまく行かなかったとしても、手動で消さない方がいいと思います。

oci_core_vcn.Okit_Bastion_Vcn: Creating...
oci_core_vcn.Okit_Bastion_Vcn: Creation complete after 1s [id=******]
oci_core_route_table.Okit_Rt001: Creating...
oci_core_internet_gateway.Okit_Bastion_Ig: Creating...
oci_core_security_list.Okit_Sl001: Creating...
oci_core_security_list.Okit_Bastion_Sl: Creating...
oci_core_route_table.Okit_Rt001: Creation complete after 1s [id=******]
oci_core_internet_gateway.Okit_Bastion_Ig: Creation complete after 1s [id=******]
oci_core_route_table.Okit_Bastion_Rt: Creating...
oci_core_security_list.Okit_Sl001: Creation complete after 2s [id=******]
oci_core_security_list.Okit_Bastion_Sl: Creation complete after 2s [id=******]
oci_core_route_table.Okit_Bastion_Rt: Creation complete after 1s [id=*******]
oci_core_subnet.Okit_Bastion_Sn: Creating...
oci_core_subnet.Okit_Bastion_Sn: Creation complete after 1s [id=********]
oci_core_instance.Okit_Bastion_Server: Creating...

Error: Service error:LimitExceeded. The following service limits were exceeded: vm-standard2-1-count. Request a service limit increase from the service limits page in the console. . http status code: 400. Opc request id: 4cccbe3293aaf8632c53e40cad3265da/689D1F376548947E682A4F7F7FE95A68/33472F7DBA11573A82AD057036342311

失敗の場合、serialは更新されないと思うので、制限を解除後再度applyを実行します。

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

oci_core_instance.Okit_Bastion_Server: Creating...
oci_core_instance.Okit_Bastion_Server: Still creating... [10s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [20s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [30s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [40s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [50s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m0s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m10s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m20s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m30s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m40s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [1m50s elapsed]
oci_core_instance.Okit_Bastion_Server: Still creating... [2m0s elapsed]
oci_core_instance.Okit_Bastion_Server: Creation complete after 2m1s [id=*********]

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

最後はデストロイして、さようなら:angel:

参考情報

OKIT OCI Designer Toolkit
インストールガイド
ユーザーガイド
サポートガイド

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
What you can do with signing up
4