Browse Source

Further changes

dev
cs171027 5 years ago
parent
commit
532b501e70
  1. 3
      ansible.cfg
  2. 2
      ansible_provisioning.sh
  3. 2
      ansible_swarm_config.sh
  4. 4
      roles/lxc_swarm/tasks/Dockerfile.yml
  5. 1
      roles/lxc_swarm/tasks/lxc_nodes.yml
  6. 3
      roles/lxc_swarm/templates/Dockerfile.j2
  7. 5
      roles/lxc_swarm/templates/galera.cnf.j2
  8. 3
      roles/lxc_swarm/vars/main.yml
  9. 91
      stack.yaml
  10. 5
      stack.yml
  11. 93
      swarm-galera.yml

3
ansible.cfg

@ -1,5 +1,4 @@
[defaults] [defaults]
#added parameters for actual management of LXC nodes with ansible because of bridged #added parameters for actual management of LXC nodes with ansible because of bridged networking packet loss
#networking packet loss
gather_timeout = 30 gather_timeout = 30
timeout = 30 timeout = 30

2
ansible_provisioning.sh

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
[ `id -u` -ne 0 ] && exit 1 [ `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 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 stack.yml ansible-playbook -i inventory/hosts --skip-tags swarm --diff -v swarm-galera.yml

2
ansible_swarm_config.sh

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
[ `id -u` -ne 0 ] && exit 1 [ `id -u` -ne 0 ] && exit 1
ansible-playbook -i inventory/hosts --tags swarm --diff -v stack.yml ansible-playbook -i inventory/hosts --tags swarm --diff -v swarm-galera.yml

4
roles/lxc_swarm/tasks/Dockerfile.yml

@ -1,4 +1,7 @@
--- ---
- setup:
tags: galera
- name: Copy galera template - name: Copy galera template
template: template:
src: galera.cnf.j2 src: galera.cnf.j2
@ -7,6 +10,7 @@
group: root group: root
mode: '0644' mode: '0644'
remote_src: no remote_src: no
tags: galera
- name: Galera template fix - name: Galera template fix
shell: sed -i "s/ /,/g;s/ 1/1/g;s/ "/"/g" /opt/galera.cnf shell: sed -i "s/ /,/g;s/ 1/1/g;s/ "/"/g" /opt/galera.cnf

1
roles/lxc_swarm/tasks/lxc_nodes.yml

@ -48,4 +48,5 @@
rule: allow rule: allow
interface: lxcbr0 interface: lxcbr0
direction: in direction: in
from_ip: "10.0.3.0/24"
when: inventory_hostname in groups['manager'] when: inventory_hostname in groups['manager']

3
roles/lxc_swarm/templates/Dockerfile.j2

@ -6,5 +6,6 @@ RUN add-apt-repository "deb [arch=amd64,arm64,i386,ppc64el] http://mirrors.corei
RUN apt-get update RUN apt-get update
RUN apt install -y rsync mariadb-server-10.4 galera-4 mariadb-client-10.4 RUN apt install -y rsync mariadb-server-10.4 galera-4 mariadb-client-10.4
RUN systemctl unmask mariadb RUN systemctl unmask mariadb
COPY /galera.cnf /etc/mysql/conf.d/galera.cnf COPY /opt/galera.cnf /etc/mysql/conf.d/galera.cnf
RUN echo "wsrep_node_address=`ip a s eth0|grep inet|head -1|awk '{print $2}'|cut -d "/" -f 1`" >> /etc/mysql/conf.d/galera.cnf
ENTRYPOINT ["mysqld","{{ extra_docker_options }}"] ENTRYPOINT ["mysqld","{{ extra_docker_options }}"]

5
roles/lxc_swarm/templates/galera.cnf.j2

@ -16,5 +16,6 @@ wsrep_cluster_address="gcomm://{% for host in groups['workers'] %} {{hostvars[ho
wsrep_sst_method=rsync wsrep_sst_method=rsync
# Galera Node Configuration # Galera Node Configuration
wsrep_node_address="{{ ansible_default_ipv4.address }}" #wsrep_node_address="{{ ansible_default_ipv4.address }}"
wsrep_node_name="{{ ansible_hostname }}" #wsrep_node_name="{{ ansible_hostname }}"
wsrep_node_name="{{ nodes[0] if ansible_hostname in groups['workers'][0] else nodes[1] }}"

3
roles/lxc_swarm/vars/main.yml

@ -4,3 +4,6 @@ workers:
- "10.0.3.100" - "10.0.3.100"
- "10.0.3.101" - "10.0.3.101"
# - "10.0.3.102" # - "10.0.3.102"
nodes:
- "node1"
- "node2"

91
stack.yaml

@ -0,0 +1,91 @@
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
volumes:
- /var/container_data/mysql:/var/lib/mysql
networks:
galera_net:
deploy:
replicas: 1
restart_policy:
delay: 10s
max_attempts: 10
window: 60s
placement:
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
hostname: node2
volumes:
- /var/container_data/mysql:/var/lib/mysql
networks:
galera_net:
deploy:
replicas: 1
restart_policy:
delay: 10s
max_attempts: 10
window: 60s
placement:
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:

5
stack.yml

@ -1,5 +0,0 @@
---
- hosts: all
gather_facts: no
roles:
- lxc_swarm

93
swarm-galera.yml

@ -1,88 +1,5 @@
version: '3.2' ---
- hosts: all
services: gather_facts: no
roles:
db_cluster_node1: - lxc_swarm
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}}
volumes:
- /var/container_data/mysql:/var/lib/mysql
networks:
galera_net:
deploy:
replicas: 1
restart_policy:
delay: 10s
max_attempts: 10
window: 60s
placement:
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
volumes:
- /var/container_data/mysql:/var/lib/mysql
networks:
galera_net:
deploy:
replicas: 1
restart_policy:
delay: 10s
max_attempts: 10
window: 60s
placement:
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:

Loading…
Cancel
Save