https://www.jenkins.io/doc/book/installing
페이지 참조하여 설치
wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
자바17로 설치 진행하겠음
yum install fontconfig java-17
dnf -y install java-17-amazon-corretto
yum install jenkins
systemctl daemon-reload
systemctl --now enable jenkins
인스턴스 퍼블릭ip:8080 으로 웹으로 젠킨스 접속

GitHub
Maven Integration
Deploy to container
GitHub : 코드 변경 자동 감지, 빌드 트리거, 커밋/이슈 링크, 상태 피드백
Maven Integration : Java 빌드 자동화, 의존성 관리, 빌드 산출물/테스트 리포트 관리, CI/CD 통합
Git : 코드의 이력 관리, 버전 관리, 팀 협업 (commit, push 등)
Maven : Java 프로젝트 빌드, 의존성 관리, 테스트, 패키징(.war 등)
Deploy to container : Maven으로 빌드된 .war 파일을 WAS(예: Tomcat)에 자동 배포
Git
Maven
Deploy to container 플러그인(Jenkins)
yum install git
git --version
https://maven.apache.org/download.cgi
최신 버전으로 설치
cd /opt
wget https://dlcdn.apache.org/maven/maven-3/3.9.11/binaries/apache-maven-3.9.11-bin.tar.gz
tar xfz apache-maven-3.9.11-bin.tar.gz
mv apache-maven-3.9.11 maven
cd /opt/maven/bin
./mvn -v
전역번수로 mvn을 사용하기 위해 /root/.bash_profile 환경변수 파일에 내용을 추가
cd
vi .bash_profileM2_HOME=/opt/maven M2=/opt/maven/bin JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64 PATH=$PATH:$M2source .bash_profile
echo $PATH
mvn -v








우선 톰캣을 설치하려면 java17이 설치되어 있어야함
나는 jenkins와 같은 인스턴스에서 포트를 변경해서 실행하겠음
톰캣 설치 링크
https://tomcat.apache.org/download-11.cgi
cd /opt
wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.9/bin/apache-tomcat-11.0.9.tar.gz
tar xfz apache-tomcat-11.0.9.tar.gz
mv apache-tomcat-11.0.9 tomcat
vi /opt/tomcat/conf/server.xml
/opt/tomcat/bin/startup.sh

find / -name "context.xml"
vi /opt/tomcat/webapps/host-manager/META-INF/context.xml
해당 부분 주석 처리<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

vi /opt/tomcat/webapps/manager/META-INF/context.xml
해당 부분 주석 처리<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

vi /opt/tomcat/conf/tomcat-users.xml
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="1234" roles="manager-gui,manager-script,manager-jmx,manager-status"/> <user username="gui" password="1234" roles="manager-gui"/> <user username="jenkins" password="1234" roles="manager-script"/>

/opt/tomcat/bin/shutdown.sh
/opt/tomcat/bin/startup.sh


용량줄여잇!

웹에서 무료 css 파일을 다운받아서 해당 파일을 movaxterm을 사용해서 파일 집어넣기
ssh-keygen -t ed25519
cat /root/.ssh/id_ed25519.pub
나온 내용을 git > ssh 에 ssh 키 추가
mvn archetype:generate -DgroupId=com.test1 -DartifactId=test1 -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
/root/test1/src/main/webapp 경로 내에 css 파일 집어넣기

cd /root/test1
git init
git add .
git commit -m "0722-1" ← 연결된 깃정보가 없어서 오류가 발생

나의 git 정보 입력 후 다시 커밋
git config --global user.email "sohyun2223@gmail.com"
git config --global user.name "nohsohyun0128"
git commit -m "0722-1"

git push origin master


사실 WAR/EAR files는 전체경로에서 war 파일을 찾으라고 **/.war를 입력했는데 못찾고 오류가 나서 강제로 파일을 입력했음
(실제 경로 : /var/lib/jenkins/workspace/아이템명/target/아이템명.war)
URL은 퍼블릭 사용 시 계속 변하기 때문에 변하지 않는 프라이빗 IP를 입력하였음

톰캣에 정상적으로 서버가 올라온것을 확인


용량 총량이 30GB 이상이면 꺼도 돈나간다는 소리

dnf -y install docker
systemctl --now enable docker
systemctl status docker
docker -v
docker pull tomcat:latest
docker images ← docker pull 해서 도커 다운로드한 이미지들을 확인할 수 있음

docker run -d --restart always -p 8082:8080 tomcat:latest
docker ps ← 현재 실행중인 도커 확인


docker exec -it 7fc2 /bin/bash ← 도커 내부로 접속하여 확인
ls webapps/ ← 실행파일이 없어서 오류가 발생하는것을 확인
ls webapps.dist/ ← 임시 실행파일이 예제처럼 존재하는것을 확인하였고 해당 파일을 실제 실행 디렉터리에 복붙하여 오류페이지를 안띄울거임
cp -R webapps.dist/* webapps
임시 톰캣페이지가 나타나는것을 확인
또한 실제 톰켓 경로는 /usr/local/tomcat
실제 실행파일이 위치하는 경로는 /usr/local/tomcat/webapps
/usr/local/tomcat/webapps.dist가 예시 파일이 존재하는 경로라는 사실을 알 수 있음

그렇다면 tomcat을 설치를 dockerfile 문서로 작성한 후 docker로만 빌드하여 docker container로 생성하여 실습해보겠음
vi Dockerfile
FROM tomcat:latest
RUN cp -R /usr/local/tomcat/webapps.dist/* /usr/local/tomcat/webapps
docker build -t demotomcat .
docker images
나의 도커 허브에는 올라가지 않고 로컬에 현재 이미지가 생성된것을 확인할 수 있음

docker run -d --restart always -p 8083:8080 demotomcat
8083포트로 접속했을 때 이미지가 바로뜨면서 오류페이지가 안나는것을 확인
이렇게 도커 이미지를 생성하는 실습을 진행함

그렇다면 내가 만든 demotomcat을 나의 도커 허브에 업로드 해보겠음
도커 자체 계정으로 만든게 아니라 연결계정으로 생성했다면 설정에서 암호를 따로 변경해줘야함

docker login
해당 명령어 입력 후 나의 도커 허브 계정으로 로그인

docker images
업로드 하기 위해서는 내가 만든 도커 이미지의 이름과 태그를 확인해야함
내가 업로드하기 위해서는 docker push 내ID/이미지이름:태그 형식으로 업로드 해야하는데 현재는 내가 생성한것은 내ID가 포함되어 있지 않기 때문에 기존에 생성(빌드)한 이미지에 새로운 태그를 추가해야함
docker tag sohyun2223/demotomcat:latest
docker push sohyun2223/demotomcat:latest

나의 도커허브에 정상적으로 이미지가 올라간것을 확인

확인했으니 우선 도커 컨테이너를 지워보자
docker ps
docker stop bold_ishizaka
docker stop laughing_sammet
docker rm bold_ishizaka
docker rm laughing_sammet
이름이나 container id를 사용해서 지울 수 있음

지금까지는 이 내용을 수동으로 실습해봤고 이제 자동으로 jenkins을 사용해서 처리하는걸 작업해볼예정임
나는 test2로 실행하겠음
Publish Over SSH 플러그인 설치 필요


