Centos7에서 쿠버네티스를 이용하여 awx를 구축하고자 한다.
서버에 어플리케이션 설치에 있어 컨테이너 기술이 더이상 선택이 아닌 필수가 되어지는 느낌이다..어쨌든
나는 아래 내용으로 3번 구축을 해봤고 다 잘 수행되었다.
yum 업데이트
yum -y update
selinux 설정해제하기
centos에서 필수 설정이다. selinux를 해제한다.
setenforce 0
/etc/selinux/config에 SELINUX=disabled로 변경
getenforce로 수행하여 disabled 확인
방화벽 해제하기
systemctl disable firewalld --now
쿠버네티스 설치&확인하기
#설치
curl -sfL https://get.k3s.io | sudo bash -
sudo chmod 644 /etc/rancher/k3s/k3s.yaml
# 서비스가 올라왔나 확인하기
systemctl status k3s.service
# 현재 노드 상태 확인
kubectl get nodes
# 버전확인
kubectl version --short
쿠버네티스에 AWX 배포하기
AWX에 설치에 필요한 jq git make 패키지를 설치한다.
sudo yum -y install jq git make
아래명령어를 수행하여 배포코드를 다운받는다.
git clone https://github.com/ansible/awx-operator.git
쿠버네티스에 awx 네임스페이스를 생성한다.
export NAMESPACE=awx
kubectl create ns ${NAMESPACE}
쿠버네티스에 기본 네임스페이스 awx로 지정한다.
kubectl config set-context --current --namespace=$NAMESPACE
awx-perator폴더로 이동한다.(아까 깃으로 받은 파일임)
cd awx-operator/
git에서 최신버전 조회 및 checkout
RELEASE_TAG=`curl -s https://api.github.com/repos/ansible/awx-operator/releases/latest | grep tag_name | cut -d '"' -f 4`
echo $RELEASE_TAG
git checkout $RELEASE_TAG
namespace 세팅 및 make
export NAMESPACE=awx
make deploy
Warning: resource namespaces/awx is missing the kubectl.kubernetes.io/last-applied-configuration annotation which is required by kubectl apply. kubectl apply should only be used on resources created declaratively by either kubectl create --save-config or kubectl apply. The missing annotation will be patched automatically.
namespace/awx configured
customresourcedefinition.apiextensions.k8s.io/awxbackups.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
awx 올라왔는지 확인
kubectl get pods -n awx
pvc 설정파일 만들기
vi편집기로 yaml파일을 생성하여 아래 내역을 넣는다.
vi public-static-pvc.yaml
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: public-static-data-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 8Gi
pvc를 생성한다.
kubectl apply -f public-static-pvc.yaml -n awx
pvc생성이 잘되었는지 확인하기
kubectl get pvc -n awx
awx instance deployment yaml파일 생성하기
vi awx-instance-deployment.yml
---
apiVersion: awx.ansible.com/v1beta1
kind: AWX
metadata:
name: awx
spec:
service_type: nodeport
projects_persistence: true
projects_storage_access_mode: ReadWriteOnce
web_extra_volume_mounts: |
- name: static-data
mountPath: /var/lib/projects
extra_volumes: |
- name: static-data
persistentVolumeClaim:
claimName: public-static-data-pvc
쿠버네티스에 인스턴스올리기
kubectl apply -f awx-instance-deployment.yml -n awx
watch명령어로 잘올라오는지 확인 status가 Running이면 성공(끝나면 ctrl+c로 모니터링 종료)
watch kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -n awx
deployment진행상황에 대한 로그명령어는 아래와 같다.(그냥 이런게 있다는 정도 확인하면 될듯.)
kubectl logs -f deployments/awx-operator-controller-manager -c awx-manager
PVC 생성내역 보기(아래와같이 3개가 떠있고 status가 bound로 되어 있으면 됨)
kubectl get pvc
awx namespace에 올라온 pod 확인하기
kubectl get pods -n awx
웹 네트워크 인터페이스 확인하기
cluster-ip가 아니라 해당 서버의 ip:30080포트로 접근해야 한다. cluster-ip는 쿠버네티스 내부 네트워크ip라고 보면된다.
kubectl get service -n awx
webUI admin 계정 패스워드생성하기
kubectl -n awx get secret awx-admin-password -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'
WEBUI 로그인하기
admin / 발급받은 패스워드로 로그인 한다.
쿠버네티스의 다양한 용어와 동작방식에 대한 공부도 필요하다는 것을 느꼈다.
참조 : https://computingforgeeks.com/how-to-install-ansible-awx-on-centos-7/
'인프라 > 앤서블(Ansible)' 카테고리의 다른 글
ansible sing a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this (0) | 2022.05.09 |
---|---|
ansible 에러 Failed to connect to the host via ssh: Permission denied (0) | 2022.05.03 |
ansible awx windows playbook example (0) | 2022.05.02 |
ansible awx windows playbook 생성 및 실행 (0) | 2022.05.01 |
ansible awx window node 설정 (0) | 2022.05.01 |
댓글