LoginSignup
4
3

More than 5 years have passed since last update.

terraform で 各 Iaas の仮想インスタンスを作成 (DigitalOcean)

Posted at

概要

terraform で各 IaaS ベンダーの仮想マシンを作成する

今回は DigitalOcean のベースとなる tf ファイルを作成

対象ベンダー
- Microsoft Azure
- Google Cloud
- DigitalOsean
- CloudStack

※AWSは今更なので割愛

事前準備

  • まずはサインアップ
  • 上メニューの [API] リンクより、token を作成
  • SSH公開鍵(id_rsa.pub)を tf ファイルと同じ場所に設置

手順

tf ファイルを作成

provider.tf
provider "digitalocean" {
  token = "${var.token}"
}
ssh_key.tf
resource "digitalocean_ssh_key" "default" {
    name = "default"
    public_key = "${file("id_rsa.pub")}"
}
floating_ip.tf
resource "digitalocean_floating_ip" "default" {
    droplet_id = "${digitalocean_droplet.default.id}"
    region = "${digitalocean_droplet.default.region}"
}
droplet.tf
resource "digitalocean_droplet" "default" {
  region = "${var.region}"
  name = "${var.droplet_name}"
  image = "${var.image}"
  size = "${var.size}"
  private_networking = true
  ssh_keys = ["${digitalocean_ssh_key.default.id}"]
}

domain.tf
resource "digitalocean_domain" "default" {
    name = "${var.domain_name}"
    ip_address = "${digitalocean_floating_ip.default.ip_address}"
}

resource "digitalocean_record" "default" {
    domain = "${digitalocean_domain.default.name}"
    type = "A"
    name = "${var.subdomain}"
    value = "${digitalocean_floating_ip.default.ip_address}"
}
output.tf
output "digitalocean_floating_ip_address" {
  value = "${digitalocean_floating_ip.default.ip_address}"
}
variables.tf
variable "token" {}
variable "region" {
  default = "sgp1"
}
variable "droplet_name" {}
variable "image" {}
variable "size" {}
variable "domain_name" {}
variable "subdomain" {}

tfvars は以下の通り

terraform.tfvars
## token
token = "**********************"

## droplet
region = "sgp1"
droplet_name = "********"
image = "centos-6-5-x64"
size = "512mb"

## domain
domain_name = "example.com"
subdomain = "www"

結果

$ terraform apply

Outputs:

  digitalocean_floating_ip_address = ***.***.***.***

作成されたリソース

$ terraform graph | dot -Tpng > graph.png

graph.png

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3