LoginSignup
11
5

More than 3 years have passed since last update.

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

Posted at

はじめに

先日リリースされた構成図作成ツール(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
インストールガイド
ユーザーガイド
サポートガイド

11
5
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
11
5