ピックアップ

Terraformを試した件

Terraform

テラフォーム

を使ってみることで、

インフラ構成をコード化するものが、

実際にどのようなものか、

まずは試してみようと思いました。

あくまで、

個人的な備忘録なので、

ChatGPT等に聞きながら、

自分なりに見返したいところだけ、

この記事にメモしてる。

要素メモ

Terraformを使っていく中で、

Provider(プロバイダー)

というのが用語として出てきたので、

そちらについてメモ。

プロバイダーについては、

  • Terraformが操作できる外部サービスのこと
  • 例:AWS, GCP
  • APIを通してリソースを作成・変更・削除する

という認識。

terraform {
  required_providers {
    digitalocean = {
      source = "digitalocean/digitalocean"
      version = "~> 2.0"
    }
  }
}

provider "digitalocean" {
  token = var.do_token
}

Resource(リソース)

リソースに関しては、

  • 作成・管理する対象のこと
  • 例:Droplet, VPC, Firewall, Volume
  • 宣言的に「こういう状態にしたい」と書く

という認識。

resource "digitalocean_droplet" "web" {
  name   = "web-1"
  image  = "ubuntu-22-04-x64"
  region = "nyc2"
  size   = "s-1vcpu-1gb"
}

Variable(変数)

変数に関しては、

  • 外部から値を渡すための仕組み
  • APIトークンやSSH鍵パスなどを安全に設定可能

という認識。

variable "do_token" {}
variable "pvt_key" {}

になるが、

実際の鍵情報のファイル名を使うという認識。

Data Source(データソース)

データソースに関しては、

  • 既存リソースの情報を取得するための仕組み
  • 例:既にDigitalOceanにあるSSHキーを取得してDropletに設定

という認識。

data "digitalocean_ssh_key" "terraform" {
  name = "terraform_id_rsa"
}

作成した鍵情報のファイル名を使う。

コマンドメモ

プロバイダーの初期化

terraform init

作成/変更/削除のプラン確認

terraform plan

実際に反映

terraform apply

リソース削除

terraform destroy

実行時めも

var.do_token
  Enter a value: ここにはプロバイダーのトークン(基本プロバイダーのAPIトークン)

var.pvt_key
  Enter a value: ここは、秘密鍵情報のパス(~/.ssh/id_rsa)
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: 

本当にすべてのリソースを削除しますか?
Terraform は上記に示されているすべての管理対象インフラを削除します。
この操作は元に戻せません。
“yes” と入力したときだけ実行されます。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事