Skip to content

Overview of AWX

logo

What is AWX Project?

  1. AWX는 Ansible이 설치된 인프라 환경에서 동작하는 자체 호스팅 솔루션으로 Web UI와 REST API를 제공합니다.
  2. Linux 서버에서 동작하며, Django로 개발된 웹 애플리케이션 입니다.
  3. Red Hat이 후원하는 오픈소스 커뮤니티 프로젝트이며, Red Hat Ansible Automation Platform(TOWER)의 업스트림 프로젝트 입니다.

Architecture

archi

Main Features

  1. Visual Dashboard
  2. Graphical Inventory management
  3. RBAC
  4. Job scheduling
  5. Job history report
  6. Remote command execution
  7. Centralized logging
  8. Notification
  9. Multi-playbook workflow
  10. Restful API

Installing AWX

Prerequisites

  1. Ansible 2.8버전 이상이 설치되어 있어야하며, Docker와 Docker Python 모듈이 필요합니다.
  2. 최소 2 Core, 4GB Memory, 20GB의 여유 공간이 필요합니다.
  3. 설치는 Ubuntu 환경에서 진행하였습니다.

Version

17.1.0 버전으로 설치하는 방법입니다. Docker 환경을 지원하는 마지막 버전이며, 설치 과정이 쉬워 빠르게 개발 환경을 구축할 수 있는 장점이 있습니다.

Release

2021년 07월 01일 기준 최신 버전 - 19.2.2 (2021년 06월 28일)
- 19.2.1 버전 - 2021년 06월 17일
- 19.2.0 버전 - 2021년 06월 02일
- 19.1.0 버전 - 2021년 05월 01일
- 19.0.0 버전 - 2021년 04월 08일
- 18.0.0 버전 - 2021년 03월 24일 - 설치 방법 - AWX Operator ( OpenShift, Kubernetes, minikube )
- 17.1.0 버전- 2021년 03월 10일 - 설치 방법 - OpenShift, Kubernetes, DockerCompose

Package Upgrade

Python 최신 버전을 확인하고, 최소 3.8 버전 이상을 설치하는 것을 추천합니다. Python 가상 환경을 만들어 구성을 하면, 격리된 Python 개발 환경을 만들 수 있습니다.

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt update
$ sudo apt install python3.9 python3.9-venv
$ python3.9 -m venv awx
$ source ./awx/bin/activate

Docker Install

$ sudo apt -y install apt-transport-https ca-certificates curl gnupg-agent
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker version
$ source ./awx/bin/activate
$ sudo vim /etc/docker/daemon.json
$ sudo systemctl restart docker
$ ip addr show docker0

기본 Docker Network 대역이 아닌, 다른 대역으로 변경 시 daemon.json 파일을 사용합니다.

{
 "default-address-pools":
 [
 {"base":"100.100.100.0/24","size":24}
 ]
}

Docker-Compose Install

$ pip3.9 install --upgrade pip
$ pip3.9 install docker-compose
$ docker-compose version

AWX Install

$ sudo mkdir /ansible
$ cd /ansible
$ sudo git clone -b 17.0.1 https://github.com/ansible/awx.git
$ sudo vim ./awx/installer/inventory
$ sudo mkdir /awx
$ sudo chown d3:docker /awx

inventory 파일에서 설치 할 AWX의 기본 정보를 편집합니다.

localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[all:vars]
dockerhub_base=ansible
docker_logger=journald

awx_task_hostname=awx
awx_web_hostname=awxweb

host_port=80
host_port_ssl=443

pg_username=d3
pg_password=d3d3
pg_database=awx
pg_port=5432
pg_admin_password=d3d3

admin_user=d3
admin_password=d3d3

create_preload_data=True
secret_key=d3d3
awx_official=false

custom_venv_dir=/home/d3/awx
docker_compose_subnet="100.100.100.0/24"
docker_logger=journald
postgres_data_dir="/awx/data/docker-postgres"
docker_compose_dir="/awx/data/docker-compose"
project_data_dir=/awx/project/
마지막으로 Ansible을 설치하고, AWX를 설치합니다.

$ pip3.9 install ansible
$ ansible-playbook -i ./awx/installer/inventory ./awx/installer/install.yml

Accessing AWX

서버의 IP주소 혹은 도메인을 브라우저에 입력하면, 로그인 창을 확인할 수 있습니다.

logo

  1. AWX Project FAQ
  2. AWX on Github
  3. RED HAT ANSIBLE TOWER DOC