Overview of AWX¶
What is AWX Project?¶
- AWX는 Ansible이 설치된 인프라 환경에서 동작하는 자체 호스팅 솔루션으로 Web UI와 REST API를 제공합니다.
- Linux 서버에서 동작하며, Django로 개발된 웹 애플리케이션 입니다.
- Red Hat이 후원하는 오픈소스 커뮤니티 프로젝트이며, Red Hat Ansible Automation Platform(TOWER)의 업스트림 프로젝트 입니다.
Architecture¶
Main Features¶
- Visual Dashboard
- Graphical Inventory management
- RBAC
- Job scheduling
- Job history report
- Remote command execution
- Centralized logging
- Notification
- Multi-playbook workflow
- Restful API
Installing AWX¶
Prerequisites¶
- Ansible 2.8버전 이상이 설치되어 있어야하며, Docker와 Docker Python 모듈이 필요합니다.
- 최소 2 Core, 4GB Memory, 20GB의 여유 공간이 필요합니다.
- 설치는 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/
$ pip3.9 install ansible
$ ansible-playbook -i ./awx/installer/inventory ./awx/installer/install.yml
Accessing AWX¶
서버의 IP주소 혹은 도메인을 브라우저에 입력하면, 로그인 창을 확인할 수 있습니다.