mirror of
https://github.com/ansible/awx.git
synced 2026-03-22 11:25:08 -02:30
Add support for installing AWX from official images
* New options in the inventory file * Add defaults to some variables
This commit is contained in:
@@ -16,14 +16,14 @@
|
|||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
register: logosdir
|
register: logosdir
|
||||||
failed_when: logosdir.stat.isdir is not defined or not logosdir.stat.isdir
|
failed_when: logosdir.stat.isdir is not defined or not logosdir.stat.isdir
|
||||||
when: awx_official
|
when: awx_official|default(false)|bool
|
||||||
|
|
||||||
- name: Copy logos for inclusion in sdist
|
- name: Copy logos for inclusion in sdist
|
||||||
copy:
|
copy:
|
||||||
src: "../../awx-logos/awx/ui/client/assets"
|
src: "../../awx-logos/awx/ui/client/assets"
|
||||||
dest: "../awx/ui/client/"
|
dest: "../awx/ui/client/"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when: awx_official
|
when: awx_official|default(false)|bool
|
||||||
|
|
||||||
- name: Set sdist file name
|
- name: Set sdist file name
|
||||||
set_fact:
|
set_fact:
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
tag: "{{ awx_version }}"
|
tag: "{{ awx_version }}"
|
||||||
force: true
|
force: true
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when: use_container_for_build|bool
|
when: use_container_for_build|default(true)|bool
|
||||||
|
|
||||||
- name: Build AWX distribution using container
|
- name: Build AWX distribution using container
|
||||||
docker_container:
|
docker_container:
|
||||||
@@ -74,14 +74,14 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- ../:/awx:Z
|
- ../:/awx:Z
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when: use_container_for_build|bool
|
when: use_container_for_build|default(true)|bool
|
||||||
|
|
||||||
- name: Build AWX distribution locally
|
- name: Build AWX distribution locally
|
||||||
shell: make sdist
|
shell: make sdist
|
||||||
args:
|
args:
|
||||||
chdir: ..
|
chdir: ..
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
when: not use_container_for_build|bool
|
when: not use_container_for_build|default(true)|bool
|
||||||
|
|
||||||
- name: Set docker build base path
|
- name: Set docker build base path
|
||||||
set_fact:
|
set_fact:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
gather_facts: false
|
gather_facts: false
|
||||||
roles:
|
roles:
|
||||||
- { role: check_vars }
|
- { role: check_vars }
|
||||||
- { role: image_build }
|
- { role: image_build, when: "dockerhub_base is not defined" }
|
||||||
- { role: openshift, when: "openshift_host is defined" }
|
- { role: openshift, when: "openshift_host is defined" }
|
||||||
- { role: local_docker, when: "openshift_host is not defined" }
|
- { role: local_docker, when: "openshift_host is not defined" }
|
||||||
|
|
||||||
|
|||||||
@@ -2,26 +2,22 @@ localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env pyth
|
|||||||
|
|
||||||
[all:vars]
|
[all:vars]
|
||||||
|
|
||||||
|
# Remove these lines if you want to run a local image build
|
||||||
|
# Otherwise the setup playbook will install the official Ansible images. Versions may
|
||||||
|
# be selected based on: latest, 1, 1.0, 1.0.0, 1.0.0.123
|
||||||
|
# by default the base will be used to search for ansible/awx_web and ansible/awx_task
|
||||||
|
dockerhub_base=ansible
|
||||||
|
dockerhub_version=latest
|
||||||
|
|
||||||
# This will create or update a default admin (superuser) account in AWX, if not provided
|
# This will create or update a default admin (superuser) account in AWX, if not provided
|
||||||
# then these default values are used
|
# then these default values are used
|
||||||
# default_admin_user=admin
|
# default_admin_user=admin
|
||||||
# default_admin_password=password
|
# default_admin_password=password
|
||||||
|
|
||||||
# Use a local distribution build container image for building the AWX package
|
# AWX Secret key
|
||||||
# This is helpful if you don't want to bother installing the build-time dependencies as
|
# It's *very* important that this stay the same between upgrades or you will lose the ability to decrypt
|
||||||
# it is taken care of already.
|
# your credentials
|
||||||
# NOTE: IMPORTANT: If you are running a mininshift install, using this container might not work
|
awx_secret_key=awxsecret
|
||||||
# if you are using certain drivers like KVM where the source tree can't be mapped
|
|
||||||
# into the build container.
|
|
||||||
# Thus this setting must be set to False which will trigger a local build. To view the
|
|
||||||
# typical dependencies that you might need to install see:
|
|
||||||
# installer/image_build/files/Dockerfile.sdist
|
|
||||||
use_container_for_build=true
|
|
||||||
|
|
||||||
# Build AWX with official logos
|
|
||||||
# Requires cloning awx-logos repo into the project root.
|
|
||||||
# Review the trademark guidelines at https://github.com/ansible/awx-logos/blob/master/TRADEMARKS.md
|
|
||||||
awx_official=false
|
|
||||||
|
|
||||||
# Openshift Install
|
# Openshift Install
|
||||||
# Will need to set -e openshift_password=developer -e docker_registry_password=$(oc whoami -t)
|
# Will need to set -e openshift_password=developer -e docker_registry_password=$(oc whoami -t)
|
||||||
@@ -34,7 +30,7 @@ awx_official=false
|
|||||||
postgres_data_dir=/tmp/pgdocker
|
postgres_data_dir=/tmp/pgdocker
|
||||||
host_port=80
|
host_port=80
|
||||||
|
|
||||||
# Required for Openshift (unless you use an external registry), Optional for Standalone Docker install
|
# Required for Openshift (unless you use an external registry or DockerHub), Optional for Standalone Docker install
|
||||||
# Define if you want the image pushed to a registry. The container definition
|
# Define if you want the image pushed to a registry. The container definition
|
||||||
# will also use these images
|
# will also use these images
|
||||||
# docker_registry=172.30.1.1:5000
|
# docker_registry=172.30.1.1:5000
|
||||||
@@ -42,17 +38,28 @@ host_port=80
|
|||||||
# docker_registry_username=developer
|
# docker_registry_username=developer
|
||||||
|
|
||||||
# Set pg_hostname if you have an external postgres server, otherwise
|
# Set pg_hostname if you have an external postgres server, otherwise
|
||||||
# a new ephemeral postgres service will be created
|
# a new postgres service will be created
|
||||||
# pg_hostname=postgresql
|
# pg_hostname=postgresql
|
||||||
pg_username=awx
|
pg_username=awx
|
||||||
pg_password=awxpass
|
pg_password=awxpass
|
||||||
pg_database=awx
|
pg_database=awx
|
||||||
pg_port=5432
|
pg_port=5432
|
||||||
|
|
||||||
# AWX Secret key
|
# Use a local distribution build container image for building the AWX package
|
||||||
# It's *very* important that this stay the same between upgrades or you will use the ability to decrypt
|
# This is helpful if you don't want to bother installing the build-time dependencies as
|
||||||
# your credentials
|
# it is taken care of already.
|
||||||
awx_secret_key=awxsecret
|
# NOTE: IMPORTANT: If you are running a mininshift install, using this container might not work
|
||||||
|
# if you are using certain drivers like KVM where the source tree can't be mapped
|
||||||
|
# into the build container.
|
||||||
|
# Thus this setting must be set to False which will trigger a local build. To view the
|
||||||
|
# typical dependencies that you might need to install see:
|
||||||
|
# installer/image_build/files/Dockerfile.sdist
|
||||||
|
# use_container_for_build=true
|
||||||
|
|
||||||
|
# Build AWX with official logos
|
||||||
|
# Requires cloning awx-logos repo into the project root.
|
||||||
|
# Review the trademark guidelines at https://github.com/ansible/awx-logos/blob/master/TRADEMARKS.md
|
||||||
|
# awx_official=false
|
||||||
|
|
||||||
# Proxy
|
# Proxy
|
||||||
#http_proxy=http://proxy:3128
|
#http_proxy=http://proxy:3128
|
||||||
|
|||||||
@@ -1,99 +1,106 @@
|
|||||||
---
|
---
|
||||||
- name: Export Docker web image if it isnt local and there isnt a registry defined
|
- name: Manage AWX Container Images
|
||||||
docker_image:
|
block:
|
||||||
name: "{{ awx_web_image }}"
|
- name: Export Docker web image if it isnt local and there isnt a registry defined
|
||||||
tag: "{{ awx_version }}"
|
docker_image:
|
||||||
archive_path: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_web_image }}_{{ awx_version }}.tar"
|
name: "{{ awx_web_image }}"
|
||||||
when: inventory_hostname != "localhost" and docker_registry is not defined
|
tag: "{{ awx_version }}"
|
||||||
delegate_to: localhost
|
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
|
- name: Export Docker task image if it isnt local and there isnt a registry defined
|
||||||
docker_image:
|
docker_image:
|
||||||
name: "{{ awx_task_image }}"
|
name: "{{ awx_task_image }}"
|
||||||
tag: "{{ awx_version }}"
|
tag: "{{ awx_version }}"
|
||||||
archive_path: "{{ awx_local_base_config_path|default('/tmp') }}/{{ awx_task_image }}_{{ awx_version }}.tar"
|
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
|
when: inventory_hostname != "localhost" and docker_registry is not defined
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Authenticate with Docker registry if registry password given
|
- name: Authenticate with Docker registry if registry password given
|
||||||
docker_login:
|
docker_login:
|
||||||
registry: "{{ docker_registry }}"
|
registry: "{{ docker_registry }}"
|
||||||
username: "{{ docker_registry_username }}"
|
username: "{{ docker_registry_username }}"
|
||||||
password: "{{ docker_registry_password }}"
|
password: "{{ docker_registry_password }}"
|
||||||
reauthorize: yes
|
reauthorize: yes
|
||||||
when: docker_registry is defined and docker_registry_password is defined
|
when: docker_registry is defined and docker_registry_password is defined
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
|
||||||
- name: Set docker base path
|
- 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
|
||||||
|
|
||||||
|
- name: Tag and push web image to registry
|
||||||
|
docker_image:
|
||||||
|
name: "{{ awx_web_image }}"
|
||||||
|
repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_web_image }}"
|
||||||
|
tag: "{{ awx_version }}"
|
||||||
|
push: yes
|
||||||
|
when: docker_registry is defined
|
||||||
|
delegate_to: localhost
|
||||||
|
|
||||||
|
- name: Tag and push task image to registry
|
||||||
|
docker_image:
|
||||||
|
name: "{{ awx_task_image }}"
|
||||||
|
repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_task_image }}"
|
||||||
|
tag: "{{ awx_version }}"
|
||||||
|
push: yes
|
||||||
|
when: docker_registry is defined
|
||||||
|
delegate_to: localhost
|
||||||
|
|
||||||
|
- name: Set full image path for Registry
|
||||||
|
set_fact:
|
||||||
|
awx_web_docker_actual_image: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_web_image }}"
|
||||||
|
awx_task_docker_actual_image: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_task_image }}"
|
||||||
|
when: docker_registry is 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:
|
set_fact:
|
||||||
docker_deploy_base_path: "{{ awx_base_path|default('/tmp') }}/docker_deploy"
|
awx_web_docker_actual_image: "{{ dockerhub_base }}/awx_web:{{ dockerhub_version }}"
|
||||||
when: ansible_connection != "local" and docker_registry is not defined
|
awx_task_docker_actual_image: "{{ dockerhub_base }}/awx_task:{{ dockerhub_version }}"
|
||||||
|
when: dockerhub_base is 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
|
|
||||||
|
|
||||||
- name: Tag and push web image to registry
|
|
||||||
docker_image:
|
|
||||||
name: "{{ awx_web_image }}"
|
|
||||||
repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_web_image }}"
|
|
||||||
tag: "{{ awx_version }}"
|
|
||||||
push: yes
|
|
||||||
when: docker_registry is defined
|
|
||||||
delegate_to: localhost
|
|
||||||
|
|
||||||
- name: Tag and push task image to registry
|
|
||||||
docker_image:
|
|
||||||
name: "{{ awx_task_image }}"
|
|
||||||
repository: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_task_image }}"
|
|
||||||
tag: "{{ awx_version }}"
|
|
||||||
push: yes
|
|
||||||
when: docker_registry is defined
|
|
||||||
delegate_to: localhost
|
|
||||||
|
|
||||||
- name: Set full image path for Registry
|
|
||||||
set_fact:
|
|
||||||
awx_web_docker_actual_image: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_web_image }}"
|
|
||||||
awx_task_docker_actual_image: "{{ docker_registry }}/{{ docker_registry_repository }}/{{ awx_task_image }}"
|
|
||||||
when: docker_registry is defined
|
|
||||||
|
|
||||||
- name: Set full image path for local install
|
|
||||||
set_fact:
|
|
||||||
awx_web_docker_actual_image: "{{ awx_web_image }}"
|
|
||||||
awx_task_docker_actual_image: "{{ awx_task_image }}"
|
|
||||||
when: docker_registry is not defined
|
|
||||||
|
|
||||||
## Docker-compose instead?
|
|
||||||
|
|
||||||
- name: Activate postgres container
|
- name: Activate postgres container
|
||||||
docker_container:
|
docker_container:
|
||||||
@@ -173,7 +180,7 @@
|
|||||||
name: awx_web
|
name: awx_web
|
||||||
state: started
|
state: started
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
image: "{{ awx_web_docker_actual_image }}:{{ awx_version }}"
|
image: "{{ awx_web_docker_actual_image }}"
|
||||||
user: root
|
user: root
|
||||||
ports:
|
ports:
|
||||||
- "{{ host_port }}:8052"
|
- "{{ host_port }}:8052"
|
||||||
@@ -201,7 +208,7 @@
|
|||||||
name: awx_task
|
name: awx_task
|
||||||
state: started
|
state: started
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
image: "{{ awx_task_docker_actual_image }}:{{ awx_version }}"
|
image: "{{ awx_task_docker_actual_image }}"
|
||||||
links: "{{ awx_task_container_links|list }}"
|
links: "{{ awx_task_container_links|list }}"
|
||||||
user: root
|
user: root
|
||||||
hostname: awx
|
hostname: awx
|
||||||
|
|||||||
Reference in New Issue
Block a user