Terraformからさくらのクラウドを操作するためのプラグインです。
このプラグインはさくらインターネット公認ツール
としてさくらのクラウドユーザコミュニティによって開発されています。
さくらのクラウドに以下の環境を構築します。
- 最新安定版のCentOSを利用
- ディスク: SSD/20GB, サーバー: 1core/1GBメモリ(デフォルト値のため定義ファイル上では省略)
- SSH接続時のパスワード/チャレンジレスポンス認証を無効化(公開鍵認証のみに)
- SSH用の公開鍵はさくらのクラウド上で生成(作成された秘密鍵はローカルマシンへ保存する)
Installation / インストールを参考に TerraformとTerraform for さくらのクラウドを手元のマシンにインストールしてください。
インストール後、以下のコマンドを実行することでインフラ構築が行われます。
#################################################
# さくらのクラウドAPIキーを環境変数に設定
#################################################
export SAKURACLOUD_ACCESS_TOKEN=[さくらのクラウド APIトークン]
export SAKURACLOUD_ACCESS_TOKEN_SECRET=[さくらのクラウド APIシークレット]
#################################################
# Terraform定義ファイル作成
#################################################
mkdir work; cd work
tee sakura.tf <<-'EOF'
# サーバーの管理者パスワードの定義
variable "password" {
default = "PUT_YOUR_PASSWORD_HERE"
}
# 対象ゾーンを指定
provider sakuracloud {
zone = "tk1a" # 東京第1ゾーン
}
# 公開鍵(さくらのクラウド上で生成)
resource "sakuracloud_ssh_key_gen" "key" {
name = "foobar"
provisioner "local-exec" {
command = "echo \"${self.private_key}\" > id_rsa; chmod 0600 id_rsa"
}
provisioner "local-exec" {
when = "destroy"
command = "rm -f id_rsa"
}
}
# パブリックアーカイブ(OS)のID参照用のデータリソース定義
data sakuracloud_archive "centos" {
os_type = "centos"
}
# ディスク定義
resource "sakuracloud_disk" "disk01" {
name = "disk01"
source_archive_id = "${data.sakuracloud_archive.centos.id}"
}
# サーバー定義
resource "sakuracloud_server" "server01" {
name = "server01"
disks = ["${sakuracloud_disk.disk01.id}"]
ssh_key_ids = ["${sakuracloud_ssh_key_gen.key.id}"]
password = "${var.password}"
disable_pw_auth = true
}
# サーバへのSSH接続を表示するアウトプット定義
output "ssh_to_server" {
value = "ssh -i id_rsa root@${sakuracloud_server.server01.ipaddress}"
}
EOF
#################################################
# インフラ構築(init & apply)
#################################################
terraform init
terraform apply
- Terraform for さくらのクラウド ドキュメント
- サーバー
- ディスク
- アーカイブ
- ISOイメージ(CD-ROM)
- スイッチ
- ルーター
- サブネット
- パケットフィルタ
- パケットフィルタ(ルール)
- ブリッジ
- ロードバランサー
- VPCルーター
- データベース
- NFS
- SIM(セキュアモバイル)
- モバイルゲートウェイ
- スタートアップスクリプト
- 公開鍵
- 公開鍵(生成)
- アイコン
- 専有ホスト
- DNS
- GSLB
- シンプル監視
- 自動バックアップ
- オブジェクトストレージ
- サーバ コネクタ
以下のリソースはさくらのクラウド側でAPIが提供されていないため未サポートです。
- ローカルルータ
- リソースマネージャ
- ウェブアクセラレータ
- オブジェクトストレージ(バケット作成)
- ライセンス
- 割引パスポート
- クーポン
make build
make build-x
make docker-build
make test
make testacc
# 一覧表示
govendor list
# vendor配下のライブラリを一括更新
govendor fetch +v
# vendor配下のライブラリをGOPATH上から更新
govendor update +v
ドキュメントはGithub Pagesを利用しています。(masterブランチのdocs
ディレクトリ配下)
静的ファイルの生成はmkdocs
コマンドで行なっています。
ドキュメントのPRの際はbuild_docs
ディレクトリ配下のみ修正を行い、docs
ディレクトリ配下は変更しないでください。
docs
ディレクトリはリリース時に一括更新されます。
# ドキュメントのプレビュー用サーバー起動(http://localhost/でプレビュー可能)
make serve-docs
# ドキュメントの検証(textlint)
make lint-docs
terraform.ioスタイルの英語版ドキュメントのプレビューが行えます。
以下のコマンドを実行し、http://localhost:4567/docs/providers/sakuracloud
へアクセスしてください。
# 英語版ドキュメントのプレビュー
make serve-english-docs
This project is published under Apache 2.0 License.