概要
やりたいこと
Terraform で GCP を操作したい。
下記の Terraform 公式のチュートリアルを行う。
Terraform
Terraform 準備
過去に tfenv 経由でインストールした。下記参照。
または Terraform 公式のドキュメントを参照。
gcloud インストール
google-cloud-sdk を brew でインストール。
brew install google-cloud-sdk --cask
自分の環境では PATH を通し、コンソールを再起動する必要があった。
vi ~/.zshrc
source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc
source /usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
gcloud コマンドが使えるようになっているはず。バージョン確認。
$ gcloud version
Google Cloud SDK 321.0.0
bq 2.0.64
core 2020.12.11
gsutil 4.57
gcloud 初期化。公式のチュートリアルを参照し進める。
gcloud init
設定が完了すると以下に config ファイルができる。
ls -la ~/.config/gcloud/configurations/config_default
現在の config 情報を確認する。
gcloud config configurations list
新たな config は以下で作成する。
gcloud config configurations create hoge
Terraform 用サービスアカウント作成
GCP コンソールより、Terraform 用のサービスアカウントを作成する。
- IAMと管理 -> サービスアカウント -> サービスアカウントを作成
- サービスアカウント名 : terraform
- ロール : プロジェクトの編集者
- サービスアカウント管理ロール : 自分の登録メールアドレス
- 作成されたサービスアカウントを選択し、「鍵の作成」
- キーのタイプ : Json
Credential を Json としてダウンロードする。
ローカルのて適当な場所に配置し、Terraform の provider で指定する。
vi main.tf
provider "google" {
project = "プロジェクト名"
credentials = file("/Users/user/.config/gcloud/configurations/terraform.json")
zone = "us-central1-c"
}
Terraform の初期化。
terraform init
「Terraform has been successfully initialized! 」と出れば成功。
Google Compute Engine VM instance を作成
下記の Terraform チュートリアル通りにやる。
Instance 用のテンプレートを作成。
vi instance.tf
resource "google_compute_instance" "vm_instance" {
name = "terraform-instance"
machine_type = "f1-micro"
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
network_interface {
# A default network is created for all GCP projects
network = google_compute_network.vpc_network.self_link
access_config {
}
}
}
resource "google_compute_network" "vpc_network" {
name = "terraform-network"
auto_create_subnetworks = "true"
}
デプロイ。
terraform apply
Compute Engine -> VM インスタンスより、Instance が作成されたことを確認。
用が済んだら消しておく。
terraform destroy
コメント