github.com/nathanielks/terraform@v0.6.1-0.20170509030759-13e1a62319dc/examples/alicloud-ecs-image/main.tf (about)

     1  data "alicloud_images" "ecs_image" {
     2    most_recent = "${var.most_recent}"
     3    owners = "${var.image_owners}"
     4    name_regex = "${var.name_regex}"
     5  }
     6  
     7  resource "alicloud_security_group" "group" {
     8    name = "${var.short_name}"
     9    description = "New security group"
    10  }
    11  
    12  resource "alicloud_security_group_rule" "http-in" {
    13    type = "ingress"
    14    ip_protocol = "tcp"
    15    nic_type = "internet"
    16    policy = "accept"
    17    port_range = "80/80"
    18    priority = 1
    19    security_group_id = "${alicloud_security_group.group.id}"
    20    cidr_ip = "0.0.0.0/0"
    21  }
    22  
    23  resource "alicloud_security_group_rule" "https-in" {
    24    type = "ingress"
    25    ip_protocol = "tcp"
    26    nic_type = "internet"
    27    policy = "accept"
    28    port_range = "443/443"
    29    priority = 1
    30    security_group_id = "${alicloud_security_group.group.id}"
    31    cidr_ip = "0.0.0.0/0"
    32  }
    33  
    34  resource "alicloud_security_group_rule" "ssh-in" {
    35    type = "ingress"
    36    ip_protocol = "tcp"
    37    nic_type = "internet"
    38    policy = "accept"
    39    port_range = "22/22"
    40    priority = 1
    41    security_group_id = "${alicloud_security_group.group.id}"
    42    cidr_ip = "0.0.0.0/0"
    43  }
    44  
    45  
    46  resource "alicloud_disk" "disk" {
    47    availability_zone = "${var.availability_zones}"
    48    category = "${var.disk_category}"
    49    size = "${var.disk_size}"
    50    count = "${var.count}"
    51  }
    52  
    53  resource "alicloud_instance" "instance" {
    54    instance_name = "${var.short_name}-${var.role}-${format(var.count_format, count.index+1)}"
    55    host_name = "${var.short_name}-${var.role}-${format(var.count_format, count.index+1)}"
    56    image_id = "${data.alicloud_images.ecs_image.images.0.id}"
    57    instance_type = "${var.ecs_type}"
    58    count = "${var.count}"
    59    availability_zone = "${var.availability_zones}"
    60    security_groups = ["${alicloud_security_group.group.*.id}"]
    61  
    62    internet_charge_type = "${var.internet_charge_type}"
    63    internet_max_bandwidth_out = "${var.internet_max_bandwidth_out}"
    64  
    65    io_optimized = "${var.io_optimized}"
    66  
    67    password = "${var.ecs_password}"
    68  
    69    allocate_public_ip = "${var.allocate_public_ip}"
    70  
    71    instance_charge_type = "PostPaid"
    72    system_disk_category = "cloud_efficiency"
    73  
    74  
    75    tags {
    76      role = "${var.role}"
    77      dc = "${var.datacenter}"
    78    }
    79  
    80  }
    81  
    82  resource "alicloud_disk_attachment" "instance-attachment" {
    83    count = "${var.count}"
    84    disk_id = "${element(alicloud_disk.disk.*.id, count.index)}"
    85    instance_id = "${element(alicloud_instance.instance.*.id, count.index)}"
    86    device_name = "${var.device_name}"
    87  }
    88