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,46 +1,28 @@
|
|||||||
galaxy_info:
|
galaxy_info:
|
||||||
author: your name
|
author: Andrea Dell'Amico
|
||||||
description: your description
|
description: Systems Architect
|
||||||
company: your company (optional)
|
company: ISTI-CNR
|
||||||
|
|
||||||
# If the issue tracker for your role is not on github, uncomment the
|
issue_tracker_url: https://support.d4science.org/projects/d4science-operation
|
||||||
# next line and provide a value
|
|
||||||
issue_tracker_url: https://support.d4science.org/projects/automatic-provisioning/issues
|
|
||||||
|
|
||||||
license: EUPL-1.2
|
license: EUPL 1.2+
|
||||||
|
|
||||||
min_ansible_version: 2.8
|
min_ansible_version: 2.8
|
||||||
|
|
||||||
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
|
||||||
# min_ansible_container_version:
|
|
||||||
|
|
||||||
# Optionally specify the branch Galaxy will use when accessing the GitHub
|
|
||||||
# repo for this role. During role install, if no tags are available,
|
|
||||||
# Galaxy will use this branch. During import Galaxy will access files on
|
|
||||||
# this branch. If Travis integration is configured, only notifications for this
|
|
||||||
# branch will be accepted. Otherwise, in all cases, the repo's default branch
|
|
||||||
# (usually master) will be used.
|
|
||||||
#github_branch:
|
|
||||||
|
|
||||||
#
|
|
||||||
# Provide a list of supported platforms, and for each platform a list of versions.
|
|
||||||
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
|
|
||||||
# To view available platforms and versions (or releases), visit:
|
# To view available platforms and versions (or releases), visit:
|
||||||
# https://galaxy.ansible.com/api/v1/platforms/
|
# https://galaxy.ansible.com/api/v1/platforms/
|
||||||
#
|
#
|
||||||
platforms:
|
platforms:
|
||||||
- name: Ubuntu
|
- name: Ubuntu
|
||||||
versions:
|
versions:
|
||||||
- bionic
|
- bionic
|
||||||
|
- name: EL
|
||||||
|
versions:
|
||||||
|
- 7
|
||||||
|
|
||||||
galaxy_tags: []
|
galaxy_tags:
|
||||||
# List tags for your role here, one per line. A tag is a keyword that describes
|
- mei-generator
|
||||||
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
- bluecloud
|
||||||
# remove the '[]' above, if you add tags to this list.
|
|
||||||
#
|
|
||||||
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
|
||||||
# Maximum 20 tags per role.
|
|
||||||
|
|
||||||
dependencies: []
|
dependencies: []
|
||||||
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
|
|
||||||
# if you add dependencies to this list.
|
|
||||||
|
@ -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