mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 09:27:36 -02:30
Move installer roles into roles directory
Signed-off-by: Shane McDonald <me@shanemcd.com>
This commit is contained in:
14
installer/roles/local_docker/tasks/compose.yml
Normal file
14
installer/roles/local_docker/tasks/compose.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
- name: Create {{ docker_compose_dir }} directory
|
||||
file:
|
||||
path: "{{ docker_compose_dir }}"
|
||||
state: directory
|
||||
|
||||
- name: Create docker-compose.yml file
|
||||
template:
|
||||
src: docker-compose.yml.j2
|
||||
dest: "{{ docker_compose_dir }}/docker-compose.yml"
|
||||
|
||||
- name: Start the containers
|
||||
docker_service:
|
||||
project_src: "{{ docker_compose_dir }}"
|
||||
7
installer/roles/local_docker/tasks/main.yml
Normal file
7
installer/roles/local_docker/tasks/main.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
- import_tasks: set_image.yml
|
||||
|
||||
- import_tasks: standalone.yml
|
||||
when: not (use_docker_compose | default(False) | bool)
|
||||
|
||||
- import_tasks: compose.yml
|
||||
when: use_docker_compose | default(False) | bool
|
||||
83
installer/roles/local_docker/tasks/set_image.yml
Normal file
83
installer/roles/local_docker/tasks/set_image.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
---
|
||||
- name: Manage AWX Container Images
|
||||
block:
|
||||
- name: Export Docker web image if it isnt local and there isnt a registry defined
|
||||
docker_image:
|
||||
name: "{{ awx_web_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
archive_path: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_web_image }}_{{ awx_version }}.tar"
|
||||
when: inventory_hostname != "localhost" and docker_registry is not defined
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Export Docker task image if it isnt local and there isnt a registry defined
|
||||
docker_image:
|
||||
name: "{{ awx_task_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
archive_path: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_task_image }}_{{ awx_version }}.tar"
|
||||
when: inventory_hostname != "localhost" and docker_registry is not defined
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Authenticate with Docker registry if registry password given
|
||||
docker_login:
|
||||
registry: "{{ docker_registry }}"
|
||||
username: "{{ docker_registry_username }}"
|
||||
password: "{{ docker_registry_password }}"
|
||||
reauthorize: yes
|
||||
when: docker_registry is defined and docker_registry_password is defined
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Set docker base path
|
||||
set_fact:
|
||||
docker_deploy_base_path: "{{ awx_base_path|default('/tmp') }}/docker_deploy"
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- name: Ensure directory exists
|
||||
file:
|
||||
path: "{{ docker_deploy_base_path }}"
|
||||
state: directory
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- name: Copy web image to docker execution
|
||||
copy:
|
||||
src: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_web_image }}_{{ awx_version }}.tar"
|
||||
dest: "{{ docker_deploy_base_path }}/{{ awx_web_image }}_{{ awx_version }}.tar"
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- name: Copy task image to docker execution
|
||||
copy:
|
||||
src: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_task_image }}_{{ awx_version }}.tar"
|
||||
dest: "{{ docker_deploy_base_path }}"
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- name: Load web image
|
||||
docker_image:
|
||||
name: "{{ awx_web_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
load_path: "{{ docker_deploy_base_path }}/{{ awx_web_image }}_{{ awx_version }}.tar"
|
||||
timeout: 300
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- name: Load task image
|
||||
docker_image:
|
||||
name: "{{ awx_task_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
load_path: "{{ docker_deploy_base_path }}/{{ awx_task_image }}_{{ awx_version }}.tar"
|
||||
timeout: 300
|
||||
when: ansible_connection != "local" and docker_registry is not defined
|
||||
|
||||
- include_role:
|
||||
name: image_push
|
||||
when: docker_registry is defined and dockerhub_base is not defined
|
||||
|
||||
- name: Set full image path for local install
|
||||
set_fact:
|
||||
awx_web_docker_actual_image: "{{ awx_web_image }}:{{ awx_version }}"
|
||||
awx_task_docker_actual_image: "{{ awx_task_image }}:{{ awx_version }}"
|
||||
when: docker_registry is not defined
|
||||
when: dockerhub_base is not defined
|
||||
|
||||
- name: Set DockerHub Image Paths
|
||||
set_fact:
|
||||
awx_web_docker_actual_image: "{{ dockerhub_base }}/awx_web:{{ dockerhub_version }}"
|
||||
awx_task_docker_actual_image: "{{ dockerhub_base }}/awx_task:{{ dockerhub_version }}"
|
||||
when: dockerhub_base is defined
|
||||
148
installer/roles/local_docker/tasks/standalone.yml
Normal file
148
installer/roles/local_docker/tasks/standalone.yml
Normal file
@@ -0,0 +1,148 @@
|
||||
---
|
||||
- name: Activate postgres container
|
||||
docker_container:
|
||||
name: postgres
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
image: postgres:9.6
|
||||
volumes:
|
||||
- "{{ postgres_data_dir }}:/var/lib/postgresql/data:Z"
|
||||
env:
|
||||
POSTGRES_USER: "{{ pg_username }}"
|
||||
POSTGRES_PASSWORD: "{{ pg_password }}"
|
||||
POSTGRES_DB: "{{ pg_database }}"
|
||||
PGDATA: "/var/lib/postgresql/data/pgdata"
|
||||
when: pg_hostname is not defined or pg_hostname == ''
|
||||
register: postgres_container_activate
|
||||
|
||||
- name: Activate rabbitmq container
|
||||
docker_container:
|
||||
name: rabbitmq
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
image: rabbitmq:3
|
||||
env:
|
||||
RABBITMQ_DEFAULT_VHOST: "awx"
|
||||
register: rabbitmq_container_activate
|
||||
|
||||
- name: Activate memcached container
|
||||
docker_container:
|
||||
name: memcached
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
image: memcached:alpine
|
||||
|
||||
- name: Wait for postgres and rabbitmq to activate
|
||||
pause:
|
||||
seconds: 15
|
||||
when: postgres_container_activate.changed or rabbitmq_container_activate.changed
|
||||
|
||||
- name: Set properties without postgres for awx_web
|
||||
set_fact:
|
||||
pg_hostname_actual: "{{ pg_hostname }}"
|
||||
awx_web_container_links:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
when: pg_hostname is defined
|
||||
|
||||
- name: Set properties with postgres for awx_web
|
||||
set_fact:
|
||||
pg_hostname_actual: postgres
|
||||
awx_web_container_links:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
- postgres
|
||||
when: pg_hostname is not defined or pg_hostname == ''
|
||||
|
||||
- name: Set properties without postgres for awx_task
|
||||
set_fact:
|
||||
pg_hostname_actual: "{{ pg_hostname }}"
|
||||
awx_task_container_links:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
- awx_web:awxweb
|
||||
when: pg_hostname is defined
|
||||
|
||||
- name: Set properties with postgres for awx_task
|
||||
set_fact:
|
||||
pg_hostname_actual: postgres
|
||||
awx_task_container_links:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
- awx_web:awxweb
|
||||
- postgres
|
||||
when: pg_hostname is not defined or pg_hostname == ''
|
||||
|
||||
- name: Activate AWX Web Container
|
||||
docker_container:
|
||||
name: awx_web
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
image: "{{ awx_web_docker_actual_image }}"
|
||||
volumes: >
|
||||
{{
|
||||
[project_data_dir + ':/var/lib/awx/projects:rw'] if project_data_dir is defined else []
|
||||
+ [ca_trust_dir + ':/etc/pki/ca-trust:ro'] if ca_trust_dir is defined else []
|
||||
}}
|
||||
user: root
|
||||
ports:
|
||||
- "{{ host_port }}:8052"
|
||||
links: "{{ awx_web_container_links|list }}"
|
||||
hostname: awxweb
|
||||
dns_search_domains: "{{ awx_container_search_domains.split(',') if awx_container_search_domains is defined else omit }}"
|
||||
dns_servers: "{{ awx_alternate_dns_servers.split(',') if awx_alternate_dns_servers is defined else omit }}"
|
||||
env:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
SECRET_KEY: "{{ awx_secret_key }}"
|
||||
DATABASE_NAME: "{{ pg_database }}"
|
||||
DATABASE_USER: "{{ pg_username }}"
|
||||
DATABASE_PASSWORD: "{{ pg_password }}"
|
||||
DATABASE_PORT: "{{ pg_port }}"
|
||||
DATABASE_HOST: "{{ pg_hostname_actual }}"
|
||||
RABBITMQ_USER: "guest"
|
||||
RABBITMQ_PASSWORD: "guest"
|
||||
RABBITMQ_HOST: "rabbitmq"
|
||||
RABBITMQ_PORT: "5672"
|
||||
RABBITMQ_VHOST: "awx"
|
||||
MEMCACHED_HOST: "memcached"
|
||||
MEMCACHED_PORT: "11211"
|
||||
AWX_ADMIN_USER: "{{ default_admin_user|default('admin') }}"
|
||||
AWX_ADMIN_PASSWORD: "{{ default_admin_password|default('password') }}"
|
||||
|
||||
- name: Activate AWX Task Container
|
||||
docker_container:
|
||||
name: awx_task
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
image: "{{ awx_task_docker_actual_image }}"
|
||||
volumes: >
|
||||
{{
|
||||
[project_data_dir + ':/var/lib/awx/projects:rw'] if project_data_dir is defined else []
|
||||
+ [ca_trust_dir + ':/etc/pki/ca-trust:ro'] if ca_trust_dir is defined else []
|
||||
}}
|
||||
links: "{{ awx_task_container_links|list }}"
|
||||
user: root
|
||||
hostname: awx
|
||||
dns_search_domains: "{{ awx_container_search_domains.split(',') if awx_container_search_domains is defined else omit }}"
|
||||
dns_servers: "{{ awx_alternate_dns_servers.split(',') if awx_alternate_dns_servers is defined else omit }}"
|
||||
env:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
SECRET_KEY: "{{ awx_secret_key }}"
|
||||
DATABASE_NAME: "{{ pg_database }}"
|
||||
DATABASE_USER: "{{ pg_username }}"
|
||||
DATABASE_PASSWORD: "{{ pg_password }}"
|
||||
DATABASE_HOST: "{{ pg_hostname_actual }}"
|
||||
DATABASE_PORT: "{{ pg_port }}"
|
||||
RABBITMQ_USER: "guest"
|
||||
RABBITMQ_PASSWORD: "guest"
|
||||
RABBITMQ_HOST: "rabbitmq"
|
||||
RABBITMQ_PORT: "5672"
|
||||
RABBITMQ_VHOST: "awx"
|
||||
MEMCACHED_HOST: "memcached"
|
||||
MEMCACHED_PORT: "11211"
|
||||
AWX_ADMIN_USER: "{{ default_admin_user|default('admin') }}"
|
||||
AWX_ADMIN_PASSWORD: "{{ default_admin_password|default('password') }}"
|
||||
145
installer/roles/local_docker/templates/docker-compose.yml.j2
Normal file
145
installer/roles/local_docker/templates/docker-compose.yml.j2
Normal file
@@ -0,0 +1,145 @@
|
||||
#jinja2: lstrip_blocks: True
|
||||
version: '2'
|
||||
services:
|
||||
|
||||
web:
|
||||
image: {{ awx_web_docker_actual_image }}
|
||||
depends_on:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
{% if pg_hostname is not defined %}
|
||||
- postgres
|
||||
{% endif %}
|
||||
ports:
|
||||
- "{{ host_port }}:8052"
|
||||
hostname: awxweb
|
||||
user: root
|
||||
restart: unless-stopped
|
||||
{% if (project_data_dir is defined) or (ca_trust_dir is defined) %}
|
||||
volumes:
|
||||
{% endif %}
|
||||
{% if project_data_dir is defined %}
|
||||
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
|
||||
{% endif %}
|
||||
{% if ca_trust_dir is defined %}
|
||||
- "{{ ca_trust_dir +':/etc/pki/ca-trust:ro' }}"
|
||||
{% endif %}
|
||||
{% if (awx_container_search_domains is defined) and (',' in awx_container_search_domains) %}
|
||||
{% set awx_container_search_domains_list = awx_container_search_domains.split(',') %}
|
||||
dns_search:
|
||||
{% for awx_container_search_domain in awx_container_search_domains_list %}
|
||||
- {{ awx_container_search_domain }}
|
||||
{% endfor %}
|
||||
{% elif awx_container_search_domains is defined %}
|
||||
dns_search: "{{ awx_container_search_domains }}"
|
||||
{% endif %}
|
||||
{% if (awx_alternate_dns_servers is defined) and (',' in awx_alternate_dns_servers) %}
|
||||
{% set awx_alternate_dns_servers_list = awx_alternate_dns_servers.split(',') %}
|
||||
dns:
|
||||
{% for awx_alternate_dns_server in awx_alternate_dns_servers_list %}
|
||||
- {{ awx_alternate_dns_server }}
|
||||
{% endfor %}
|
||||
{% elif awx_alternate_dns_servers is defined -%}
|
||||
dns: "{{ awx_alternate_dns_servers }}"
|
||||
{% endif %}
|
||||
environment:
|
||||
http_proxy: {{ http_proxy | default('') }}
|
||||
https_proxy: {{ https_proxy | default('') }}
|
||||
no_proxy: {{ no_proxy | default('') }}
|
||||
SECRET_KEY: {{ awx_secret_key }}
|
||||
DATABASE_NAME: {{ pg_database }}
|
||||
DATABASE_USER: {{ pg_username }}
|
||||
DATABASE_PASSWORD: {{ pg_password }}
|
||||
DATABASE_PORT: {{ pg_port }}
|
||||
DATABASE_HOST: {{ pg_hostname|default("postgres") }}
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASSWORD: guest
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
RABBITMQ_PORT: 5672
|
||||
RABBITMQ_VHOST: awx
|
||||
MEMCACHED_HOST: memcached
|
||||
MEMCACHED_PORT: 11211
|
||||
AWX_ADMIN_USER: {{ default_admin_user|default('admin') }}
|
||||
AWX_ADMIN_PASSWORD: {{ default_admin_password|default('password') }}
|
||||
|
||||
task:
|
||||
image: {{ awx_task_docker_actual_image }}
|
||||
depends_on:
|
||||
- rabbitmq
|
||||
- memcached
|
||||
- web
|
||||
{% if pg_hostname is not defined %}
|
||||
- postgres
|
||||
{% endif %}
|
||||
hostname: awx
|
||||
user: root
|
||||
restart: unless-stopped
|
||||
{% if (project_data_dir is defined) or (ca_trust_dir is defined) %}
|
||||
volumes:
|
||||
{% endif %}
|
||||
{% if project_data_dir is defined %}
|
||||
- "{{ project_data_dir +':/var/lib/awx/projects:rw' }}"
|
||||
{% endif %}
|
||||
{% if ca_trust_dir is defined %}
|
||||
- "{{ ca_trust_dir +':/etc/pki/ca-trust:ro' }}"
|
||||
{% endif %}
|
||||
{% if (awx_container_search_domains is defined) and (',' in awx_container_search_domains) %}
|
||||
{% set awx_container_search_domains_list = awx_container_search_domains.split(',') %}
|
||||
dns_search:
|
||||
{% for awx_container_search_domain in awx_container_search_domains_list %}
|
||||
- {{ awx_container_search_domain }}
|
||||
{% endfor %}
|
||||
{% elif awx_container_search_domains is defined %}
|
||||
dns_search: "{{ awx_container_search_domains }}"
|
||||
{% endif %}
|
||||
{% if (awx_alternate_dns_servers is defined) and (',' in awx_alternate_dns_servers) %}
|
||||
{% set awx_alternate_dns_servers_list = awx_alternate_dns_servers.split(',') %}
|
||||
dns:
|
||||
{% for awx_alternate_dns_server in awx_alternate_dns_servers_list %}
|
||||
- {{ awx_alternate_dns_server }}
|
||||
{% endfor %}
|
||||
{% elif awx_alternate_dns_servers is defined -%}
|
||||
dns: "{{ awx_alternate_dns_servers }}"
|
||||
{% endif %}
|
||||
environment:
|
||||
http_proxy: {{ http_proxy | default('') }}
|
||||
https_proxy: {{ https_proxy | default('') }}
|
||||
no_proxy: {{ no_proxy | default('') }}
|
||||
SECRET_KEY: {{ awx_secret_key }}
|
||||
DATABASE_NAME: {{ pg_database }}
|
||||
DATABASE_USER: {{ pg_username }}
|
||||
DATABASE_PASSWORD: {{ pg_password }}
|
||||
DATABASE_HOST: {{ pg_hostname|default("postgres") }}
|
||||
DATABASE_PORT: {{ pg_port }}
|
||||
RABBITMQ_USER: guest
|
||||
RABBITMQ_PASSWORD: guest
|
||||
RABBITMQ_HOST: rabbitmq
|
||||
RABBITMQ_PORT: 5672
|
||||
RABBITMQ_VHOST: awx
|
||||
MEMCACHED_HOST: memcached
|
||||
MEMCACHED_PORT: 11211
|
||||
AWX_ADMIN_USER: {{ default_admin_user|default('admin') }}
|
||||
AWX_ADMIN_PASSWORD: {{ default_admin_password|default('password') }}
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_VHOST: awx
|
||||
|
||||
memcached:
|
||||
image: memcached:alpine
|
||||
restart: unless-stopped
|
||||
|
||||
{% if pg_hostname is not defined %}
|
||||
postgres:
|
||||
image: postgres:9.6
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- {{ postgres_data_dir }}:/var/lib/postgresql/data:Z
|
||||
environment:
|
||||
POSTGRES_USER: {{ pg_username }}
|
||||
POSTGRES_PASSWORD: {{ pg_password }}
|
||||
POSTGRES_DB: {{ pg_database }}
|
||||
PGDATA: /var/lib/postgresql/data/pgdata
|
||||
{% endif %}
|
||||
Reference in New Issue
Block a user