consul-demo
/
initialize.sh
64 строки · 1.7 Кб
1#!/bin/bash
2
3rm -rf ./tmp/4mkdir ./tmp/5
6### Build gateway
7
8cd ./demo-gateway/9chmod +x gradlew10./gradlew clean bootJar
11cp ./build/libs/demo-gateway-0.0.1-SNAPSHOT.jar ../ansible-playbooks/roles/java-application/files/12cd ..13
14### Build service
15
16cd ./demo-service/17chmod +x gradlew18./gradlew clean bootJar
19cp ./build/libs/demo-service-0.0.1-SNAPSHOT.jar ../ansible-playbooks/roles/java-application/files/20cd ..21
22### Start VM environment
23
24cd vagrant25vagrant up
26bash ./gather-inventory.sh27python3 build-ansible-inventory.py
28cp -f ./inventory.ini ../ansible-playbooks/inventory.ini29
30cd ..31
32### Deploy components with ansible
33
34cd ansible-playbooks35ansible-playbook consul-cluster-playbook.yaml
36
37cd ../vagrant38vagrant scp ../consul-configurations/acl consul-1:~/39vagrant ssh consul-1 -c "bash ~/acl/initialize-acl.sh"40
41vagrant scp consul-1:~/acl/*.token ../tmp/42
43TOKEN_SERVICE=$(cat ../tmp/srv.token)44TOKEN_GATEWAY=$(cat ../tmp/gateway.token)45TOKEN_GATEWAY_ISOLATED=$(cat ../tmp/gateway-isolated.token)46TOKEN_LOADBALANCER=$(cat ../tmp/loadbalancer.token)47
48cd ../ansible-playbooks49
50ansible-playbook service-playbook.yaml --extra-vars "consul_client_acl_token=$TOKEN_SERVICE"51ansible-playbook gateway-playbook.yaml --extra-vars "consul_client_acl_token=$TOKEN_GATEWAY"52ansible-playbook lb-playbook.yaml --extra-vars "consul_client_acl_token=$TOKEN_LOADBALANCER"53
54# can't be executed here,
55# currently, autogenerated inventory file is not supported [isolated-gw] group
56# which required for isolated-gw
57# ansible-playbook gateway-playbook-isolated-gw.yaml --extra-vars "consul_client_acl_token=$TOKEN_GATEWAY_ISOLATED"
58
59cd ..60
61### Done
62
63echo "######### Done #########"64cat ansible-playbooks/inventory.ini65