Browse Source

Swarmlab

dev
root 4 years ago
parent
commit
01e1f0aa94
  1. 109
      stack.yaml
  2. 13
      swarmlab/Makefile
  3. 5
      swarmlab/ansible.cfg
  4. 5
      swarmlab/ansible_install.sh
  5. 4
      swarmlab/ansible_provisioning.sh
  6. 3
      swarmlab/ansible_swarm_config.sh

109
stack.yaml

@ -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:

13
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

5
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

5
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

4
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

3
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
Loading…
Cancel
Save