Last active
May 17, 2017 14:06
-
-
Save yamamoto-febc/3595fcf5fa13e0bb7768786524de8e4f to your computer and use it in GitHub Desktop.
Terraform for さくらのクラウド スタートガイド(第3回) ref: http://qiita.com/yamamoto-febc/items/fe954e2d4a92b864cfef
This file contains hidden or 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
| $ dig web.fe-bc.net. |
This file contains hidden or 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
| resource "sakuracloud_dns" "dns" { | |
| zone = "fe-bc.net" | |
| records = { | |
| name = "web" | |
| type = "A" | |
| value = "${sakuracloud_server.server.0.base_nw_ipaddress}" | |
| } | |
| records = { | |
| name = "web" | |
| type = "A" | |
| value = "${sakuracloud_server.server.1.base_nw_ipaddress}" | |
| } | |
| } |
This file contains hidden or 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
| # 今はこの書き方はできない!! | |
| resource "sakuracloud_dns" "dns" { | |
| zone = "fe-bc.net" | |
| records = { | |
| count = 2 | |
| name = "web" | |
| type = "A" | |
| value = "${element(sakuracloud_server.server.*.base_nw_ipaddress , count.index)}" | |
| } | |
| } |
This file contains hidden or 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
| resource sakuracloud_server "server"{ | |
| name = "${format("server%02d" , count.index+1)}" | |
| disks = ["${element(sakuracloud_disk.disk.*.id,count.index)}"] | |
| count = 2 | |
| # 1: サーバーにはSSHで接続 | |
| connection { | |
| user = "root" | |
| host = "${self.base_nw_ipaddress}" | |
| private_key = "${file("./id_rsa")}" | |
| } | |
| # 2: yumでapache+PHPのインストール | |
| provisioner "remote-exec" { | |
| inline = [ | |
| "yum install -y httpd httpd-devel php php-mbstring", | |
| "systemctl restart httpd.service", | |
| "systemctl enable httpd.service", | |
| "systemctl stop firewalld.service", | |
| "systemctl disable firewalld.service" | |
| ] | |
| } | |
| # 3: Webコンテンツをアップロード | |
| provisioner "file" { | |
| source = "webapps/" | |
| destination = "/var/www/html" | |
| } | |
| } |
This file contains hidden or 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 = "[ACCESS_TOKEN]" | |
| secret = "[ACCESS_TOKEN_SECRET]" | |
| } | |
| resource "sakuracloud_disk" "disk" { | |
| name = "${format("disk%02d" , count.index+1)}" | |
| source_archive_name = "CentOS 7.2 64bit" | |
| ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"] | |
| disable_pw_auth = true | |
| count = 2 | |
| } | |
| resource "sakuracloud_server" "server" { | |
| name = "${format("server%02d" , count.index+1)}" | |
| disks = ["${element(sakuracloud_disk.disk.*.id,count.index)}"] | |
| count = 2 | |
| # 1: サーバーにはSSHで接続 | |
| connection { | |
| user = "root" | |
| host = "${self.base_nw_ipaddress}" | |
| private_key = "${file("./id_rsa")}" | |
| } | |
| # 2: yumでapache+PHPのインストール | |
| provisioner "remote-exec" { | |
| inline = [ | |
| "yum install -y httpd httpd-devel php php-mbstring", | |
| "systemctl restart httpd.service", | |
| "systemctl enable httpd.service", | |
| "systemctl stop firewalld.service", | |
| "systemctl disable firewalld.service" | |
| ] | |
| } | |
| # 3: Webコンテンツをアップロード | |
| provisioner "file" { | |
| source = "webapps/" | |
| destination = "/var/www/html" | |
| } | |
| } | |
| resource "sakuracloud_ssh_key" "mykey" { | |
| name = "mykey" | |
| public_key = "${file("./id_rsa.pub")}" | |
| } | |
| resource "sakuracloud_dns" "dns" { | |
| zone = "fe-bc.net" | |
| records = { | |
| name = "web" | |
| type = "A" | |
| value = "${sakuracloud_server.server.0.base_nw_ipaddress}" | |
| } | |
| records = { | |
| name = "web" | |
| type = "A" | |
| value = "${sakuracloud_server.server.1.base_nw_ipaddress}" | |
| } | |
| } | |
| output "global_ip" { | |
| value = "${join("\n" , formatlist("%s : %s" , sakuracloud_server.server.*.name , sakuracloud_server.server.*.base_nw_ipaddress))}" | |
| } |
This file contains hidden or 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 = "[ACCESS_TOKEN]" | |
| secret = "[ACCESS_TOKEN_SECRET]" | |
| } | |
| resource "sakuracloud_disk" "disk" { | |
| name = "${format("disk%02d" , count.index+1)}" | |
| source_archive_name = "CentOS 7.2 64bit" | |
| ssh_key_ids = ["${sakuracloud_ssh_key.mykey.id}"] | |
| disable_pw_auth = true | |
| count = 2 | |
| } | |
| resource "sakuracloud_server" "server" { | |
| name = "${format("server%02d" , count.index+1)}" | |
| disks = ["${element(sakuracloud_disk.disk.*.id,count.index)}"] | |
| count = 2 | |
| } | |
| resource "sakuracloud_ssh_key" "mykey" { | |
| name = "mykey" | |
| public_key = "${file("./id_rsa.pub")}" | |
| } | |
| output "global_ip" { | |
| value = "${join("\n" , formatlist("%s : %s" , sakuracloud_server.server.*.name , sakuracloud_server.server.*.base_nw_ipaddress))}" | |
| } |
This file contains hidden or 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 destroy | |
| Do you really want to destroy? | |
| Terraform will delete all your managed infrastructure. | |
| There is no undo. Only 'yes' will be accepted to confirm. | |
| Enter a value: yes #削除する場合はyesを入力してenter | |
| sakuracloud_ssh_key.mykey: Refreshing state... (ID: 112800522836) | |
| sakuracloud_disk.disk.0: Refreshing state... (ID: 112800522837) | |
| sakuracloud_disk.disk.1: Refreshing state... (ID: 112800522838) | |
| sakuracloud_server.server.0: Refreshing state... (ID: 112800522843) | |
| sakuracloud_server.server.1: Refreshing state... (ID: 112800522842) | |
| sakuracloud_server.server.0: Destroying... | |
| sakuracloud_server.server.1: Destroying... | |
| sakuracloud_server.server.0: Still destroying... (10s elapsed) | |
| sakuracloud_server.server.1: Still destroying... (10s elapsed) | |
| sakuracloud_server.server.0: Destruction complete | |
| sakuracloud_server.server.1: Destruction complete | |
| sakuracloud_disk.disk.0: Destroying... | |
| sakuracloud_disk.disk.1: Destroying... | |
| sakuracloud_disk.disk.0: Destruction complete | |
| sakuracloud_disk.disk.1: Destruction complete | |
| sakuracloud_ssh_key.mykey: Destroying... | |
| sakuracloud_ssh_key.mykey: Destruction complete | |
| Apply complete! Resources: 0 added, 0 changed, 5 destroyed. |
This file contains hidden or 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
| $ mkdir webapps | |
| $ vi webapps/index.php | |
| #以下内容を記載 | |
| <?php | |
| date_default_timezone_set('Asia/Tokyo'); | |
| echo "Terraform for さくらのクラウド スタートガイド用デモ". "<br /><br />"; | |
| echo "IPアドレス:" . $_SERVER[ 'SERVER_ADDR' ] . "<br />"; | |
| echo "時刻:" . date("Y/m/d H:i:s"). "<br />"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment