반응형
    
    
    
  우분투 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.shMinikube 설치
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-amd64Minikube 버전 확인
minikube versionminikube version: v1.35.0
commit: dd5d320e41b5451cdf3c01891bc4e13d189586ed-dirtykubectl 설치
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 kubectlkubectl 버전 확인
kubectl version --clientClient Version: v1.32.2
Kustomize Version: v5.5.0Minikube 클러스터 생성(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 nodesNAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   67s   v1.32.0kubectl get pod -A
GitHub에서 Ansible AWX Operator의 버전 조회
버전 조회
curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | jq -r .tag_name2.19.1Git 클론 후 버전 확인
git clone https://github.com/ansible/awx-operator.git
cd awx-operatorgit tag | sort -V | tail -n12.19.1더보기
---
GitHub에서 Ansible AWX의 버전 조회
버전 조회
curl -s https://api.github.com/repos/ansible/awx/releases/latest | jq -r .tag_name24.6.1Git 클론 후 버전 확인
git clone https://github.com/ansible/awx-operator.git
cd awx-operatorgit tag | sort -V | tail -n124.6.1---
1. AWX Operator 설치
sudo mkdir -p /optcd /optAWX Operator 레포지토리 클론
git clone https://github.com/ansible/awx-operator.git최신 릴리스 태그로 체크아웃
cd awx-operatorgit checkout $(curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | jq -r .tag_name)NAMESPACE 환경 변수 설정
export NAMESPACE=ansible-awxAWX 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 $NAMESPACEAWX Pod 상태 확인
kubectl get pod -n $NAMESPACENAME                                               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          16mPod 재시작 시도(특정 pod를 삭제하여 자동으로 재시작)
kubectl delete pod <awx_pod_name> -n $NAMESPACEPod 로그 확인
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 $NAMESPACEhttp://192.168.49.2:31909Port-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 | 
 
                  
                 
                  
                 
                  
                