AWX 설치 환경 구성
설치 방법 변경
- AWX 18.0 이후부터 AWX Operator로 설치하는 것이 권장 방법이 되었다 (쿠버네티스 환경에서 설치)
- Docker 환경에 설치하는 것도 계속 지원은 하지만 개발/테스트 용도로만 사용하는 것을 공식적으로 권장된다.
- AWX 18.0 이전에는 기본적으로 docker compose로 docker 환경에 AWX를 설치하는 것이 일반적이다.
설치 시 필수 조건
- ansible 2.8 이상
- Docker 최신 버전
- Docker 파이썬 모듈
- Git 1.8.4 이상
- 파이썬 3.6 이상
- Node 14.x LTS (고유 컨테이너 이미지를 빌드할 때만 필요)
- NPM 6.x LTS (고유 컨테이너 이미지를 빌드할 때만 필요)
ansible 계정 생성
- AWX 관련 작업들을 진행할 계정
useradd ansible
passwd ansible
파이썬 설치
- CentOS 7 에서 제공하는 가장 최신 버전은 3.6.8
- 시스템에서 사용하는 파이썬과 다른 버전을 사용하기 위해 파이썬 환경을 따로 구축한다.
- 여기서는 ansible 구동용 파이썬을 따로 설치하여 사용한다 (버전은 3.6.8 동일하게 설치)
# root 계정
yum install gcc zlib-devel openssl openssl-devel libffi-devel -y
# ansible 계정 (su - ansible)
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
tar xvf Python-3.6.8.tar.xz
cd Python-3.6.8
mkdir -p /home/ansible/package
./configure --prefix=/home/ansible/package/Python-3.6.8
make && make install
pip 설치
# ansible 계정 (su - ansible)
## 아래를 사용하면 Python 3.7 이상 버전을 요구함. 3.6 버전에서 사용하고자 한다면 다음 명령어를 사용할 것
# wget https://bootstrap.pypa.io/get-pip.py
wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
/home/ansible/package/Python-3.6.8/bin/python3 ./get-pip.py
virtualenv 설치
- ansible 계정에서 진행
cd /home/ansible/package/Python-3.6.8/bin
./pip3 install virtualenv
./pip3 install virtualenvwrapper
# vi ~/.bashrc
export VIRTUALENVWRAPPER_PYTHON=/home/ansible/package/Python-3.6.8/bin/python3
source /home/ansible/package/Python-3.6.8/bin/virtualenvwrapper.sh
# vi ~/.bash_profile
PATH=$HOME/package/Python-3.6.8/bin:$PATH:$HOME/bin
export WORKON_HOME=$HOME/.virtualenvs
export PATH
# ansible 계정 재접속 후 아래 명령 입력
mkvirtualenv -p /home/ansible/package/Python-3.6.8/bin/python3 ansible
가상환경 ansible 접속
- 아래와 같이 ansible 환경으로 접속했는지 확인하고, 접속되지 않았다면 다음의 명령어를 참고
# 가상환경 ansible 접속
workon ansible
# 가상환경 ansible 종료
deactivate
ansible 설치
# ansible 계정
pip install ansible
AWX 설치 및 실행
Docker 설치
# root 계정
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
Docker Compose 설치
# root 계정
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
Docker 실행
# root 계정
systemctl enable docker
systemctl start docker
Docker 사용할 수 있는 계정 추가
# root 외에 계정도 docker 를 이용할 수 있도록 usermod 변경
# root 계정
sudo usermod -a -G docker ansible
# ansible 계정으로 재 접속 (꼭 재접속) 후, 테스트
workon ansible
docker ps
Docker 관련 파이썬 패키지 설치
# python docker / docker-compose
# ansible 계정
pip install docker
pip install docker-compose
git 설치
# root 계정
yum install -y curl-devel expat-devel gettext-devel perl-ExtUtils-MakeMaker
# ansible 계정
mkdir ~/downloads
cd ~/downloads
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.22.0.tar.xz --no-check-certificate
tar xvf git-2.22.0.tar.xz
cd git-2.22.0
make prefix=/home/ansible/package/git all
make prefix=/home/ansible/package/git install
# vi ~/.bash_profile
# ansible 계정
PATH=$HOME/package/git/bin:$PATH
export PATH
# ansible 계정 재접속
AWX 다운로드
# https://github.com/ansible/awx/releases
# ansible 계정
cd ~/downloads
# awx 15.0.0
wget https://github.com/ansible/awx/archive/15.0.0.tar.gz
tar xvf 15.0.0.tar.gz
ln -s awx-15.0.0 awx
AWX 설치할 docker 환경 변수 수정
# vi /home/ansible/downloads/awx/installer/inventory
# 아래 항목들을 찾아 주석을 제거 하거나, 값을 변경해 줍니다.
# use_docker_compose=true 의 경우, 추가.
# ansible 계정
localhost ansible_connection=local ansible_python_interpreter="/home/ansible/.virtualenvs/ansible/bin/python"
postgres_data_dir=/home/ansible/package/awx/pgdocker
host_port=10090
host_port_ssl=10091
use_docker_compose=true
docker_compose_dir=/home/ansible/package/awx/awxcompose
project_data_dir=/home/ansible/package/awx/projects
# 17.1.0의 경우 아래의 항목의 주석 제거
admin_password=password
AWX 설치 및 실행
# ansible 계정
# awx 최초 실행 (docker-compose.yml 파일 생성)
cd /home/ansible/downloads/awx/installer
/home/ansible/.virtualenvs/ansible/bin/ansible-playbook -i inventory install.yml
-
이때, “Create Docker Compose Configuration” 에서 libselinux-python 에러가 날 경우, selinux 설정을 disabled 시키고 해볼 것
-
“from community.general in version 2.0.0 Please update your playbooks.” 에러가 날 경우 role 파일 중에 “docker_service” 항목을 “docker_compose” 로 변경
- 참고 : https://docs.ansible.com/ansible/latest/collections/community/general/docker_service_module.html
grep -r "docker_service" *
roles/local_docker/tasks/upgrade_postgres.yml: docker_service:
vi roles/local_docker/tasks/upgrade_postgres.yml
docker_service -> docker_compose
# awx 중지 / 시작
# ansible 계정
cd /home/ansible/package/awx/awxcompose
docker-compose stop
docker-compose start
# awx 로그 확인
docker logs -f awx_task
# docker process 확인
# awx_task, awx_web, awx_postgres, awx_redis 가 동작하고 있어야 함.
docker ps
# awx 접속
# 초기 비번 : admin / password
http://{서버IP}:10090
AWX 접속
- 최신 버전의 크롬에서는 아래와 같이 TCP 10080으로의 웹접속이 차단되니까 주의
- 따라서 해당 문서에서 TCP 10080 → 10090 으로 변경