· 7 years ago · Mar 08, 2018, 02:10 AM
1---
2- name: Activate postgres container
3 docker_container:
4 name: postgres
5 state: started
6 restart_policy: unless-stopped
7 image: postgres:9.6
8 volumes:
9 - "{{ postgres_data_dir }}:/var/lib/postgresql/data:Z"
10 env:
11 POSTGRES_USER: "{{ pg_username }}"
12 POSTGRES_PASSWORD: "{{ pg_password }}"
13 POSTGRES_DB: "{{ pg_database }}"
14 PGDATA: "/var/lib/postgresql/data/pgdata"
15 when: pg_hostname is not defined or pg_hostname == ''
16 register: postgres_container_activate
17
18- name: Activate rabbitmq container
19 docker_container:
20 name: rabbitmq
21 state: started
22 restart_policy: unless-stopped
23 image: rabbitmq:3
24 env:
25 RABBITMQ_DEFAULT_VHOST: "awx"
26 register: rabbitmq_container_activate
27
28- name: Activate memcached container
29 docker_container:
30 name: memcached
31 state: started
32 restart_policy: unless-stopped
33 image: memcached:alpine
34
35- name: Wait for postgres and rabbitmq to activate
36 pause:
37 seconds: 15
38 when: postgres_container_activate.changed or rabbitmq_container_activate.changed
39
40- name: Set properties without postgres for awx_web
41 set_fact:
42 pg_hostname_actual: "{{ pg_hostname }}"
43 awx_web_container_links:
44 - rabbitmq
45 - memcached
46 when: pg_hostname is defined
47
48- name: Set properties with postgres for awx_web
49 set_fact:
50 pg_hostname_actual: postgres
51 awx_web_container_links:
52 - rabbitmq
53 - memcached
54 - postgres
55 when: pg_hostname is not defined or pg_hostname == ''
56
57- name: Set properties without postgres for awx_task
58 set_fact:
59 pg_hostname_actual: "{{ pg_hostname }}"
60 awx_task_container_links:
61 - rabbitmq
62 - memcached
63 - awx_web:awxweb
64 when: pg_hostname is defined
65
66- name: Set properties with postgres for awx_task
67 set_fact:
68 pg_hostname_actual: postgres
69 awx_task_container_links:
70 - rabbitmq
71 - memcached
72 - awx_web:awxweb
73 - postgres
74 when: pg_hostname is not defined or pg_hostname == ''
75
76- name: Activate AWX Web Container
77 docker_container:
78 name: awx_web
79 state: started
80 restart_policy: unless-stopped
81 image: "{{ awx_web_docker_actual_image }}"
82 volumes: "{{ project_data_dir + ':/var/lib/awx/projects:rw' if project_data_dir is defined else omit }}"
83 user: root
84 ports:
85 - "{{ host_port }}:8052"
86 links: "{{ awx_web_container_links|list }}"
87 hostname: awxweb
88 dns_search_domains: "{{ awx_container_search_domains.split(',') if awx_container_search_domains is defined else omit }}"
89 dns_servers: "{{ awx_alternate_dns_servers.split(',') if awx_alternate_dns_servers is defined else omit }}"
90 env:
91 http_proxy: "{{ http_proxy | default('') }}"
92 https_proxy: "{{ https_proxy | default('') }}"
93 no_proxy: "{{ no_proxy | default('') }}"
94 SECRET_KEY: "{{ awx_secret_key }}"
95 DATABASE_NAME: "{{ pg_database }}"
96 DATABASE_USER: "{{ pg_username }}"
97 DATABASE_PASSWORD: "{{ pg_password }}"
98 DATABASE_PORT: "{{ pg_port }}"
99 DATABASE_HOST: "{{ pg_hostname_actual }}"
100 RABBITMQ_USER: "guest"
101 RABBITMQ_PASSWORD: "guest"
102 RABBITMQ_HOST: "rabbitmq"
103 RABBITMQ_PORT: "5672"
104 RABBITMQ_VHOST: "awx"
105 MEMCACHED_HOST: "memcached"
106 MEMCACHED_PORT: "11211"
107 AWX_ADMIN_USER: "{{ default_admin_user|default('admin') }}"
108 AWX_ADMIN_PASSWORD: "{{ default_admin_password|default('password') }}"
109
110- name: Activate AWX Task Containers
111 docker_container:
112 name: "{% if awx_instances is defined and awx_instances > 1 %}awx_task_{{ item }}{% else %}awx_task{% endif %}"
113 state: started
114 restart_policy: unless-stopped
115 image: "{{ awx_task_docker_actual_image }}"
116 volumes: "{{ project_data_dir + ':/var/lib/awx/projects:rw' if project_data_dir is defined else omit }}"
117 links: "{{ awx_task_container_links|list }}"
118 user: root
119 hostname: "{% if awx_instances is defined and awx_instances > 1 %}awx_task_{{ item }}{% else %}awx_task{% endif %}"
120 dns_search_domains: "{{ awx_container_search_domains.split(',') if awx_container_search_domains is defined else omit }}"
121 dns_servers: "{{ awx_alternate_dns_servers.split(',') if awx_alternate_dns_servers is defined else omit }}"
122 env:
123 http_proxy: "{{ http_proxy | default('') }}"
124 https_proxy: "{{ https_proxy | default('') }}"
125 no_proxy: "{{ no_proxy | default('') }}"
126 SECRET_KEY: "{{ awx_secret_key }}"
127 DATABASE_NAME: "{{ pg_database }}"
128 DATABASE_USER: "{{ pg_username }}"
129 DATABASE_PASSWORD: "{{ pg_password }}"
130 DATABASE_HOST: "{{ pg_hostname_actual }}"
131 DATABASE_PORT: "{{ pg_port }}"
132 RABBITMQ_USER: "guest"
133 RABBITMQ_PASSWORD: "guest"
134 RABBITMQ_HOST: "rabbitmq"
135 RABBITMQ_PORT: "5672"
136 RABBITMQ_VHOST: "awx"
137 MEMCACHED_HOST: "memcached"
138 MEMCACHED_PORT: "11211"
139 AWX_ADMIN_USER: "{{ default_admin_user|default('admin') }}"
140 AWX_ADMIN_PASSWORD: "{{ default_admin_password|default('password') }}"
141 with_sequence: count="{% if awx_instances is defined %}{{ awx_instances }}{% else %}1{% endif %}"
142 register: awx_task_containers
143 loop_control:
144 pause: 240