ufish stack, first commit.
parent
2ae36ce2b1
commit
070692d9f1
@ -1,2 +1,21 @@
|
||||
---
|
||||
# defaults file for ansible-role-template
|
||||
bc_ufish_compose_dir: '/srv/bc_ufish_stack'
|
||||
bc_ufish_docker_stack_name: 'bluecloud-ufish'
|
||||
bc_ufish_docker_service_server_name: 'bc-ufish-server'
|
||||
bc_ufish_docker_service_client_name: 'bc-ufish-client'
|
||||
bc_ufish_docker_server_image: 'tommasinopierfrancesco/ufish-server'
|
||||
bc_ufish_docker_client_image: 'tommasinopierfrancesco/ufish-client'
|
||||
bc_ufish_docker_network: 'bc_ufish_net'
|
||||
# IMPORTANT. Set it to True for the server that is going to host the DB
|
||||
bc_ufish_behind_haproxy: True
|
||||
bc_ufish_haproxy_public_net: 'haproxy-public'
|
||||
# DB
|
||||
bc_ufish_db_docker_host: 'localhost'
|
||||
bc_ufish_db_host: 'ufish-mysql'
|
||||
bc_ufish_db_port: 3306
|
||||
#bc_ufish_mysql_root_password: 'set it in a vault file'
|
||||
#bc_ufish_db_pwd: 'set it in a vault file'
|
||||
bc_ufish_db_name: 'bc_ufish'
|
||||
bc_ufish_db_user: 'bc_ufish_u'
|
||||
bc_ufish_db_volume: 'bc_ufish_db_data'
|
||||
bc_ufish_db_constraints: 'node.labels.ufish_db_data == bc_ufish'
|
||||
|
@ -1,2 +1,45 @@
|
||||
---
|
||||
# tasks file for ansible-role-template
|
||||
- name: Manage the installation of the uFish configuration of the swarm service
|
||||
block:
|
||||
- name: Add the label that will be used as a constraint for the uFish DB
|
||||
docker_node:
|
||||
hostname: '{{ bc_ufish_db_docker_host }}'
|
||||
labels:
|
||||
ufish_db_data: 'bc_ufish'
|
||||
labels_state: 'merge'
|
||||
|
||||
- name: Create the directory where the compose will be stored
|
||||
file:
|
||||
dest: '{{ bc_ufish_compose_dir }}'
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
|
||||
- name: Install the docker compose file of the ufish stack
|
||||
template:
|
||||
src: bluecloud-ufish-docker-compose.yml.j2
|
||||
dest: '{{ bc_ufish_compose_dir }}/docker-bluecloud-ufish-stack.yml'
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0400'
|
||||
|
||||
- name: Install the docker compose file for the ufish db server and for phpmyadmin
|
||||
template:
|
||||
src: bluecloud-ufish-db-docker-compose.yml.j2
|
||||
dest: '{{ bc_ufish_compose_dir }}/docker-bluecloud-ufish-stack-db.yml'
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0400'
|
||||
|
||||
- name: Start the uFish stack
|
||||
docker_stack:
|
||||
name: bluecloud-ufish
|
||||
state: present
|
||||
compose:
|
||||
- '{{ bc_ufish_compose_dir }}/docker-bluecloud-ufish-stack-db.yml'
|
||||
- '{{ bc_ufish_compose_dir }}/docker-bluecloud-ufish-stack.yml'
|
||||
|
||||
run_once: True
|
||||
when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool
|
||||
tags: [ 'bc_ufish', 'bc_ufish_swarm' ]
|
||||
|
@ -0,0 +1,51 @@
|
||||
version: "3.6"
|
||||
|
||||
networks:
|
||||
haproxy-public:
|
||||
external: true
|
||||
{{ bc_ufish_docker_network }}:
|
||||
|
||||
volumes:
|
||||
{{ bc_ufish_db_volume }}:
|
||||
|
||||
services:
|
||||
ufish-mysql:
|
||||
image: mysql:latest
|
||||
networks:
|
||||
- {{ bc_ufish_docker_network }}
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: {{ bc_ufish_mysql_root_password }}
|
||||
MYSQL_PORT: 3306
|
||||
MYSQL_PASSWORD: {{ bc_ufish_db_pwd }}
|
||||
MYSQL_USER: {{ bc_ufish_db_user }}
|
||||
MYSQL_DB: {{ bc_ufish_db_name }}
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == worker
|
||||
- {{ bc_ufish_db_constraints }}
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
max_attempts: 3
|
||||
window: 120s
|
||||
logging:
|
||||
driver: 'journald'
|
||||
ufish-phpmyadmin:
|
||||
image: phpmyadmin/phpmyadmin
|
||||
networks:
|
||||
- {{ bc_ufish_docker_network }}
|
||||
- haproxy-public
|
||||
environment:
|
||||
- PMA_HOST={{ bc_ufish_db_host }}
|
||||
deploy:
|
||||
placement:
|
||||
constraints:
|
||||
- node.role == worker
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
max_attempts: 3
|
||||
window: 120s
|
||||
logging:
|
||||
driver: 'journald'
|
@ -0,0 +1,59 @@
|
||||
version: '3.6'
|
||||
|
||||
networks:
|
||||
{% if bc_ufish_behind_haproxy %}
|
||||
haproxy-public:
|
||||
external: true
|
||||
{% endif %}
|
||||
{{ bc_ufish_docker_network }}:
|
||||
|
||||
volumes:
|
||||
{{ bc_ufish_db_volume }}:
|
||||
|
||||
services:
|
||||
{{ bc_ufish_docker_service_server_name }}:
|
||||
image: {{ bc_ufish_docker_server_image }}
|
||||
networks:
|
||||
- {{ bc_ufish_docker_network }}
|
||||
{% if bc_ufish_behind_haproxy %}
|
||||
- haproxy-public
|
||||
{% endif %}
|
||||
environment:
|
||||
MYSQL_HOST: {{ bc_ufish_db_host }}
|
||||
MYSQL_PORT: 3306
|
||||
MYSQL_PASSWORD: {{ bc_ufish_db_pwd }}
|
||||
MYSQL_USER: {{ bc_ufish_db_user }}
|
||||
MYSQL_DB: {{ bc_ufish_db_name }}
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
endpoint_mode: dnsrr
|
||||
placement:
|
||||
constraints: [node.role == worker]
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
max_attempts: 3
|
||||
window: 120s
|
||||
logging:
|
||||
driver: 'journald'
|
||||
{{ bc_ufish_docker_service_client_name }}:
|
||||
image: {{ bc_ufish_docker_client_image }}
|
||||
networks:
|
||||
- {{ bc_ufish_docker_network }}
|
||||
{% if bc_ufish_behind_haproxy %}
|
||||
- haproxy-public
|
||||
{% endif %}
|
||||
deploy:
|
||||
mode: replicated
|
||||
replicas: 1
|
||||
endpoint_mode: dnsrr
|
||||
placement:
|
||||
constraints: [node.role == worker]
|
||||
restart_policy:
|
||||
condition: on-failure
|
||||
delay: 5s
|
||||
max_attempts: 3
|
||||
window: 120s
|
||||
logging:
|
||||
driver: 'journald'
|
Loading…
Reference in New Issue