반응형
우분투 24.04에서 Ansible AWX를 Minikube로 설치하는 방법
AWX는 Ansible Tower의 오픈소스 버전으로 웹 기반 UI를 제공하는 Ansible 관리 도구입니다.
Ansible의 웹 기반 사용자 인터페이스 및 API로 Ansible 작업을 관리하고 자동화하는 데 사용됩니다. AWX는 Kubernetes 또는 Docker를 기반으로 배포할 수 있습니다.
필수 패키지 설치
sudo apt update
sudo apt install -y curl wget git vim jq
도커 설치
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
sudo systemctl enable --now docker
sudo rm -f get-docker.sh
Minikube 설치
curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
Minikube 버전 확인
minikube version
minikube version: v1.35.0
commit: dd5d320e41b5451cdf3c01891bc4e13d189586ed-dirty
kubectl 설치
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
sudo rm -f kubectl
kubectl 버전 확인
kubectl version --client
Client Version: v1.32.2
Kustomize Version: v5.5.0
Minikube 클러스터 생성(Docker 드라이버와 Ingress 애드온 활성화)
minikube start --driver=docker --addons=ingress --force
더보기
---
$ minikube start --driver=docker --addons=ingress --force
😄 minikube v1.35.0 on Ubuntu 24.04 (vbox/amd64)
❗ minikube skips various validations when --force is supplied; this may lead to unexpected behavior
✨ Using the docker driver based on user configuration
🛑 The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
💡 If you are running minikube within a VM, consider using --driver=none:
📘 https://minikube.sigs.k8s.io/docs/reference/drivers/none/
📌 Using Docker driver with root privileges
👍 Starting "minikube" primary control-plane node in "minikube" cluster
🚜 Pulling base image v0.0.46 ...
💾 Downloading Kubernetes v1.32.0 preload ...
> preloaded-images-k8s-v18-v1...: 333.57 MiB / 333.57 MiB 100.00% 31.32 M
🔥 Creating docker container (CPUs=2, Memory=2200MB) ...
🐳 Preparing Kubernetes v1.32.0 on Docker 27.4.1 ...
▪ Generating certificates and keys ...
▪ Booting up control plane ...
▪ Configuring RBAC rules ...
🔗 Configuring bridge CNI (Container Networking Interface) ...
🔎 Verifying Kubernetes components...
▪ Using image registry.k8s.io/ingress-nginx/controller:v1.11.3
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
▪ Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.4
🔎 Verifying ingress addon...
🌟 Enabled addons: storage-provisioner, default-storageclass, ingress
🏄 Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
---
설치된 클러스터 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 67s v1.32.0
kubectl get pod -A
GitHub에서 Ansible AWX Operator의 버전 조회
버전 조회
curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | jq -r .tag_name
2.19.1
Git 클론 후 버전 확인
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git tag | sort -V | tail -n1
2.19.1
더보기
---
GitHub에서 Ansible AWX의 버전 조회
버전 조회
curl -s https://api.github.com/repos/ansible/awx/releases/latest | jq -r .tag_name
24.6.1
Git 클론 후 버전 확인
git clone https://github.com/ansible/awx-operator.git
cd awx-operator
git tag | sort -V | tail -n1
24.6.1
---
1. AWX Operator 설치
sudo mkdir -p /opt
cd /opt
AWX Operator 레포지토리 클론
git clone https://github.com/ansible/awx-operator.git
최신 릴리스 태그로 체크아웃
cd awx-operator
git checkout $(curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | jq -r .tag_name)
NAMESPACE 환경 변수 설정
export NAMESPACE=ansible-awx
AWX Operator 배포
make deploy
더보기
---
namespace/ansible-awx created
customresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxmeshingresses.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.com created
customresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.com created
serviceaccount/awx-operator-controller-manager created
role.rbac.authorization.k8s.io/awx-operator-awx-manager-role created
role.rbac.authorization.k8s.io/awx-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/awx-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/awx-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/awx-operator-awx-manager-rolebinding created
rolebinding.rbac.authorization.k8s.io/awx-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/awx-operator-proxy-rolebinding created
configmap/awx-operator-awx-manager-config created
service/awx-operator-controller-manager-metrics-service created
deployment.apps/awx-operator-controller-manager created
---
AWX 리소스 배포 (awx-demo.yml 파일 사용)
kubectl create -f awx-demo.yml -n $NAMESPACE
AWX Pod 상태 확인
kubectl get pod -n $NAMESPACE
NAME READY STATUS RESTARTS AGE
awx-demo-migration-24.6.1-4p6tf 0/1 Completed 0 10m
awx-demo-postgres-15-0 1/1 Running 0 15m
awx-demo-task-56d9cb9fb7-rm2mv 4/4 Running 0 9m47s
awx-demo-web-74b447698f-hvjqb 3/3 Running 0 13m
awx-operator-controller-manager-58b7c97f4b-dc9dk 2/2 Running 0 16m
Pod 재시작 시도(특정 pod를 삭제하여 자동으로 재시작)
kubectl delete pod <awx_pod_name> -n $NAMESPACE
Pod 로그 확인
kubectl logs -n $NAMESPACE -f <awx_pod_name>
서비스 상태 확인
kubectl get svc -n $NAMESPACE
2. AWX UI 접속
웹 브라우저에서 AWX 웹 인터페이스에 접속할 수 있습니다.
AWX 서비스에 접근할 수 있는 URL 출력
minikube service awx-demo-service --url -n $NAMESPACE
http://192.168.49.2:31909
Port-forwarding을 백그라운드에서 실행하여 로컬에서 AWX 웹 UI에 접근
nohup kubectl port-forward -n $NAMESPACE service/awx-demo-service 8002:80 --address 0.0.0.0 > port-forward-$NAMESPACE.log 2>&1 &
http://192.168.10.48:8002/#/login
AWX의 기본 관리자 비밀번호 출력 (Base64로 인코딩된 비밀번호를 디코딩)
kubectl get secret awx-demo-admin-password -o jsonpath="{.data.password}" -n $NAMESPACE | base64 --decode; echo
설정한 관리자 계정과 비밀번호로 로그인합니다.
- 기본 사용자명 : admin
- 기본 비밀번호 : wnglgZ0S0PO2tr17CboZBASE59HGrIKa
3. AWX CLI 설치
pip install ansible-tower-cli
테스트
awx --version
Ansible AWX를 Minikube 환경에서 실행할 수 있습니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
Minikube Dashboard 활성화 및 외부 접근 설정 방법 (0) | 2025.03.09 |
---|---|
CentOS 7에서 Ansible AWX 17을 설치하는 방법 (0) | 2025.03.06 |
Zabbix에서 NGINX의 access.log와 error.log를 모니터링하는 방법 (0) | 2025.02.24 |
Zabbix에서 UserParameter를 사용하여 웹 모니터링을 하는 방법 (0) | 2025.02.20 |
Nginx와 Apache 연동하여 프록시 설정하기 (0) | 2025.02.20 |