본문 바로가기

리눅스

CentOS 7에서 Ansible AWX 17을 설치하는 방법

반응형

CentOS 7에서 Ansible AWX 17을 설치하는 방법

AWX는 Ansible Tower의 오픈소스 버전으로 웹 기반 UI를 제공하는 Ansible 관리 도구입니다.

 

Ansible의 웹 기반 사용자 인터페이스 및 API로 Ansible 작업을 관리하고 자동화하는 데 사용됩니다. AWX는 Kubernetes 또는 Docker를 기반으로 배포할 수 있습니다.

테스트 환경

# CentOS 7 버전 확인
$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

# SELinux 비활성화 확인
$ grep "^SELINUX=" /etc/selinux/config
SELINUX=disabled

1. 사전 요구 사항

AWX를 설치하려면 Docker, Ansible 등이 필요합니다.

sudo yum install -y epel-release
sudo yum install -y yum-utils git gcc gcc-c++ gettext bzip2 curl jq

Python 설치

sudo yum install -y python3-pip python3-devel pwgen

Docker 설치

# Docker 설치 전 필수 패키지 설치
sudo yum install -y device-mapper-persistent-data lvm2

# Docker 저장소 추가 및 설치
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# Docker 서비스 활성화 및 현재 사용자 그룹에 추가
sudo systemctl enable --now docker
sudo usermod -aG docker $USER

# 그룹 변경 적용
newgrp docker

Docker Compose 설치

sudo curl -fsSL "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" \
  -o /usr/local/bin/docker-compose
더보기

---

sudo curl -fsSL "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name \
  | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

---

chmod +x /usr/local/bin/docker-compose

Ansible 설치

sudo yum install -y ansible

Node.js 설치(NVM 사용)

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/refs/heads/master/install.sh | bash
source ~/.bashrc
nvm install 20

2. AWX 저장소 복제

GitHub에서 AWX 저장소를 복제합니다. 특정 버전을 설치하려면 -b 옵션을 사용하여 해당 버전을 지정할 수 있습니다.

 

Python 모듈 설치

sudo pip3 install -U -I pip wheel setuptools
sudo pip3 install ansible docker docker-compose
mkdir -p /opt
cd /opt
더보기

---

wget https://github.com/ansible/awx/archive/refs/tags/17.1.0.tar.gz \
  -O /opt/awx-17.1.0.tar.gz
tar xfz awx-17.1.0.tar.gz
cd awx-17.1.0/installer

---

sudo git clone --branch 17.0.1 --depth 1 https://github.com/ansible/awx.git
cd awx/installer
728x90

3. 설정 파일 수정

inventory 파일을 수정하여 필요한 설정을 변경합니다. 예를 들어, 호스트 포트, 관리자 비밀번호, Docker 관련 설정 등을 변경할 수 있습니다.

cp inventory inventory.bak
더보기

---

$ cat inventory | egrep -v "^$|^#"
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[all:vars]
dockerhub_base=ansible

awx_task_hostname=awx
awx_web_hostname=awxweb

postgres_data_dir="~/.awx/pgdocker"
host_port=80
host_port_ssl=443
docker_compose_dir="~/.awx/awxcompose"

pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432

admin_user=admin
admin_password=password

create_preload_data=True

secret_key=awxsecret

---

vim inventory

주요 설정 항목

  • host_port : AWX 웹 인터페이스에 접속할 포트 번호
  • admin_user : 관리자 계정 이름
  • admin_password : 관리자 계정 비밀번호
  • postgres_data_dir : PostgreSQL 데이터 디렉토리 경로
  • docker_compose_dir : Docker Compose 파일 디렉토리 경로
cat <<EOF > inventory
localhost ansible_connection=local ansible_python_interpreter="/usr/bin/env python3"

[all:vars]
dockerhub_base=ansible

awx_task_hostname=awx
awx_web_hostname=awxweb

postgres_data_dir="~/.awx/pgdocker"
host_port=80
host_port_ssl=443
docker_compose_dir="~/.awx/awxcompose"

pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432

admin_user=admin
admin_password=password

create_preload_data=True

secret_key=$SECRET_KEY

awx_official=true

awx_alternate_dns_servers="8.8.8.8,1.1.1.1"
EOF
SECRET_KEY=$(pwgen -N 1 -s 40)
sed -i "s|^secret_key=.*|secret_key=$SECRET_KEY|" inventory
sed -i "s|^admin_user=.*|admin_user=admin|" inventory
sed -i "s|^admin_password=.*|admin_password=password|" inventory

4. AWX 설치

Ansible Playbook을 실행하여 AWX를 설치합니다.

ansible-playbook -i inventory install.yml

5. AWX 웹 UI 접속

웹 브라우저에서 AWX 웹 인터페이스에 접속할 수 있습니다.

http://<서버 IP>:<호스트 포트>

Ansible

설정한 관리자 계정과 비밀번호로 로그인합니다.

  • 기본 사용자명 : admin
  • 기본 비밀번호 : password

6. AWX 서비스 관리

AWX는 Docker Compose로 관리됩니다.

cd ~/.awx/awxcompose

AWX 시작

docker-compose up -d

AWX 중지

docker-compose down

AWX 로그 확인

docker-compose logs -f

AWX 상태 확인

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
NAMES          STATUS             PORTS
awx_task       Up About an hour   8052/tcp
awx_web        Up About an hour   0.0.0.0:80->8052/tcp, :::80->8052/tcp
awx_postgres   Up About an hour   5432/tcp
awx_redis      Up About an hour   6379/tcp

 

Ansible AWX 17이 CentOS 7에 성공적으로 설치되었습니다.

 

참고URL

- GITHUB : ansible/awx

 

728x90
반응형