반응형
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>:<호스트 포트>
설정한 관리자 계정과 비밀번호로 로그인합니다.
- 기본 사용자명 : 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
anssible/awx
728x90
반응형
'리눅스' 카테고리의 다른 글
우분투에서 Minikube를 설치하고 실행하는 방법 (0) | 2025.03.09 |
---|---|
Minikube Dashboard 활성화 및 외부 접근 설정 방법 (0) | 2025.03.09 |
우분투에서 Ansible AWX를 Minikube로 설치하는 방법 (0) | 2025.03.06 |
Zabbix에서 NGINX의 access.log와 error.log를 모니터링하는 방법 (0) | 2025.02.24 |
Zabbix에서 UserParameter를 사용하여 웹 모니터링을 하는 방법 (0) | 2025.02.20 |