Last active
May 24, 2016 09:55
-
-
Save yamamoto-febc/0c4836e7ef8636924e59ea746a814b34 to your computer and use it in GitHub Desktop.
Terraform for さくらのクラウド ref: http://qiita.com/yamamoto-febc/items/0ce30e2dba32c60bbf66
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#GSLBのFQDNをtest.example.comのCNAMEとして登録 | |
value = "${sakuracloud_gslb.mygslb.FQDN}." #注:末尾にピリオドつける | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
これも`terraform apply`すれば環境構築できちゃいます。 | |
自動化万歳! | |
## リソースの削除/お片付け | |
以下のコマンドでリソースの削除もできます。 | |
`terraform destroy` | |
#まとめ | |
`Terraform for さくらのクラウド`を用いればterraformのパワーを存分に利用しつつ | |
さくらのクラウドが使えます。 | |
今回は触れませんでしたが複数事業者をまたいでの構築なんかもできます。 | |
AWS/Azure/Softlayerで作ったサーバをさくらのGSLBにぶら下げるなんてことも | |
できちゃいますね! | |
今後管理できるリソースは随時追加予定ですのでお楽しみに! | |
以上です。 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
provider "sakuracloud" { | |
token = "your APIKey(token)" | |
secret = "your APIKey(secret)" | |
zone = "is1a" | |
} | |
/************************ | |
Server | |
************************/ | |
resource "sakuracloud_server" "myserver" { | |
name = "myserver" | |
disks = ["${sakuracloud_disk.mydisk.id}"] | |
tags = ["@virtio-net-pci"] | |
} | |
/************************ | |
Disk | |
************************/ | |
resource "sakuracloud_disk" "mydisk" { | |
name = "mydisk" | |
source_archive_name = "Ubuntu Server 14.04.4 LTS 64bit" | |
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")}" | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/************************ | |
DNS | |
************************/ | |
resource "sakuracloud_dns" "foobar" { | |
zone = "example.com" | |
records = { | |
#ホスト名 | |
name = "terraform-sample" | |
#レコードタイプ(Aレコード) | |
type = "A" | |
#IPアドレス(他のリソースの値を参照) | |
value = "${sakuracloud_server.myserver.shared_nw_ipaddress}" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
provider "sakuracloud" { | |
token = "your APIKey(token)" | |
secret = "your APIKey(secret)" | |
zone = "is1a" | |
} | |
/**************************************** | |
Server(各ゾーンそれぞれに作成) | |
*****************************************/ | |
resource "sakuracloud_server" "server1" { | |
name = "server1" | |
disks = ["${sakuracloud_disk.disk1.id}"] | |
tags = ["@virtio-net-pci"] | |
zone = "is1a" #石狩第1ゾーン | |
} | |
resource "sakuracloud_server" "server2" { | |
name = "server2" | |
disks = ["${sakuracloud_disk.disk2.id}"] | |
tags = ["@virtio-net-pci"] | |
zone = "is1b" #石狩第2ゾーン | |
} | |
resource "sakuracloud_server" "server3" { | |
name = "server3" | |
disks = ["${sakuracloud_disk.disk3.id}"] | |
tags = ["@virtio-net-pci"] | |
zone = "tk1a" #東京ゾーン | |
} | |
/**************************************** | |
Disk(各ゾーンそれぞれに作成、SSH公開鍵は共通) | |
*****************************************/ | |
resource "sakuracloud_disk" "disk1" { | |
name = "disk1" | |
source_archive_name = "Ubuntu Server 14.04.4 LTS 64bit" | |
ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"] | |
disable_pw_auth = true | |
zone = "is1a" #石狩第1ゾーン | |
} | |
resource "sakuracloud_disk" "disk2" { | |
name = "disk2" | |
source_archive_name = "Ubuntu Server 14.04.4 LTS 64bit" | |
ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"] | |
disable_pw_auth = true | |
zone = "is1b" #石狩第2ゾーン | |
} | |
resource "sakuracloud_disk" "disk3" { | |
name = "disk3" | |
source_archive_name = "Ubuntu Server 14.04.4 LTS 64bit" | |
ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"] | |
disable_pw_auth = true | |
zone = "tk1a" #東京ゾーン | |
} | |
/**************************************** | |
SSH公開鍵 | |
*****************************************/ | |
resource "sakuracloud_ssh_key" "mykey" { | |
name = "key" | |
public_key = "${file("./id_rsa.pub")}" | |
} | |
/**************************************** | |
さくらのDNS | |
*****************************************/ | |
resource "sakuracloud_dns" "mydns" { | |
zone = "example.com" | |
records = { | |
name = "test" | |
type = "CNAME" | |
#GSLBのFQDNをtest.example.comのCNAMEとして登録 | |
value = "${sakuracloud_gslb.mygslb.FQDN}." #注:末尾にピリオドつける | |
} | |
} | |
/**************************************** | |
GSLB(各ゾーン合計3台を配下に登録) | |
*****************************************/ | |
resource "sakuracloud_gslb" "mygslb" { | |
name = "gslb_from_terraform" | |
health_check = { | |
protocol = "http" | |
delay_loop = 10 | |
host_header = "test.example.com" | |
path = "/" | |
status = "200" | |
} | |
servers = { | |
ipaddress = "${sakuracloud_server.server1.shared_nw_ipaddress}" | |
} | |
servers = { | |
ipaddress = "${sakuracloud_server.server2.shared_nw_ipaddress}" | |
} | |
servers = { | |
ipaddress = "${sakuracloud_server.server3.shared_nw_ipaddress}" | |
} | |
} | |
/**************************************** | |
シンプル監視 | |
*****************************************/ | |
resource "sakuracloud_simple_monitor" "mymonitor" { | |
target = "test.example.com" | |
health_check = { | |
protocol = "http" | |
delay_loop = 60 | |
path = "/" | |
status = "200" | |
} | |
notify_email_enabled = true | |
notify_slack_enabled = true | |
notify_slack_webhook = "https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXX" | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/************************ | |
Server | |
************************/ | |
resource "sakuracloud_server" "myserver" { | |
name = "myserver" | |
disks = ["${sakuracloud_disk.mydisk.id}"] | |
tags = ["@virtio-net-pci"] | |
core = 4 # CPUコア数をデフォルトの1から4に変更 | |
memory = 8 # メモリをデフォルトの1GBから8GBへ変更 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment