@@ -3,31 +3,111 @@ provider "digitalocean" {
33 token = " ${ var . do_apikey } "
44}
55
6- resource "digitalocean_ssh_key" "apigwperftest " {
6+ resource "digitalocean_ssh_key" "apiperf-sshkey " {
77 name = " apigwperftest"
88 public_key = " ${ var . sshkey } "
99}
1010
11- resource "digitalocean_droplet" "apiperf" {
12- count = " ${ var . count } "
13- image = " centos-7-0-x64"
14- private_networking = " True"
15- name = " apiperf-${ lookup (var. droplet_names , count. index )} "
16- size = " ${ lookup (var. droplet_sizes , count. index )} "
17- region = " ams3"
18- ssh_keys = [ " ${ digitalocean_ssh_key . apigwperftest . id } " ]
11+ resource "digitalocean_droplet" "apiperf-webserver" {
12+ image = " ${ var . droplet_image } "
13+ private_networking = " ${ var . droplet_use_privatenet } "
14+ name = " apiperf-${ lookup (var. droplet_names , " webserver" )} "
15+ size = " ${ lookup (var. droplet_sizes , " webserver" )} "
16+ region = " ${ var . droplet_region } "
17+ ssh_keys = [ " ${ digitalocean_ssh_key . apiperf-sshkey . id } " ]
18+ provisioner "local-exec" {
19+ command = " echo ${ self . ipv4_address } ${ lookup (var. droplet_names , " webserver" )} > hosts/${ lookup (var. droplet_names , " webserver" )} "
20+ }
21+ provisioner "remote-exec" {
22+ inline = [
23+ " service firewalld stop"
24+ ]
25+ }
26+ }
27+
28+ resource "digitalocean_droplet" "apiperf-gateway" {
29+ image = " ${ var . droplet_image } "
30+ private_networking = " ${ var . droplet_use_privatenet } "
31+ name = " apiperf-${ lookup (var. droplet_names , " gateway" )} "
32+ size = " ${ lookup (var. droplet_sizes , " gateway" )} "
33+ region = " ${ var . droplet_region } "
34+ ssh_keys = [ " ${ digitalocean_ssh_key . apiperf-sshkey . id } " ]
35+ provisioner "local-exec" {
36+ command = " echo ${ self . ipv4_address } ${ lookup (var. droplet_names , " gateway" )} > hosts/${ lookup (var. droplet_names , " gateway" )} "
37+ }
38+ provisioner "remote-exec" {
39+ inline = [
40+ " service firewalld stop"
41+ ]
42+ }
43+ }
1944
45+ resource "digitalocean_droplet" "apiperf-consumer" {
46+ image = " ${ var . droplet_image } "
47+ private_networking = " ${ var . droplet_use_privatenet } "
48+ name = " apiperf-${ lookup (var. droplet_names , " consumer" )} "
49+ size = " ${ lookup (var. droplet_sizes , " consumer" )} "
50+ region = " ${ var . droplet_region } "
51+ ssh_keys = [ " ${ digitalocean_ssh_key . apiperf-sshkey . id } " ]
2052 provisioner "local-exec" {
21- command = " echo ${ self . ipv4_address } ${ lookup (var. droplet_names , count . index )} > hosts/${ lookup (var. droplet_names , count . index )} "
53+ command = " echo ${ self . ipv4_address } ${ lookup (var. droplet_names , " consumer " )} > hosts/${ lookup (var. droplet_names , " consumer " )} "
2254 }
23- # provisioner "file" {
24- # source = "hosts"
25- # destination = "/tmp"
26- # }
2755 provisioner "remote-exec" {
2856 inline = [
29- # "cat /tmp/hosts/* >> /etc/hosts",
3057 " service firewalld stop"
3158 ]
3259 }
3360}
61+
62+ resource "null_resource" "hostsfile" {
63+ triggers {
64+ droplet_consumer = " ${ digitalocean_droplet . apiperf-consumer . ipv4_address } "
65+ droplet_webserver = " ${ digitalocean_droplet . apiperf-webserver . ipv4_address } "
66+ droplet_gateway = " ${ digitalocean_droplet . apiperf-gateway . ipv4_address } "
67+ }
68+ provisioner "file" {
69+ connection {
70+ host = " ${ digitalocean_droplet . apiperf-consumer . ipv4_address } "
71+ }
72+ source = " hosts"
73+ destination = " /tmp"
74+ }
75+ provisioner "remote-exec" {
76+ connection {
77+ host = " ${ digitalocean_droplet . apiperf-consumer . ipv4_address } "
78+ }
79+ inline = [
80+ " cat /tmp/hosts/*.host >> /etc/hosts" ,
81+ ]
82+ }
83+ provisioner "file" {
84+ connection {
85+ host = " ${ digitalocean_droplet . apiperf-gateway . ipv4_address } "
86+ }
87+ source = " hosts"
88+ destination = " /tmp"
89+ }
90+ provisioner "remote-exec" {
91+ connection {
92+ host = " ${ digitalocean_droplet . apiperf-gateway . ipv4_address } "
93+ }
94+ inline = [
95+ " cat /tmp/hosts/*.host >> /etc/hosts" ,
96+ ]
97+ }
98+ provisioner "file" {
99+ connection {
100+ host = " ${ digitalocean_droplet . apiperf-webserver . ipv4_address } "
101+ }
102+ source = " hosts"
103+ destination = " /tmp"
104+ }
105+ provisioner "remote-exec" {
106+ connection {
107+ host = " ${ digitalocean_droplet . apiperf-webserver . ipv4_address } "
108+ }
109+ inline = [
110+ " cat /tmp/hosts/*.host >> /etc/hosts" ,
111+ ]
112+ }
113+ }
0 commit comments