最近自分でTerraformの使い方を公式ドキュメントを見ながら勉強しています。
自分で勉強したもののメモもかねて、記事にしようと思います。
今日は、Terraformは何なのかぐらいしか知らない方に、まず触れてみるためのクイックスタートを記事にします。
terraform とは
まず初めに、terraform は何をするものなのかをご紹介します。
こちらの図をご覧ください。
Terraform は、簡単に言いますと、ファイルで定義したをリソースをコマンドを使ってクライドにデプロイするツールのことです。
ファイルでリソースを定義できることが一番の売りで、リソースの管理をファイル(コード)でできるようになるからです。
terraform基本準備
- 使用するツールを用意
- Visual Studio Code
- Terraform拡張機能
- Visual Studio Code
- terraformのインストール
- マニュアルインストール:
- terraformダウンロード
- ダウンロード後のファイルを解凍して、置きたい場所へ移動する
- 移動後のパスをシステム環境変数のpathに登録する
- 参考
- マニュアルインストール:
- 認証情報の準備(GCP)
- 権限のあるサービスアカウントを作成
- サービスアカウントのJSONファイルを発行
- 以下の環境変数を作成する
- GOOGLE_APPLICATION_CREDENTIALS = <JSONファイルのパス>
.tf
ファイルを用意.tf
ファイルは、terraformのリソース定義ファイルです。リソースに対する操作は基本この定義ファイルをベースに行う。
- terraformのプロジェクトを初期化:terraformがGCPを操作するためのプラグインをダウンロードするため
cd
コマンドで.tfファイルが置いているパスへ移動- initコマンドを実行:
.tf
ファイルの中身を見て、使用するプラグインを自動的に用意してくれるterraform init
Terraform has been successfully initialized!
が表示されることを確認- 初期化操作はおそらく、プラグインが追加で必要になったたびに、実行が必要
簡単な.tfファイル例
# main.tf
# GCPプロジェクトの基本設定
provider "google" {
# 操作するGCPのプロジェクトID
project = "<GCPのプロジェクトID>"
# 操作するリソースのデフォルトリージョン。リソース作成時指定しない場合、これを使用する
region = "asia-northeast1"
# 操作するリソースのデフォルトゾーン。リソース作成時指定しない場合、これを使用する
# 注意:すべてのリソースがゾーンを持っているわけではありません
zone = "asia-northeast1-a"
}
# GCE作成
resource "google_compute_instance" "vm_instance" {
# リソース名
name = "terraform-instance"
# インスタンスのスペック
machine_type = "f1-micro"
# bootディスクの設定
boot_disk {
initialize_params {
image = "debian-cloud/debian-9"
}
}
# Nicの設定
network_interface {
# VPCの指定
# 同じモジュール内の他のリソースを指定する
network = google_compute_network.vpc_network.self_link
access_config {
}
}
}
# VPC作成
resource "google_compute_network" "vpc_network" {
name = "terraform-network"
auto_create_subnetworks = "true"
}
terraformの基本コマンドの使い方
基本準備が完了してから、terraform init
を実行したディレクトリで、以下のコマンドを使ってリソースの操作が可能です。
terraform plan
:main.tfの正確性を確認するterraform apply
:実際にリソースの作成を行うterraform destroy
:リソースを削除する
最後に
今日はterraformはどんなものかのイメージビルディングとして、クイックスタートを書きました。
一番シンプルなものですが、基本な使い方はイメージできたかと思います。
今後は少しずつ深堀行く予定です。
ここまで読んでいただいて、お疲れ様でした。
コメント