-
-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathinit-environment.sh
executable file
·115 lines (90 loc) · 2.85 KB
/
init-environment.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#!/usr/bin/env bash
source scripts/my-functions.sh
MYSQL_VERSION="9.1.0"
VAULT_VERSION="1.18.2"
CONSUL_VERSION="1.20.1"
echo
echo "Starting environment"
echo "===================="
echo
echo "Creating network"
echo "----------------"
docker network create springboot-vault-examples
echo
echo "Starting consul container"
echo "-------------------------"
docker run -d --rm --name consul \
-p 8400:8400 \
-p 8500:8500 \
-p 8600:53/udp \
--network=springboot-vault-examples \
--health-cmd="curl -f http://localhost:8500/v1/status/leader || exit 1" \
hashicorp/consul:${CONSUL_VERSION}
echo
echo "Starting vault container"
echo "------------------------"
docker run -d --rm --name vault \
-p 8200:8200 \
-e "MYSQL_ROOT_PASSWORD=secret" \
-e "MYSQL_DATABASE=exampledb" \
--cap-add=IPC_LOCK \
-v ${PWD}/docker/vault:/my/vault \
--network=springboot-vault-examples \
hashicorp/vault:${VAULT_VERSION} vault server -config=/my/vault/config/config.hcl
echo
wait_for_container_log "consul" "Node info in sync"
echo
wait_for_container_log "vault" "Vault server started!"
echo
echo "Starting mysql container"
echo "------------------------"
docker run -d --rm --name mysql \
-p 3306:3306 \
-e "MYSQL_ROOT_PASSWORD=secret" \
-e "MYSQL_DATABASE=exampledb" \
--network=springboot-vault-examples \
--health-cmd="mysqladmin ping -u root -p$${MYSQL_ROOT_PASSWORD}" \
mysql:${MYSQL_VERSION}
echo
echo "Starting mysql-2 container"
echo "--------------------------"
docker run -d --rm --name mysql-2 \
-p 3307:3306 \
-e "MYSQL_ROOT_PASSWORD=secret" \
-e "MYSQL_DATABASE=exampledb" \
--network=springboot-vault-examples \
--health-cmd="mysqladmin ping -u root -p$${MYSQL_ROOT_PASSWORD}" \
mysql:${MYSQL_VERSION}
echo
echo "Building cassandra image"
echo "------------------------"
docker build -t springboot-vault-examples_cassandra:latest docker/cassandra
echo
echo "Starting cassandra container"
echo "----------------------------"
docker run -d --rm --name cassandra \
-p 9042:9042 \
-p 7199:7199 \
-p 9160:9160 \
--network=springboot-vault-examples \
--health-cmd="cqlsh -ucassandra -pcassandra < /dev/null" \
springboot-vault-examples_cassandra:latest
echo
wait_for_container_log "mysql" "port: 3306"
echo
wait_for_container_log "mysql-2" "port: 3306"
echo
wait_for_container_log "cassandra" "Created default superuser role"
source scripts/unseal-vault-enable-approle-databases.sh
source scripts/setup-spring-cloud-vault-approle-mysql.sh
source scripts/setup-spring-cloud-vault-approle-cassandra.sh
source scripts/setup-spring-vault-approle-mysql.sh
source scripts/setup-spring-vault-approle-multi-datasources-mysql.sh
echo
echo "*********************************************"
echo "VAULT_ROOT_TOKEN=${VAULT_ROOT_TOKEN}"
echo "*********************************************"
echo
echo "Environment Up and Running"
echo "=========================="
echo