mirror of
https://github.com/ansible/awx.git
synced 2026-05-20 07:17:40 -02:30
Move installer roles into roles directory
Signed-off-by: Shane McDonald <me@shanemcd.com>
This commit is contained in:
220
installer/roles/image_build/tasks/main.yml
Normal file
220
installer/roles/image_build/tasks/main.yml
Normal file
@@ -0,0 +1,220 @@
|
||||
---
|
||||
- name: Get Version from checkout if not provided
|
||||
shell: "git describe --long --first-parent | sed 's/\\-g.*//' | sed 's/\\-/\\./'"
|
||||
delegate_to: localhost
|
||||
register: awx_version_command
|
||||
when: awx_version is not defined
|
||||
|
||||
- name: Set global version if not provided
|
||||
set_fact:
|
||||
awx_version: "{{ awx_version_command.stdout }}"
|
||||
when: awx_version is not defined
|
||||
|
||||
- name: Verify awx-logos directory exists for official install
|
||||
stat:
|
||||
path: "../../awx-logos"
|
||||
delegate_to: localhost
|
||||
register: logosdir
|
||||
failed_when: logosdir.stat.isdir is not defined or not logosdir.stat.isdir
|
||||
when: awx_official|default(false)|bool
|
||||
|
||||
- name: Copy logos for inclusion in sdist
|
||||
copy:
|
||||
src: "../../awx-logos/awx/ui/client/assets"
|
||||
dest: "../awx/ui/client/"
|
||||
delegate_to: localhost
|
||||
when: awx_official|default(false)|bool
|
||||
|
||||
- name: Set sdist file name
|
||||
set_fact:
|
||||
awx_sdist_file: "awx-{{ awx_version }}.tar.gz"
|
||||
|
||||
- name: AWX Distribution
|
||||
debug:
|
||||
msg: "{{ awx_sdist_file }}"
|
||||
|
||||
- name: Stat distribution file
|
||||
stat:
|
||||
path: "../dist/{{ awx_sdist_file }}"
|
||||
delegate_to: localhost
|
||||
register: sdist
|
||||
|
||||
- name: Clean distribution
|
||||
shell: make clean
|
||||
args:
|
||||
chdir: ..
|
||||
ignore_errors: yes
|
||||
when: not sdist.stat.exists
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Build sdist builder image
|
||||
docker_image:
|
||||
buildargs:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
path: "image_build/files"
|
||||
dockerfile: Dockerfile.sdist
|
||||
name: awx_sdist_builder
|
||||
tag: "{{ awx_version }}"
|
||||
force: true
|
||||
delegate_to: localhost
|
||||
when: use_container_for_build|default(true)|bool
|
||||
|
||||
- name: Build AWX distribution using container
|
||||
docker_container:
|
||||
env:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
image: "awx_sdist_builder:{{ awx_version }}"
|
||||
name: awx_sdist_builder
|
||||
state: started
|
||||
detach: false
|
||||
volumes:
|
||||
- ../:/awx:Z
|
||||
delegate_to: localhost
|
||||
when: use_container_for_build|default(true)|bool
|
||||
|
||||
- name: Build AWX distribution locally
|
||||
shell: make sdist
|
||||
args:
|
||||
chdir: ..
|
||||
delegate_to: localhost
|
||||
when: not use_container_for_build|default(true)|bool
|
||||
|
||||
- name: Set docker build base path
|
||||
set_fact:
|
||||
docker_base_path: "{{ awx_local_base_config_path|default('/tmp') }}/docker-image"
|
||||
|
||||
- name: Set awx_web image name
|
||||
set_fact:
|
||||
awx_web_image: "{{ awx_web_image|default('awx_web') }}"
|
||||
|
||||
- name: Set awx_task image name
|
||||
set_fact:
|
||||
awx_task_image: "{{ awx_task_image|default('awx_task') }}"
|
||||
|
||||
- name: Ensure directory exists
|
||||
file:
|
||||
path: "{{ docker_base_path }}"
|
||||
state: directory
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage sdist
|
||||
copy:
|
||||
src: "../dist/{{ awx_sdist_file }}"
|
||||
dest: "{{ docker_base_path }}/{{ awx_sdist_file }}"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Template web Dockerfile
|
||||
template:
|
||||
src: Dockerfile.j2
|
||||
dest: "{{ docker_base_path }}/Dockerfile"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Template task Dockerfile
|
||||
template:
|
||||
src: Dockerfile.task.j2
|
||||
dest: "{{ docker_base_path }}/Dockerfile.task"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage launch_awx
|
||||
copy:
|
||||
src: launch_awx.sh
|
||||
dest: "{{ docker_base_path }}/launch_awx.sh"
|
||||
mode: '0700'
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage launch_awx_task
|
||||
copy:
|
||||
src: launch_awx_task.sh
|
||||
dest: "{{ docker_base_path }}/launch_awx_task.sh"
|
||||
mode: '0700'
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage nginx.conf
|
||||
copy:
|
||||
src: nginx.conf
|
||||
dest: "{{ docker_base_path }}/nginx.conf"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage supervisor.conf
|
||||
copy:
|
||||
src: supervisor.conf
|
||||
dest: "{{ docker_base_path }}/supervisor.conf"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage supervisor_task.conf
|
||||
copy:
|
||||
src: supervisor_task.conf
|
||||
dest: "{{ docker_base_path }}/supervisor_task.conf"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage settings.py
|
||||
copy:
|
||||
src: settings.py
|
||||
dest: "{{ docker_base_path }}/settings.py"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage requirements
|
||||
copy:
|
||||
src: ../requirements/
|
||||
dest: "{{ docker_base_path }}/requirements"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage config watcher
|
||||
copy:
|
||||
src: ../tools/scripts/config-watcher
|
||||
dest: "{{ docker_base_path }}/config-watcher"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage Makefile
|
||||
copy:
|
||||
src: ../Makefile
|
||||
dest: "{{ docker_base_path }}/Makefile"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage ansible repo
|
||||
copy:
|
||||
src: 'ansible.repo'
|
||||
dest: '{{ docker_base_path }}/ansible.repo'
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Stage ansible repo key
|
||||
copy:
|
||||
src: 'RPM-GPG-KEY-ansible-release'
|
||||
dest: '{{ docker_base_path }}/RPM-GPG-KEY-ansible-release'
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Build base web image
|
||||
docker_image:
|
||||
buildargs:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
path: "{{ docker_base_path }}"
|
||||
dockerfile: Dockerfile
|
||||
name: "{{ awx_web_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Build base task image
|
||||
docker_image:
|
||||
buildargs:
|
||||
http_proxy: "{{ http_proxy | default('') }}"
|
||||
https_proxy: "{{ https_proxy | default('') }}"
|
||||
no_proxy: "{{ no_proxy | default('') }}"
|
||||
path: "{{ docker_base_path }}"
|
||||
dockerfile: Dockerfile.task
|
||||
name: "{{ awx_task_image }}"
|
||||
tag: "{{ awx_version }}"
|
||||
pull: no
|
||||
delegate_to: localhost
|
||||
|
||||
- name: Clean docker base directory
|
||||
file:
|
||||
path: "{{ docker_base_path }}"
|
||||
state: absent
|
||||
when: cleanup_docker_base|default(True)
|
||||
delegate_to: localhost
|
||||
Reference in New Issue
Block a user