AWX 설치 환경 구성

설치 방법 변경

[AWX] AWX 15.0.0 설치하기

  • 앞선 포스트에서 설명한 바와 같이 최신 버전의 AWX 설치는 쿠버네티스 환경을 기반으로 AWX Operator를 사용하는 것이 권장 방법이다.
  • 하지만 소규모 환경이나 테스트 환경에서 AWX를 사용하려는 경우에, 굳이 쿠버네티스를 구축하면서까지 복잡해지는 것을 원치 않을 것이다.
  • 권장 방법이라곤 했지만 최신 버전에서도 기존과 같이 docker compose를 통한 docker 환경에서의 AWX 구축도 지원하고 있다.
  • 여기에서는 docker 환경에서의 AWX 22.1.0 설치를 설명한다.

설치 시 필수 조건

  • ansible 2.8 이상
  • Docker 최신 버전
  • Docker 파이썬 모듈
  • Git 1.8.4 이상
  • 파이썬 3.9 이상 (AWX 20.0.1 이상일 경우 필수 조건)

ansible 계정 생성

  • AWX 관련 작업들을 진행할 계정
useradd ansible
passwd ansible

파이썬 설치

  • CentOS 7 에서 제공하는 가장 최신 버전은 3.6.8 이다.
  • 따라서 AWX 설치를 위해 파이썬 3.9 이상의 설치가 필요하며, 시스템에서 사용하는 버전과의 충돌을 막기 위해 파이썬 환경을 별도로 구축한다.
# root 계정
yum install gcc zlib-devel openssl openssl-devel libffi-devel -y

# ansible 계정 (su - ansible)
wget https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz
tar xvf Python-3.9.16.tar.xz
cd Python-3.9.16
mkdir -p /home/ansible/package
./configure --prefix=/home/ansible/package/Python-3.9.16
make && make install

pip 설치

# ansible 계정 (su - ansible)
wget https://bootstrap.pypa.io/get-pip.py
/home/ansible/package/Python-3.9.16/bin/python3 ./get-pip.py

virtualenv 설치

  • ansible 계정에서 진행
  • 파이썬 3.9.16 기반으로 진행
cd /home/ansible/package/Python-3.9.16/bin
./pip3 install virtualenv
./pip3 install virtualenvwrapper
# vi ~/.bashrc

export VIRTUALENVWRAPPER_PYTHON=/home/ansible/package/Python-3.9.16/bin/python3
source /home/ansible/package/Python-3.9.16/bin/virtualenvwrapper.sh
# vi ~/.bash_profile

PATH=$HOME/package/Python-3.9.16/bin:$PATH:$HOME/bin
export WORKON_HOME=$HOME/.virtualenvs
export PATH
# ansible 계정 재접속 후 아래 명령 입력
mkvirtualenv -p /home/ansible/package/Python-3.9.16/bin/python3 ansible

가상환경 ansible 접속

  • 아래와 같이 ansible 환경으로 접속했는지 확인하고, 접속되지 않았다면 다음의 명령어를 참고

# 가상환경 ansible 접속
workon ansible

# 가상환경 ansible 종료
deactivate

ansible 설치

  • 아래의 명령어는 파이썬 3.9.16에서 설치할 수 있는 최신 버전의 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 22.1.0
git clone -b 22.1.0 https://github.com/ansible/awx.git
cd awx

AWX 설치 및 실행

  • 마지막에 컨테이너 로그를 확인할 때 “Admin password” 항목이 나오는데, 해당 값을 기억했다가 AWX 실행 이후 로그인 시 사용하고 패스워드를 변경한다.
# ansible 계정

## ERROR: Ansible could not initialize the preferred locale: unsupported locale setting 오류가 나타나면 아래의 명령어 실행 후 도커 이미지 생성 진행
export LC_ALL="en_US.UTF-8"

# 도커 이미지 생성
make docker-compose-build

# 도커 이미지 확인
(ansible) [ansible@localhost awx]$ docker images
REPOSITORY              TAG       IMAGE ID       CREATED              SIZE
quay.io/awx/awx_devel   HEAD      ccc9a77a5548   About a minute ago   1.63GB

## 22.1.0
(ansible) [ansible@jslim236 awx]$ docker images
REPOSITORY                  TAG       IMAGE ID       CREATED          SIZE
ghcr.io/ansible/awx_devel   HEAD      6bb723e2ce5f   13 seconds ago   1.76GB

# 컨테이너 생성
make docker-compose COMPOSE_UP_OPTS=-d

# 컨테이너 로그 확인
docker logs -f tools_awx_1

Operations to perform:
  Apply all migrations: auth, conf, contenttypes, main, oauth2_provider, sessions, sites, social_django, sso, taggit
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK

~~ (생략) ~~

  Applying sso.0002_expand_provider_options... OK
Superuser created successfully.
Admin password: 0Exz8Y9qKL2zCRac

# UI 초기화
docker exec tools_awx_1 make clean-ui ui-devel

AWX 접속

  • http 포트 : TCP 8013
  • https 포트 : TCP 8043



프로젝트 동기화 시 에러 발생하는 경우 해결 방법

  • CentOS 7에서 docker 환경으로 AWX 22.1.0 을 설치했으며, 프로젝트를 생성하여 github와 동기화 중 아래의 에러 메시지와 함께 실패함

  • 사용자 네임스페이스 활성화 (여기서는 podman 공식 문서에 맞게 설정함)
# root 계정으로 진행
cat /proc/sys/user/max_user_namespaces
0

vi /etc/sysctl.conf
user.max_user_namespaces = 15000

sysctl -p

cat /proc/sys/user/max_user_namespaces
15000
  • 아래와 같이 동기화가 성공하는 것을 볼 수 있다.



참고자료

Docker Compose for Development

Run the latest Ansible AWX in Docker containers

Basic Setup and Use of Podman in a Rootless environment

Tags: ,

Categories:

Published:

Updated: