Skip to content

Instantly share code, notes, and snippets.

@yamamoto-febc
Created May 12, 2016 16:11
Show Gist options
  • Select an option

  • Save yamamoto-febc/9e097f94aa142e573a462abc9e0dad8e to your computer and use it in GitHub Desktop.

Select an option

Save yamamoto-febc/9e097f94aa142e573a462abc9e0dad8e to your computer and use it in GitHub Desktop.
Terraform for さくらのクラウド サンプルファイル
#**************************************************************************************
# TerraForm for さくらのクラウド
#**************************************************************************************
# tfファイルのサンプルです。
# 以下に記載のtfファイル + SSH鍵を用意しておき、
# `terraform apply`すると以下の内容でさくらのクラウド上にプロビジョニングが行われます。
#
# 1) 手元のSSH公開鍵をアップロード
# 2) ディスク作成(Ubuntu 14.04をソースアーカイブとしたもの)
# 3) サーバー作成(パスワード認証無効化状態)
# 4) サーバーに割り振られたグローバルIPへのPING監視
# 5) サーバーに割り振られたグローバルIPでDNS(Aレコード)登録
#**************************************************************************************
provider "sakuracloud" {
zone = "is1a"
}
/************************
Server
************************/
resource "sakuracloud_server" "myserver" {
name = "myserver"
disks = ["${sakuracloud_disk.mydisk.id}"]
description = "Server from TerraForm for SAKURA CLOUD"
tags = ["@virtio-net-pci"]
}
/************************
Disk
************************/
resource "sakuracloud_disk" "mydisk" {
name = "mydisk"
source_archive_name = "Ubuntu Server 14.04.4 LTS 64bit"
description = "Disk from TerraForm for SAKURA CLOUD"
ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"]
disable_pw_auth = true
}
/************************
SSHKey
************************/
resource "sakuracloud_ssh_key" "mykey" {
name = "key"
public_key = "${file("./id_rsa.pub")}"
}
/************************
SimpleMonitor
************************/
resource "sakuracloud_simple_monitor" "mymonitor" {
target = "${sakuracloud_server.myserver.shared_nw_ipaddress}"
health_check = {
protocol = "ping"
}
description = "SimpleMonitor from terraform for SAKURA CLOUD"
notify_email_enabled = true
notify_slack_enabled = true
notify_slack_webhook = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX"
}
/************************
DNS
************************/
resource "sakuracloud_dns" "foobar" {
zone = "fe-bc.net"
description = "DNS from terraform for SAKURA CLOUD"
records = {
name = "terraform-sample"
type = "A"
value = "${sakuracloud_server.myserver.shared_nw_ipaddress}"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment