Ansible, AWX 설치 방법(CentOS 7.8)
by Sejin
개요
자동화를 위한 도구 중 Ansible과 Ansible Tower의 무료버전인 AWX 설치 방법에 대한 포스팅입니다.
이해가 어려운 부분에 대해서는 sejin_yoo@naver.com으로 메일주시면 답장 드리겠습니다.
설치 환경
Virtual Machine : Oracle VirtualBox 6.1
OS : CentOS 7.8 x86_64
Network : 외부 통신 가능
설치 과정
먼저 필요 패키지를 설치합니다.
이번 포스팅에서는 AWX를 Docker Container 위에서 구동할 예정이라 Docker 패키지도 설치합니다.
yum install -y epel-release는 fedora의 최신 패키지를 받을 수 있도록 repository에 추가하는 명령어입니다.
Install packages:
$ yum install -y epel-release
$ yum install -y yum-utils device-mapper-persistent-data lvm2 ansible git python-devel python-pip python-docker-py vim-enhanced
# Install docker
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum install docker-ce -y && systemctl start docker && systemctl enable docker
이제 필요한 패키지를 모두 설치했으니 AWX의 소스를 서버로 가져와야 합니다.
Clone AWX source:
$ mkdir -p /app
$ git clone https://github.com/ansible/awx.git
$ cd /app/awx
# 아래는 awx에서 사용하는 로고들을 다운로드 받는 명령어입니다.
$ git clone https://github.com/ansible/awx-logos.git
이제 AWX의 최신 소스를 가져왔으니 설치를 진행합니다.
Install AWX:
$ cd /app/awx/installer
$ vi inventory
==================
# 123 line
awx_official false -> true
==================
$ ansible-playbook -i inventory install.yml -vvv
위 명령어를 실행하면 에러가 발생할 수 있는데 에러 종류에 맞게 유동적으로 처리가 필요합니다. (환경마다 설치된 패키지가 다르기 때문에)
설치 과정 오류 해결 방법
설치 과정에서 오류가 발생할 수 있는데 제가 겪었던 오류들을 공유합니다.
module_stderr: usr/bin/env: python3: No such file or directory
이 오류의 경우 에러가 명확한데 python3 파일을 찾을 수 없다는 메시지입니다.
이 때, 진행 내역은 아래와 같습니다.
$ yum install python3 -y
Aborting, target uses selinux but python bindings (libselinux-python) aren't installed!
이 경우 2가지를 점검해야 합니다.
1. selinux 정책에서 허용했거나 혹은 selinux를 비활성화 했는지
2. libselinux-python 라이브러리가 설치되어 있는지
저의 경우 selinux를 비활성화 한 후 설치를 진행하고 있어 2의 경우를 의심했습니다.
python3을 추가로 설치했기 때문에 python3 관련 라이브러리를 설치합니다.
$ yum install libselinux-python3 -y
The error was: No module named requests
모듈을 찾을 수 없다는 오류입니다. 최신으로 설치된 기타 패키지에 맞게 업그레이드를 진행합니다.
$ pip install docker-py
$ pip install --upgrade requests
설치 완료 후 방화벽 추가, 서비스 실행 확인
도커 서비스 확인:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7dd337c884b6 ansible/awx:13.0.0 "tini -- /usr/bin/la…" 9 hours ago Up 9 hours 8052/tcp awx_task
9eeed62e84c9 ansible/awx:13.0.0 "tini -- /bin/sh -c …" 9 hours ago Up 9 hours 0.0.0.0:80->8052/tcp awx_web
dbde0248a608 redis "docker-entrypoint.s…" 10 hours ago Up 9 hours 6379/tcp awx_redis
3b630bc0ed92 postgres:10 "docker-entrypoint.s…" 10 hours ago Up 9 hours 5432/tcp awx_postgres
방화벽 추가:
$ firewall-cmd --zone=public --add-masquerade --permanent
$ firewall-cmd --permanent --add-service=http
$ firewall-cmd --permanent --add-service=https
$ firewall-cmd --reload
방화벽 설정까지 모두 끝났다면 http://server-ip
로 웹 페이지를 확인할 수 있습니다.
기본적으로 ID/PW는 admin/password일텐데 변경하고 싶으시다면 <awx 설치경로>/installer/inventory
파일에서 아래 부분을 수정하시면 됩니다.
# 110-111 line
admin_user=admin
admin_password=변경하고자 하는 비밀번호
웹 페이지 호출 결과
로그인 후 대시보드 화면
다음 포스팅은 AWX 웹 페이지에서 설정하는 방법으로 찾아뵙겠습니다.
문의사항은 댓글이나 이메일로 남겨주세요.
감사합니다.
Subscribe via RSS