/terraform-provider-sakuracloud

:cherry_blossom:Terraform for さくらのクラウド

Primary LanguageGoApache License 2.0Apache-2.0

Terraform for さくらのクラウド

Build Status

Terraformでさくらのクラウドを操作するためのプラグイン

クイックスタート

準備

  • Dockerをインストールしておく
  • さくらのクラウドAPIキーを取得しておく

Dockerがない場合はInstallation / インストールを参考に TerraformとTerraform for さくらのクラウドを手元のマシンにインストールしてからご利用ください。

さくらのクラウドAPIキーの取得方法はこちらを参照してください。

#################################################
# Terraform定義ファイル作成
#################################################
$ mkdir ~/work; cd ~/work
$ ssh-keygen -C "" -P "" -f id_rsa   # サーバーへのSSH用キーペア生成
$ tee sakura.tf <<-'EOF'
resource "sakuracloud_ssh_key" "key"{
    name = "sshkey"
    public_key = "${file("id_rsa.pub")}"
}

data sakuracloud_archive "centos" {
    filter = {
        name   = "Tags"
        values = ["current-stable", "arch-64bit", "distro-centos"]
    }
}
resource "sakuracloud_disk" "disk01"{
    name = "disk01"
    source_archive_id = "${data.sakuracloud_archive.centos.id}"
    ssh_key_ids = ["${sakuracloud_ssh_key.key.id}"]
    disable_pw_auth = true
    zone = "is1b"
}

resource "sakuracloud_server" "server01" {
    name = "server01"
    disks = ["${sakuracloud_disk.disk01.id}"]
    tags = ["@virtio-net-pci"]
    zone = "is1b"
}
EOF

#################################################
# Terraformでインフラ作成
#################################################
$ docker run -it --rm \
         -e SAKURACLOUD_ACCESS_TOKEN=[さくらのクラウド APIトークン] \
         -e SAKURACLOUD_ACCESS_TOKEN_SECRET=[さくらのクラウド APIシークレット] \
         -v $PWD:/work \
         sacloud/terraform apply

インストール

リリースページから最新のバイナリを取得し、 Terraformバイナリと同じディレクトリに展開してください。

詳細はInstallation / インストールを参照してください。

使い方/各リソースの設定方法

Terraform定義ファイル(tfファイル)を作成してご利用ください。

設定ファイルの記載方法はリファレンスを参照ください。

さくらのクラウドの以下のリソースをサポートしています。

サポートしているリソース

Building/Developing

ソースコード

Terraform本体でのプロバイダ配置に合わせ、builtinディレクトリ配下にソースを配置しています。

 builtin/
   ├── bins
   │     └── provider-sakuracloud  # Terraformプラグインエントリーポイント(mainパッケージ)
   └── providers
         └── sakuracloud           # さくらのクラウド用プロバイダ/リソースなどソース一式

ビルド

make build

ビルド(クロスコンパイル)

make build-x

ビルド(Docker上でのビルド)

make docker-build

テスト

make test

受入テスト(実際のさくらのクラウドAPI呼び出しを伴うテスト)

make testacc

依存ライブラリ

# 一覧表示
govendor list

# vendor配下のライブラリを一括更新
govendor fetch +v

# vendor配下のライブラリをGOPATH上から更新
govendor update +v

License

This project is published under Apache 2.0 License.

Author