mirror of
https://github.com/ansible/awx.git
synced 2026-02-01 09:38:10 -03:30
Initial Docker Compose workflow for Tower cluster
The goal is to share a common pattern with the existing development work
This commit is contained in:
59
tools/docker-compose-cluster.yml
Normal file
59
tools/docker-compose-cluster.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
version: '2'
|
||||
services:
|
||||
haproxy:
|
||||
build:
|
||||
context: ./docker-compose
|
||||
dockerfile: Dockerfile-haproxy
|
||||
depends_on:
|
||||
- "tower_1"
|
||||
- "tower_2"
|
||||
- "tower_3"
|
||||
ports:
|
||||
- "8013:8013"
|
||||
- "1936:1936"
|
||||
tower_1:
|
||||
image: gcr.io/ansible-tower-engineering/tower_devel:${TAG}
|
||||
environment:
|
||||
RABBITMQ_HOST: rabbitmq_1
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASS: guest
|
||||
RABBITMQ_VHOST: /
|
||||
volumes:
|
||||
- "../:/tower_devel"
|
||||
tower_2:
|
||||
image: gcr.io/ansible-tower-engineering/tower_devel:${TAG}
|
||||
environment:
|
||||
RABBITMQ_HOST: rabbitmq_2
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASS: guest
|
||||
RABBITMQ_VHOST: /
|
||||
volumes:
|
||||
- "../:/tower_devel"
|
||||
tower_3:
|
||||
image: gcr.io/ansible-tower-engineering/tower_devel:${TAG}
|
||||
environment:
|
||||
RABBITMQ_HOST: rabbitmq_3
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASS: guest
|
||||
RABBITMQ_VHOST: /
|
||||
volumes:
|
||||
- "../:/tower_devel"
|
||||
rabbitmq_1:
|
||||
image: gcr.io/ansible-tower-engineering/rabbit_cluster_node:latest
|
||||
hostname: rabbitmq_1
|
||||
rabbitmq_2:
|
||||
image: gcr.io/ansible-tower-engineering/rabbit_cluster_node:latest
|
||||
hostname: rabbitmq_2
|
||||
environment:
|
||||
- CLUSTERED=true
|
||||
- CLUSTER_WITH=rabbitmq_1
|
||||
rabbitmq_3:
|
||||
image: gcr.io/ansible-tower-engineering/rabbit_cluster_node:latest
|
||||
hostname: rabbitmq_3
|
||||
environment:
|
||||
- CLUSTERED=true
|
||||
- CLUSTER_WITH=rabbitmq_1
|
||||
postgres:
|
||||
image: postgres:9.4.1
|
||||
memcached:
|
||||
image: memcached:alpine
|
||||
@@ -3,6 +3,11 @@ services:
|
||||
# Primary Tower Development Container
|
||||
tower:
|
||||
image: gcr.io/ansible-tower-engineering/tower_devel:${TAG}
|
||||
environment:
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASS: guest
|
||||
RABBITMQ_VHOST: tower
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "8013:8013"
|
||||
|
||||
2
tools/docker-compose/Dockerfile-haproxy
Normal file
2
tools/docker-compose/Dockerfile-haproxy
Normal file
@@ -0,0 +1,2 @@
|
||||
FROM haproxy:1.6-alpine
|
||||
COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
|
||||
36
tools/docker-compose/haproxy.cfg
Normal file
36
tools/docker-compose/haproxy.cfg
Normal file
@@ -0,0 +1,36 @@
|
||||
global
|
||||
debug
|
||||
stats socket /tmp/admin.sock
|
||||
stats timeout 30s
|
||||
|
||||
defaults
|
||||
log global
|
||||
mode http
|
||||
option httplog
|
||||
option dontlognull
|
||||
timeout connect 5000
|
||||
timeout client 50000
|
||||
timeout server 50000
|
||||
|
||||
frontend localnodes
|
||||
bind *:8013
|
||||
mode http
|
||||
default_backend nodes
|
||||
|
||||
backend nodes
|
||||
mode http
|
||||
balance roundrobin
|
||||
option forwardfor
|
||||
option http-pretend-keepalive
|
||||
http-request set-header X-Forwarded-Port %[dst_port]
|
||||
http-request add-header X-Forwarded-Proto https if { ssl_fc }
|
||||
option httpchk HEAD / HTTP/1.1\r\nHost:localhost
|
||||
server tower_1 tower_1:8013 check
|
||||
server tower_2 tower_2:8013 check
|
||||
server tower_3 tower_3:8013 check
|
||||
|
||||
listen stats
|
||||
bind *:1936
|
||||
stats enable
|
||||
stats uri /
|
||||
|
||||
Reference in New Issue
Block a user