diff --git a/clickhouse/docker-compose.yaml b/clickhouse/docker-compose.yaml index 4ba1a62..8c17f35 100644 --- a/clickhouse/docker-compose.yaml +++ b/clickhouse/docker-compose.yaml @@ -11,6 +11,9 @@ services: clickhouse-keeper-network: aliases: - clickhouse-keeper1 + deploy: + placement: + constraints: [node.labels.main == true] clickhouse-keeper2: image: clickhouse/clickhouse-server:latest @@ -23,6 +26,9 @@ services: clickhouse-keeper-network: aliases: - clickhouse-keeper2 + deploy: + placement: + constraints: [node.labels.main == true] clickhouse-keeper3: image: clickhouse/clickhouse-server:latest @@ -35,6 +41,9 @@ services: clickhouse-keeper-network: aliases: - clickhouse-keeper3 + deploy: + placement: + constraints: [node.labels.main == true] clickhouse-server1: image: clickhouse/clickhouse-server:latest @@ -56,8 +65,8 @@ services: - clickhouse-server1 deploy: replicas: 1 - # placement: - # constraints: [node.labels.role == server] + placement: + constraints: [node.labels.main == true] update_config: delay: 10s resources: @@ -90,8 +99,8 @@ services: - clickhouse-server2 deploy: replicas: 1 - # placement: - # constraints: [node.labels.role == server] + placement: + constraints: [node.labels.main == true] update_config: delay: 10s resources: diff --git a/preprocessing/docker-compose.yml b/preprocessing/docker-compose.yml index a587882..634b231 100644 --- a/preprocessing/docker-compose.yml +++ b/preprocessing/docker-compose.yml @@ -7,6 +7,8 @@ services: - zookeeper deploy: replicas: 1 + placement: + constraints: [node.labels.worker == true] restart_policy: condition: on-failure environment: @@ -40,6 +42,8 @@ services: - kafka_data:/var/lib/kafka/data deploy: replicas: 1 + placement: + constraints: [node.labels.worker == true] restart_policy: condition: on-failure @@ -56,6 +60,8 @@ services: command: "sh -c 'sleep 30 && python /app/pcap_processor.py -c /data/csv/main.csv -x --stream_size 100000'" deploy: replicas: 1 + placement: + constraints: [node.labels.worker == true] restart_policy: condition: on-failure diff --git a/scripts/deploy.sh b/scripts/deploy.sh old mode 100644 new mode 100755 index d1cc529..2ce11d8 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -1,7 +1,8 @@ #!/bin/bash -while getopts "M:D:T:A" flag; do +while getopts "SMDT:A" flag; do case "${flag}" in + S) sudoRequired=true ;; M) masterNode=true ;; D) downStack=true ;; T) swarmToken=$OPTARG ;; @@ -9,34 +10,36 @@ while getopts "M:D:T:A" flag; do esac done -echo "masterNode: $masterNode" -echo "downStack: $downStack" -echo "swarmToken: $swarmToken" -echo "managerAddr: $managerAddr" - -$scriptDir = $(readlink -f "$0") +scriptDir=$(dirname $(readlink -f "$0")) # echo $scriptDir # ===> /Project/scripts -$stackName="TheWebFarm" +stackName="TheWebFarm" + +dockerCmd="docker" +if [[ $sudoRequired ]]; then + dockerCmd="sudo docker" +fi if [[ $downStack ]]; then echo "[+] Removing stack..." - docker stack rm $stackName - docker service rm registry + echo "$dockerCmd stack rm $stackName" + $dockerCmd stack rm $stackName + $dockerCmd service rm registry sleep 20 - docker volume rm $(docker volume ls --filter name=$stackName -q) -elif ($MasterNode); then + $dockerCmd volume rm $($dockerCmd volume ls --filter name=$stackName -q) +elif ($masterNode); then echo "[+] swarm master" - + $dockerCmd swarm init + # data streaming cd $scriptDir/../preprocessing - docker service create --name registry -p 5000:5000 registry:2 - # docker build -t 127.0.0.1:5000/data-streamer:latest --no-cache --push -f Dockerfile.python . - docker build -t 127.0.0.1:5000/data-streamer:latest --push -f Dockerfile.python . + $dockerCmd service create --name registry -p 5000:5000 registry:2 + $dockerCmd build -t 127.0.0.1:5000/data-streamer:latest --no-cache --push -f Dockerfile.python . + # $dockerCmd build -t 127.0.0.1:5000/data-streamer:latest --push -f Dockerfile.python . # execute cd $scriptDir - docker stack deploy -d \ + $dockerCmd stack deploy -d \ -c ../preprocessing/docker-compose.yml \ -c ../clickhouse/docker-compose.yaml \ -c ../ui/docker-compose.yaml \ @@ -49,5 +52,5 @@ elif ($MasterNode); then else echo "[+] swarm follower" echo "[+] joining swarm with token $swarmToken" - docker swarm join --token $swarmToken $managerAddr + $dockerCmd swarm join --token $swarmToken $managerAddr fi diff --git a/ui/docker-compose.yaml b/ui/docker-compose.yaml index 3698694..7ac73c8 100644 --- a/ui/docker-compose.yaml +++ b/ui/docker-compose.yaml @@ -14,6 +14,9 @@ services: clickhouse-server-network: aliases: - grafana + deploy: + placement: + constraints: [node.labels.worker == true] depends_on: - clickhouse-server1 environment: