젠킨스, 도커, 앤서블 인스턴스 실행
sudo su - ansibleadmin
docker ps
vi /opt/devopsjob/4glapp_container.yaml
--- - hosts: docker tasks: - name: stop docker container shell: docker stop tomcat0709-con ignore_errors: yes - name: rm docker container shell: docker rm tomcat0709-con ignore_errors: yes - name: rm docker image shell: docker rmi sohyun2223/tomcat0709 ignore_errors: yes - name: create docker container shell: docker run -d --name tomcat0709-con --restart always -p 8081:8080 sohyun2223/tomcat0709cd /opt/devopsjob
ansible-playbook 4glapp_container.yaml --check
ansible-playbook 4glapp_container.yaml
▲ 나는 오류남
ansible-playbook /opt/devopsjob/4glapp_build.yaml;
sleep 20;
ansible-playbook /opt/devopsjob/4glapp_container.yaml;


그리고 젠킨스에서 빌드하여 확인
docker 인스턴스 종료
4gl-eks 인스턴스 생성 (마스터 노드와 통신할 수 있는 노드)

EKS
sudo su -
hostnamectl set-hostname eks
exec bash
clear
aws --version
(수동으로 설치하겠음)
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/install-kubectl.html
1단계: kubectl가 설치되어 있는지 확인
kubectl version --client
2단계: 설치 또는 kubectl 업데이트(Linux(AMD64))
Kubernetes 1.33
curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/1.33.0/2025-05-01/bin/linux/amd64/kubectl
실행 권한을 적용
chmod +x ./kubectl
바이너리를 PATH의 폴더에 복사
mkdir -p HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=HOME/bin:$PATH
버전 확인
kubectl version --client
https://eksctl.io/installation/
리눅스는 unix 설치와 동일
설치를 확인하면 다양한 권한이 필요함
다 주기가 힘드니까 그냥 관리자 권한을 부여하기로함

이미 관리자 권한을 부여해놓은 역할이 있으므로 해당 역할을 eks 인스턴스에 부여

다음과 같이 설치를 진행하겠음

ARCH=amd64
PLATFORM=(uname -s)_ARCH
변수 설정

파일 다운로드
curl -sLO "https://github.com/eksctl-io/eksctl/releases/latest/download/eksctl_$PLATFORM.tar.gz"
압축 풀고 압축 파일 지우기
tar -xzf eksctl$PLATFORM.tar.gz -C /tmp && rm eksctl$PLATFORM.tar.gz

install -m 0755 /tmp/eksctl /usr/local/bin && rm /tmp/eksctl
eksctl version

vpc부터 생성되는데 vpc가 기존에 5개 이상부터 돈이 나가므로 만들어질 vpc 제외 4개까지만 존재해야함
eksctl create cluster --name 4gl0710 --region ap-northeast-2 --node-type t2.small
파란색으로 나오면 현재 만들어 지고 있는 중임

AWS에서 확인하면 새로운 VPC가 만들어진것을 확인할 수 있음

EKS에서 확인하니 클러스터가 만들어져있음
그런데 버전이 1.32로 되어있긴 하지만 문제 없음

kubectl get nodes
kubectl get pod -A
설치 완료 후 확인

https://kubernetes.io/ko/docs/concepts/workloads/pods/

kubectl apply -f https://k8s.io/examples/pods/simple-pod.yaml
kubectl get pod

작업을 다 해봤으니 이제 돈많이 나가니까 지우자...
클러스터 삭제
(자동으로 다 지워진다.. 휴!)
eksctl delete cluster 4gl0710 --region ap-northeast-2
도커: 도커 이미지로 컨테이너 생성 후 외부와 연결이 바로 됨
쿠버네티스: 도커 이미지로 파드 생성 - 디플로이먼트로 감싸서 가용성을 향상 - 서비스로 외부와 연결
외부 연결 부위(포트)는 로드 밸런서와 연결 후 인증서 추가 등의 보안을 유지시키면 구색을 갖춘 서비스가 완성된다고 할 수 있음
Server B를 초기화 하시오.
이후 원하는 역할을 하나씩 가지고 3~4명의 팀원이 다음 구성을 완료하시오.
젠킨스 서버를 구성하여 상대방에게 코드 풀링 및 아티팩트 빌드, SSH 전송을 제공하시오.
앤서블 서버를 구성하고 도커 이미지 업로드 작업을 수행한 후 도커 서버 1번 및 도커 서버 2번에 도커 컨테이너 생성을 수행하시오.
도커 서버 1번으로서 앤서블 서버가 도커 컨테이너를 생성할 수 있도록 준비하시오.
도커 서버 2번으로서 앤서블 서버가 도커 컨테이너를 생성할 수 있도록 준비하시오.
개발자 역할은 임의의 팀원이 수행하고, GitHub의 코드가 자동으로 서버에 구성되도록 만드시오.
빌드 1회에 도커 서버 1번, 2번에 컨테이너가 생성되어 어플리케이션이 업로드되고 구동되도록 만드시오.
(도전 과제 : ECR까지 활용할 수 있도록 하시오.) / (모두 완료 시 역할을 바꾸어 수행)
해야하는것
1. 젠킨스, 앤서블, 도커 설치
젠킨스 설치는 아래 문서 참고하여 설치 진행
https://www.jenkins.io/doc/book/installing/linux/#red-hat-centos
젠킨스는 8080 포트를 사용하여 실행
dnf -y install wget
wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.reporpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install -y fontconfig java-17-openjdk-devel
yum install -y jenkins
yum systemctl daemon-reload
systemctl --now enable jenkins
firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload
젠킨스 플러그인 설치
github
maven integration
Deploy to container
서버에 git, maven 설치
dnf -y install git maven
git --version
mvn -v
cd
vi .bash_profileM2_HOME=/opt/maven M2=/opt/maven/bin JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.15.0.6-2.el8.x86_64 PATH=$PATH:$M2source .bash_profile
echo $PATH

java-17
/usr/lib/jvm/java-17-openjdk-17.0.15.0.6-2.el8.x86_64

mvn -v
maven-3.5.4
/usr/share/maven

mvn archetype:generate -DgroupId=com.4gl.app -DartifactId=4glapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
무료 html 템플릿 제공 사이트에서 아무거나 하나 다운로드 후 /root/4glapp/src/main/webapp/ 내에 압축 해제하여 넣기
cd /root/4glapp
git init
git add .
git commit -m "0710"
ssh-keygen -t ed25519
cat /root/.ssh/id_ed25519.pub

git remote -v
git remote remove origin
git remote add origin git@github.com:nohsohyun0128/4glmyapp.git
git push -f origin master
이제 젠킨스에서 아이템 만들어야 되는데 계속 오류뜸 못하겠다 ㅋ
