Terraform CloudはHashiCorp社が提供しているTerraformをマネージドしてくれるサービスです。
Githubと連携してterraformがあるリポジトリにpushなどが行われると、自動でterraformコマンドが実行されGitops的なことができたりして便利です。
特に複数人でTerraformを利用しているケースには非常にありがたいです。
無料で使える範囲があるので、今回はその範囲内で使ってみました。
デフォルトの状態ではさくらのクラウドにサーバを作成することができないので、手順をまとめてみました。
準備するもの
- さくらのクラウドのAPIキー
- Githubアカウント
環境
今回は以下のバージョンで実行されることを想定しています。
Terraform v0.11.14
Terraform for さくらのクラウド v1.16.4
Githubリポジトリ https://github.com/tar-xzvff/sakura-cloud-tfcloud-sample
1. リポジトリの作成
Githubリポジトリにさくらのクラウドに対してサーバを作成するTerraformを置きます。
また、Terraform provider(さくらのクラウド for Terraform)のバイナリファイルも同じリポジトリ内に置きます。
※事前にGithubにリポジトリを作成します。(Public/Privateどちらでも可)
※git initしたディレクトリにて以下を実行
プラグインの配置
curl -O https://releases.usacloud.jp/terraform/terraform-provider-sakuracloud_1.16.4_linux-amd64.zip
unzip terraform-provider-sakuracloud_1.16.4_linux-amd64.zip
mkdir -p terraform.d/plugins/linux_amd64
mv terraform-provider-sakuracloud_v1.16.4 terraform.d/plugins/linux_amd64
Terraformファイルの配置
cat <<'EOF' > server.tf
data sakuracloud_archive "ubuntu" {
filter = {
name = "Name"
values = ["Ubuntu Server"]
}
filter = {
name = "Tags"
values = ["current-stable","arch-64bit","os-linux"]
}
}
resource "sakuracloud_disk" "disk01" {
name = "disk01"
source_archive_id = "${data.sakuracloud_archive.ubuntu.id}"
}
resource "sakuracloud_server" "server01" {
name = "server01"
disks = ["${sakuracloud_disk.disk01.id}"]
password = "YourPassw0rd"
}
EOF
git add server.tf
git commit -m "Add a tf file"
git add terraform.d/plugins/linux_amd64/terraform-provider-sakuracloud_v1.16.4
git commit -m "Add terraform-provider-sakuracloud"
git push origin master
ディレクトリの最終的な状態
# tree
.
├── server.tf
└── terraform.d
└── plugins
└── linux_amd64
└── terraform-provider-sakuracloud_v1.16.4
2. Terraform Cloudのサインアップ
割愛します。
3. Workspaceの作成
Create a New Organizationを選択します。
Organization nameとEmail addressを入力します。
Githubをクリックし、連携させたいGithubリポジトリを選択します。
3. Terraformバージョンの切り替え
最後に Save settings
をクリックします。
4. APIキー、サーバ作成先ゾーンの設定
さくらのクラウドに対してサーバを作成するために以下の値を設定します。
- SAKURACLOUD_ACCESS_TOKEN
- SAKURACLOUD_ACCESS_TOKEN_SECRET
- SAKURACLOUD_ZONE
Variablesをクリックし、Environment VariablesのAdd variableをクリックします。
以下のように値を設定します。
APIキーに関する2項目はSensitiveにチェックを入れます。
5. リソースの作成実行
Queue planをクリックし、Queue plan(青ボタン)を選択します。
terraform planが実行されます。
NEEDS CONFIRMATION が表示されたら画面をスクロールし
さくらのクラウドのコントロールパネルにログインし、Terraform Cloudから作成したサーバが存在していることを確認します。
以上で終わりです。