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

OCI

前回に引き続き OCI 上にリソースを作成します。今回はすでに作成した VCN に VM を 1 台配置します。簡単に VM だけ作成します。NSG やルート ルールなどを効率的に作る方法は後ほど考えてききたいですね。。。

スポンサーリンク

VM リソース

前回と同じディレクトリに vm-ubuntu.tf というファイルを作成し、次のような内容を記述します。

resource "oci_core_instance" "vm_ubuntu" {
    display_name = var.vm_ubuntu_display_name
    compartment_id = var.compartment_id
    shape = var.vm_ubuntu_shape
    availability_domain = "${lookup(data.oci_identity_availability_domains.ADs.availability_domains[0],"name")}"
    freeform_tags = {"${var.defined_tag_name}"= "${var.defined_tag_value}"}
    create_vnic_details {
        display_name = var.vm_ubuntu_create_vnic_details_display_name
        freeform_tags = {"${var.defined_tag_name}"= "${var.defined_tag_value}"}
        #hostname_label = var.vm_ubuntu_hostname_label
        assign_public_ip = true
        subnet_id = oci_core_subnet.subnet_public.id
    }
    source_details {
        source_id = var.vm_ubuntu_image_id
        source_type = "image"
    }
    metadata = {
        ssh_authorized_keys = file("~/.ssh/****.pem")
    }
    preserve_boot_volume = false
}

VM を作成する際のプロパティは非常に多かったのですが、最低限動くところだけピックアップするとこの辺りになるかと思います。

  • VM 表示名
  • コンパートメント ID
  • 可用性ドメイン
  • シェイプ
  • ソース イメージ ID
  • SSH キー公開鍵情報
  • 配置先サブネット ID

ソース イメージの ID は次のようなコマンドを実行して利用するイメージの ID を確認しておきます。

# ソース イメージの一覧取得
$ oci compute image list --compartment-id <Compartment OCID>
# OS および OS バージョンを指定した一覧取得
$ oci compute image list --compartment-id <Compartment OCID> --operating-system "Canonical Ubuntu" --operating-system-version 20.04

また、SSH キー公開鍵ファイルを事前に用意しておき、ファイルを読み込んでいます。接続する際には対応する秘密鍵の情報を使用します。

変数用に vm-ubuntu-var.tf というファイルを作成して次のように記載します。

variable "vm_ubuntu_display_name" {
  default = "snyoci-jpe-lab-ubnt20"
}
variable "vm_ubuntu_shape" {
  default = "VM.Standard.E2.1.Micro"
}
variable "vm_ubuntu_create_vnic_details_display_name" {
  default = "nic-snyoci-jpe-lab-ubnt20"
}
variable "vm_ubuntu_hostname_label" {
  default = "snyocijpelabubnt20"
}
variable "vm_ubuntu_fault_domain" {
  default = "FAULT-DOMAIN-1"
}
variable "vm_ubuntu_image_id" {
  default = "ocid1.image.oc1.ap-tokyo-1.aaaaaaaadeswedg2atub26mnfyu2wbqrjigremlvcf4neoluz4jumq3wawaq"
}

プロビジョニング

作成したら terraform planterraform apply コマンドでプロビジョニングします。無事作成できました。

コメント

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