Terraform で OCI のラボ環境を作る 準備編

OCI

Terraform を使って OCI 上にリソースを作成できるようになろうと思います。Terraform は IaC で用いられる有名なツールです。今までラボ環境は GUI でポチポチと操作していましたが、練習がてらコードで作成と管理を行えるように一新していこうと思います。

スポンサーリンク

前提条件

作業をするにあたり次の準備を行っておきます。

  • OCI CLI のインストール
  • Terraform のインストール
% oci --version
2.25.0
% terraform --version
Terraform v1.1.2
on darwin_amd64

OCI 事前準備

Terraform で OCI 上にリソースを作成するにあたり、OCI 側で次のものを準備しておく必要があります。

  • OCI リソースを作成するための資格情報
  • OCI リソースを作成するコンパートメント

OCI リソースを作成するための資格情報

資格情報として次の情報を用意します。

  • ユーザー OCID
  • テナンシ OCID
  • リージョン
  • フィンガー プリント
  • 秘密鍵のパス

リージョン

OCI コンソールから上部のリージョン名が書かれている領域をクリックし、[リージョンの管理] をクリックします。一覧から利用するリージョンの識別子を確認します。

ユーザーの作成

まず、OCI コンソールから Terraform を操作するためのユーザーを作成します。[アイデンティティとセキュリティ]>[アイデンティティ]>[ユーザー] から [ユーザーの作成] をクリックします。

[IAM ユーザーの作成] にて [IAM ユーザー] を選択し、[名前][説明]にユーザー情報を入力し、[作成] をクリックします。

作成したユーザーの OCID をコピーして控えておきます。

また、作成したユーザーがリソースを作成できるよう適切な権限を付与したグループに追加します。[グループ]から [ユーザーをグループに追加] をクリックします。

[ユーザーをグループに追加] にて、グループを選択して [追加] をクリックします。

グループに追加されたことを確認します。

OCI CLI での API キー発行

OCI CLI をインストールした端末で oci setup config コマンドを実行して資格情報用の API キーを作成します。作成後に oci_api_key_public.pem ファイルを出力し、API キーに登録するための公開鍵情報を取得します。また、Fingerprint の値と秘密鍵のパス (デフォルトでは /Users/****/.oci/oci_api_key.pem ) も控えておきます。

% oci setup config
Enter a location for your config [/Users/****/.oci/config]:
Enter the name of the profile you would like to create: terraform-oci-user
Enter a user OCID: ocid1.user.oc1..****                      # <----- ユーザー OCID
Enter a tenancy OCID: ocid1.tenancy.oc1..****          # <----- テナンシー OCID
Enter a region by index or name(e.g.
1: ap-chiyoda-1, 2: ap-chuncheon-1, 3: ap-hyderabad-1, 4: ap-melbourne-1, 5: ap-mumbai-1,
6: ap-osaka-1, 7: ap-seoul-1, 8: ap-sydney-1, 9: ap-tokyo-1, 10: ca-montreal-1,
11: ca-toronto-1, 12: eu-amsterdam-1, 13: eu-frankfurt-1, 14: eu-zurich-1, 15: me-dubai-1,
16: me-jeddah-1, 17: sa-santiago-1, 18: sa-saopaulo-1, 19: uk-cardiff-1, 20: uk-gov-cardiff-1,
21: uk-gov-london-1, 22: uk-london-1, 23: us-ashburn-1, 24: us-gov-ashburn-1, 25: us-gov-chicago-1,
26: us-gov-phoenix-1, 27: us-langley-1, 28: us-luke-1, 29: us-phoenix-1, 30: us-sanjose-1): ap-tokyo-1
Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y
Enter a directory for your keys to be created [/Users/****/.oci]:
Enter a name for your key [oci_api_key]:
Public key written to: /Users/****.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase):
Private key written to: /Users/****/.oci/oci_api_key.pem
Fingerprint: 7e:94:*********
Config written to /Users/****/.oci/config
% cat oci_api_key_public.pem
-----BEGIN PUBLIC KEY-----
****
-----END PUBLIC KEY-----

API キーの登録

OCI コンソールのユーザー情報画面にて [API キー] をクリックし、[API キーの追加] をクリックします。

[API キーの追加] にて、[公開キーの貼付け] を選択して公開鍵の情報を貼付けてから [追加]をクリックします。

API キーを登録できたことを確認します。

テナンシ

テナンシの情報を確認しておきます。 [ガバナンスと管理]>[アカウント管理]>[テナンシ詳細] を開き、OCID を控えておきます。

コンパートメント

リソースを作成するコンパートメントを作成しておきます。[アイデンティティとセキュリティ]>[アイデンティティ]>[コンパートメント]を開き、既存のコンパートメントもしくは新規に作成したコンパートメントの OCID を控えておきます。

Terraform 用の資格情報ファイル作成

OCI の Terraform を実行するフォルダに provider.tf という名前で次のようなファイルを作成します。

provider "oci" {
   tenancy_ocid = "${var.tenancy_ocid}"
   user_ocid = "${var.user_ocid}"
   fingerprint = "${var.fingerprint}"
   private_key_path = "${var.private_key_path}"
   region = "${var.region}"
}

同じく provider-var.tf というファイル名で次のようなファイルを作成します。それぞれの値は上述の手順で確認した値を環境に合わせて記載します。

variable "tenancy_ocid" {
  default = "ocid1.tenancy.oc1..****"
}
variable "user_ocid" {
  default = "ocid1.user.oc1..****"
}
variable "fingerprint" {
  default = "7e:94:29:****"
}
variable "private_key_path" {
  default = "/Users/****/.oci/oci_api_key.pem"
}
variable "region" {
  default = "ap-tokyo-1"
}

これは provider.tf のファイルで主に利用する変数の値を provider-var.tf に記載しています。ひとまずはこの情報があれば OCI 上のリソースを操作できます。

コメント

タイトルとURLをコピーしました