|
| 1 | +provider "scaleway" { |
| 2 | + #access_key = "<SCALEWAY-ACCESS-KEY>" |
| 3 | + #secret_key = "<SCALEWAY-SECRET-KEY>" |
| 4 | + #organization_id = "<SCALEWAY-ORGANIZATION-ID>" |
| 5 | + zone = "fr-par-1" |
| 6 | + region = "fr-par" |
| 7 | +} |
| 8 | + |
1 | 9 | data "scaleway_image" "image" { |
2 | | - count = "${var.node_count > 0 ? 1 : 0}" |
| 10 | + count = var.node_count > 0 ? 1 : 0 |
3 | 11 |
|
4 | | - architecture = "${var.server_arch}" |
5 | | - name = "${var.server_image}" |
| 12 | + architecture = var.server_arch |
| 13 | + name = var.server_image |
6 | 14 | } |
7 | 15 |
|
8 | | -resource "scaleway_server" "node" { |
9 | | - count = "${var.node_count}" |
| 16 | +resource "scaleway_instance_server" "node" { |
| 17 | + count = var.node_count |
10 | 18 |
|
11 | | - name = "${var.node_name}-${count.index}" |
| 19 | + name = "${var.node_name}-${count.index}" |
12 | 20 |
|
13 | | - image = "${data.scaleway_image.image.id}" |
14 | | - type = "${var.server_type}" |
15 | | - dynamic_ip_required = true |
16 | | - boot_type = "local" |
| 21 | + image = data.scaleway_image.image[0].id |
| 22 | + type = var.server_type |
| 23 | + enable_dynamic_ip = true |
| 24 | + # boot_type = "local" |
17 | 25 |
|
18 | 26 | # initialization sequence |
19 | | - cloudinit = "${data.template_file.userdata.rendered}" |
| 27 | + cloud_init = data.template_file.userdata.rendered |
| 28 | + |
| 29 | + connection { |
| 30 | + host = element(scaleway_instance_server.node.*.public_ip, count.index) |
| 31 | + user = var.username |
| 32 | + private_key = file("~/.ssh/scaleway") |
| 33 | + } |
| 34 | + |
20 | 35 | provisioner "remote-exec" { |
21 | 36 | inline = [ |
22 | 37 | "tail -f /var/log/cloud-init-output.log &", |
23 | | - "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do sleep 10; done;" |
| 38 | + "while [ ! -f /var/lib/cloud/instance/boot-finished ]; do sleep 10; done;", |
24 | 39 | ] |
25 | 40 | } |
26 | 41 | provisioner "local-exec" { |
27 | 42 | command = "sleep 80" # wait more than 1 minute for the instance to be rebooted |
28 | 43 | } |
29 | | - |
30 | 44 | } |
31 | 45 |
|
32 | 46 | data "template_file" "userdata" { |
33 | | - template = "${file("${path.module}/cloud-init-user-data")}" |
| 47 | + template = file("${path.module}/cloud-init-user-data") |
34 | 48 |
|
35 | | - vars { |
36 | | - codename = "${var.docker_distrib_codename}" |
37 | | - distrib = "${var.docker_distrib}" |
38 | | - user = "${var.username}" |
| 49 | + vars = { |
| 50 | + codename = var.docker_distrib_codename |
| 51 | + distrib = var.docker_distrib |
| 52 | + user = var.username |
39 | 53 | } |
40 | 54 | } |
41 | 55 |
|
42 | 56 | resource "null_resource" "node" { |
43 | | - count = "${var.node_count}" |
| 57 | + count = var.node_count |
44 | 58 |
|
45 | 59 | connection { |
46 | | - host = "${element(scaleway_server.node.*.public_ip, count.index)}" |
47 | | - user = "${var.username}" |
| 60 | + host = element(scaleway_instance_server.node.*.public_ip, count.index) |
| 61 | + user = var.username |
| 62 | + private_key = file("~/.ssh/scaleway") |
48 | 63 | } |
49 | 64 |
|
50 | 65 | provisioner "remote-exec" { |
51 | 66 | inline = [ |
52 | 67 | "mkdir -p ~/www", |
53 | 68 | "echo 'It works' > ~/www/index.html", |
54 | | - "docker run --name http-nginx --restart=always -v ~/www:/usr/share/nginx/html:ro -p 80:80 -d nginx" |
| 69 | + "docker run --name http-nginx --restart=always -v ~/www:/usr/share/nginx/html:ro -p 80:80 -d nginx", |
55 | 70 | ] |
56 | 71 | } |
57 | 72 | } |
| 73 | + |
0 commit comments