terraform provider mackerel をはじめて使った
terraform provider mackerel をはじめて使ってみました。
terraform は使ったことがなかったので難しそうなイメージだったのですが、導入から実行まで意外と簡単に使えました。
terraform provider mackerel は Terraform Registry で公開しています。
インストール方法
インストールは公式ドキュメントの内容に沿って行う。
Install Terraform の項目でインストールする環境のインストール方法を表示する。ここでは Linux を選択し、Amazon Linux に表示される yum コマンドを実行する。インストールはこれだけで完了。
任意で Quick start tutorial の内容を実行してちゃんと動くか確認する。
セットアップ
適当なディレクトリの中に main.tf を作成する。
下記は Mackerel の通知チャンネルを新規作成する場合の例。
terraform { required_version = ">= 1.3.0" required_providers { mackerel = { source = "mackerelio-labs/mackerel" version = "~> 0.3.0" } } } resource "mackerel_channel" "email" { name = "terraform" email { emails = ["xxxxx@xxxxx.ne.jp"] events = ["alert", "alertGroup"] } }
main.tf 解説
terraform のバージョン指定
terraform { required_version = ">= 1.3.0"
terraform のバージョンを指定する。演算子の意味は下記の通り。
=
指定したバージョンのみ許可!=
指定したバージョン以外を許可>
,>=
,<
,<=
左から、指定値より大きい、以上、未満、以下、のバージョンを許可~>
末尾の数字が指定値以上のバージョンを許可- たとえば
~> 1.0.0
の場合1.0.1
や1.0.2
は許可されるが1.1.x
は許可しない ~> 1.x
にした場合1.1
や1.2
が許可される
- たとえば
自分の環境では v1.3.7
だったので => 1.3.0
にしている。
terraform -v Terraform v1.3.7
バージョン指定については公式ドキュメントを参照。
terraform provider mackerel の読み込み
required_providers { mackerel = { source = "mackerelio-labs/mackerel" version = "~> 0.3.0" } }
version
はその時リリースされているバージョンに合わせる。
Mackerel への設定内容
resource "mackerel_channel" "email" { name = "terraform" email { emails = ["xxxxx@xxxxx.ne.jp"] events = ["alert", "alertGroup"] } }
terraform provider mackerel ドキュメント を参照して、Mackerel に実行したい設定を記述する。上記は terraform という名前の Email channel を新規作成する場合の内容。詳しくは Resource: mackerel_channel を参照。
初期化
初回のみ実行する。
terraform init
実行
terraform apply
main.tf を元に実行される内容が表示される。
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create Terraform will perform the following actions: # mackerel_channel.email will be created + resource "mackerel_channel" "email" { + id = (known after apply) + name = "terraform" + email { + emails = [ + "xxxxx@xxxxx.ne.jp", ] + events = [ + "alert", + "alertGroup", ] } } Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:
Enter a value:
に yes
を入力して Enter
を押すと実行される。
確認
Mackerel に通知チャンネルが作成されました。超簡単。