4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Terraform Cloudからさくらのクラウドにサーバを作成する

Posted at

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を選択します。
1.png

Organization nameとEmail addressを入力します。
2.png

Githubをクリックし、連携させたいGithubリポジトリを選択します。
3.png

選択します。
4.png

Workspace Nameを入力します。
5.png

Workspaceが作成されました。
6.png

3. Terraformバージョンの切り替え

SettingsをクリックしGeneralを選択します。
7.png

画面下部のTerraform Versionをクリックし
8.png

0.11.14を選択します。
9.png

最後に Save settings をクリックします。

4. APIキー、サーバ作成先ゾーンの設定

さくらのクラウドに対してサーバを作成するために以下の値を設定します。

  • SAKURACLOUD_ACCESS_TOKEN
  • SAKURACLOUD_ACCESS_TOKEN_SECRET
  • SAKURACLOUD_ZONE

Variablesをクリックし、Environment VariablesのAdd variableをクリックします。
10.png

以下のように値を設定します。
APIキーに関する2項目はSensitiveにチェックを入れます。
11.png

5. リソースの作成実行

Queue planをクリックし、Queue plan(青ボタン)を選択します。
12.png

terraform planが実行されます。
NEEDS CONFIRMATION が表示されたら画面をスクロールし
13.png

Confirm & Applyを選択します。
14.png

コメントを入力し、Confirm Planを選択します。
15.png

terraform applyが実行されます。
16.png

terraform applyが完了。
17.png

さくらのクラウドのコントロールパネルにログインし、Terraform Cloudから作成したサーバが存在していることを確認します。
18.png

以上で終わりです。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?