From 01e1f0aa94e22f01e4fefce7478f000d4e119aed Mon Sep 17 00:00:00 2001 From: root Date: Fri, 12 Jun 2020 23:03:46 +0000 Subject: [PATCH] Swarmlab --- stack.yaml | 109 ------------------------------- swarmlab/Makefile | 13 ++++ swarmlab/ansible.cfg | 5 ++ swarmlab/ansible_install.sh | 5 ++ swarmlab/ansible_provisioning.sh | 4 ++ swarmlab/ansible_swarm_config.sh | 3 + 6 files changed, 30 insertions(+), 109 deletions(-) delete mode 100644 stack.yaml create mode 100644 swarmlab/Makefile create mode 100644 swarmlab/ansible.cfg create mode 100755 swarmlab/ansible_install.sh create mode 100755 swarmlab/ansible_provisioning.sh create mode 100755 swarmlab/ansible_swarm_config.sh diff --git a/stack.yaml b/stack.yaml deleted file mode 100644 index 8ca6111..0000000 --- a/stack.yaml +++ /dev/null @@ -1,109 +0,0 @@ -version: '3.2' - -services: - - db_cluster_node1: - - image: ubuntu:galera-node-worker1 - -# environment: -# - NODENAME={{.Node.Hostname}} -# - NODEID={{.Node.ID}} -# - SERVICEID={{.Service.ID}} -# - SERVICENAME={{.Service.Name}} -# - TASKID={{.Task.ID}} -# - TASKNAME={{.Task.Name}} -# - TASKREPID={{.Task.Slot}} - - hostname: node1 - - # Storage volume - volumes: - - - /var/container_data/mysql:/var/lib/mysql - - networks: - galera_net: - ipv4_address: 10.0.3.10 - deploy: - # Replicated mode - mode: replicated - replicas: 1 - restart_policy: - delay: 10s - max_attempts: 10 - window: 60s - placement: - # Services must run only on workers with one service per container - constraints: - - node.labels.node1 == true - - node.role == worker - #- node.group == galera - ports: - - mode: host - # target: 3306 - # published: 3306 - target: 4567 - published: 4567 - # target: 4568 - # published: 4568 - # target: 4568 - # published: 4568 - - #- "10.0.3.100:3306:3306" - #- "10.0.3.100:4567:4567" - #- "10.0.3.100:4568:4568" - #- "10.0.3.100:4444:4444" - - db_cluster_node2: - - image: ubuntu:galera-node-worker2 - -# environment: -# - NODENAME={{.Node.Hostname}} -# - NODEID={{.Node.ID}} -# - SERVICEID={{.Service.ID}} -# - SERVICENAME={{.Service.Name}} -# - TASKID={{.Task.ID}} -# - TASKNAME={{.Task.Name}} -# - TASKREPID={{.Task.Slot}} - - hostname: node2 - - # Storage volume - volumes: - - - /var/container_data/mysql:/var/lib/mysql - - networks: - galera_net: - ipv4_address: 10.0.3.11 - deploy: - # Replicated mode - mode: replicated - replicas: 1 - restart_policy: - delay: 10s - max_attempts: 10 - window: 60s - placement: - # Services must run only on workers with one service per container - constraints: - - node.labels.node2 == true - - node.role == worker -# - node.group == galera - depends_on: - - db_cluster_node1 - ports: - - mode: host - target: 4567 - published: 4567 -# - "10.0.3.101:3306:3306" -# - "10.0.3.101:4567:4567" -# - "10.0.3.101:4568:4568" -# - "10.0.3.101:4444:4444" - - -networks: - galera_net: - diff --git a/swarmlab/Makefile b/swarmlab/Makefile new file mode 100644 index 0000000..c983726 --- /dev/null +++ b/swarmlab/Makefile @@ -0,0 +1,13 @@ +all: preautomation provision swarm_deploy + +preautomation: + /bin/bash ./ansible_install.sh + +provision: + /bin/bash ./ansible_provisioning.sh + +swarm_deploy: + /bin/bash ./ansible_swarm_config.sh + +clean: + /bin/bash ./clean.sh diff --git a/swarmlab/ansible.cfg b/swarmlab/ansible.cfg new file mode 100644 index 0000000..0a455bc --- /dev/null +++ b/swarmlab/ansible.cfg @@ -0,0 +1,5 @@ +[defaults] +#added parameters for actual management of LXC nodes with ansible because of bridged networking packet loss +gather_timeout = 30 +timeout = 45 +host_key_checking = False diff --git a/swarmlab/ansible_install.sh b/swarmlab/ansible_install.sh new file mode 100755 index 0000000..0d29e62 --- /dev/null +++ b/swarmlab/ansible_install.sh @@ -0,0 +1,5 @@ +#!/bin/bash +[ `id -u` -ne 0 ] && exit 1 +echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" >> /etc/apt/sources.list +apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367 +apt update && apt install -y ansible diff --git a/swarmlab/ansible_provisioning.sh b/swarmlab/ansible_provisioning.sh new file mode 100755 index 0000000..44c33c0 --- /dev/null +++ b/swarmlab/ansible_provisioning.sh @@ -0,0 +1,4 @@ +#!/bin/bash +[ `id -u` -ne 0 ] && exit 1 +test -f /root/.ssh/id_rsa.pub || ssh-keygen -t rsa -b 4096 -N '' -f /root/.ssh/id_rsa +ansible-playbook -i inventory/hosts --skip-tags swarm --diff -v swarm-galera.yml diff --git a/swarmlab/ansible_swarm_config.sh b/swarmlab/ansible_swarm_config.sh new file mode 100755 index 0000000..c39509c --- /dev/null +++ b/swarmlab/ansible_swarm_config.sh @@ -0,0 +1,3 @@ +#!/bin/bash +[ `id -u` -ne 0 ] && exit 1 +ansible-playbook -i inventory/hosts --tags swarm --diff -v swarm-galera.yml