젠킨스 설치할때 알아야하는 세가지
깃, 자바, 메이븐 버전
서버를 처음 열면 할 것
$ sudo apt update
도커 설치하기
Docker셋팅 🐋 — 코딩수영장 (tistory.com)
Docker을 이용하여 Jenkins 컨테이너 설치하기
1-1. Jenkins 이미지 내려 받기
//다운받아오기
$ sudo docker pull jenkins/jenkins
//권한 변경
$ sudo -i
//잘 다운 받아왔는지 확인하기
# docker images
1- 2. Jenkins 이미지를 컨테이너로 실행하기
# docker run -d -p 8080:8080 -v /jenkins:/var/jenkins_home --name jenkins -u root jenkins/jenkins
1-3. Jenkins 브라우저로 접속하여 설치작업 계속하기.
8080포트의 주소를 켜보면 젠킨스 화면이 보인다.
비밀번호는 위에 빨간색 글자의 경로에서 확인이 가능한데, 더 쉽게 찾는 방법이 있다.
# docker logs jenkins
1-4. 플러그인 설치
젠킨스에 JAVA 설정하기
자바는 젠킨스 머신안에 있다. 밖에도 있긴 한데 그건 왓스서버에 있는 거라 당장은 필요없다.
1. 제킨스 내 자바 경로 가져오기
// 실행중인 컨테이너 확인
root@ip-172-31-39-199:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
60fbb71104e8 jenkins/jenkins "/sbin/tini -- /usr/…" 30 minutes ago Up 30 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp jm_jenkins
// 컨네이너 접속
root@ip-172-31-39-199:~# docker exec -it jenkins bash
//java찾기
root@60fbb71104e8:/# echo $JAVA_HOME
/opt/java/openjdk
젠킨스 내 자바는 /opt/java/openjdk 인 것을 확인 했다.
2. 젠킨스에 설정해주기
젠킨스에 Maven 설정하기
젠킨스에는 maven이 자동으로 설치되어있지 않다.
root@60fbb71104e8:/# which mvn
그래서 위 명령어를 실행해도 아무런 결과가 뜨지 않는다.
1. 젠킨스에 maven을 설치해준다.
root@60fbb71104e8:/# apt update
root@60fbb71104e8:/# apt install maven
2. 메이븐 설치 경로 확인
root@60fbb71104e8:/# mvn --version
Apache Maven 3.6.3
name에 적은 이름은 추후, 파이프라인을 만들때 사용해야하는 이름이다.
왜냐하면, 파이프라인은 메이븐의 툴을 통해서 작동되기 때문이다.
파이프 라인 예시
pipeline {
agent any
tools {
maven "maven" <= 여기!!!!!
}
stages {
stage("git Pull"){
steps {
git branch: 'main', changelog: false, credentialsId: 'personal-access-token', poll: false, url: 'https://github.com/gitinstructor/springboot-restful-membership.git'
}
}
stage("Build"){
steps{
sh "mvn -Dmaven.test.failure.ignore=true -N -f SpringBootRestfulMembership/pom.xml clean package"
}
}
stage("Deploy"){
steps {
deploy adapters: [tomcat9(credentialsId: 'tomcat-admin-token', path: '', url: 'http://ec2-13-209-15-11.ap-northeast-2.compute.amazonaws.com/')], contextPath: '/', onFailure: false, war: '**/*.war'
}
}
}
젠킨스에 GIT 설정하기
1. 젠킨스 내에 저장된 git을 찾는다.
root@60fbb71104e8:/# which git
/usr/bin/git
2. git에 프로젝트 전용으로 사용 할 레파지토리를 만든다.
tomcat을 이용한 자동 배포 환경 구축
1. 왓스에 Tomcat설치하기
$ wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
// /opt/tomcat폴더 만들기
$ sudo mkdir /opt/tomcat
// apache-tomcat-9.0.56.tar.gz를 /opt/tomcat/에 압춣풀기
$ sudo tar -xf apache-tomcat-9.0.56.tar.gz -C /opt/tomcat/
//목록조회
$ ls
apache-tomcat-9.0.56.tar.gz
// /opt/tomcat/apache-tomcat-9.0.56를 /opt/tomcat/latest로 단축하여 사용하겠다는 명령어
$ sudo ln -s /opt/tomcat/apache-tomcat-9.0.56 /opt/tomcat/latest
// /etc/systemd/system/tomcat.service 파일 에디터 열기 (Group 과 user를 사용하지 않을 거라 지웠다.)
$ sudo nano /etc/systemd/system/tomcat.service
// 편집한 설정파일 반영
$ sudo systemctl daemon-reload
// 관리자 모드로 전환
$ sudo -i
// /opt/tomcat/latest로 이동 (아까 ln명령어로 줄였음)
# cd /opt/tomcat/latest
// /opt/tomcat/latest 경로 목록 조회
/opt/tomcat/latest# ls
// /opt/tomcat/latest/conf 경로 목록 조회
/opt/tomcat/latest/conf# ls
// server.xml 에디터 열기 (서버포트를 8080->80 수정했다.)
/opt/tomcat/latest/conf# nano server.xml
//관리자 모드 해제
exit
//톰캣이 정상적으로 설치/작동 되는지 확인
$ sudo systemctl status tomcat
//부팅되었을때 tomcat이 자동으로 실행하도록 설정한다
$ sudo systemctl enable tomcat
tomcat.service에 넣을 것
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms1024M -Xmx2048M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
젠킨스 설치후에 진행
// 관리자 권한으로 변경
$ sudo -i
// /opt/tomcat/latest 경로 이동
# cd /opt/tomcat/latest
// /opt/tomcat/latest/webapps 경로 이동
/opt/tomcat/latest# cd webapps
// /opt/tomcat/latest/webapps 파일 목록 확인
/opt/tomcat/latest/webapps# ls
ROOT docs examples host-manager manager
// /opt/tomcat/latest/webapps/manager 경로 이동
/opt/tomcat/latest/webapps# cd manager
// /opt/tomcat/latest/webapps/manager 파일 목록 확인
/opt/tomcat/latest/webapps/manager# ls
META-INF WEB-INF css images index.jsp status.xsd xform.xsl
// /opt/tomcat/latest/webapps/manager/META-INF 경로 이동
/opt/tomcat/latest/webapps/manager# cd META-INF
// /opt/tomcat/latest/webapps/manager/META-INF 파일 목록 확인
/opt/tomcat/latest/webapps/manager/META-INF# ls
context.xml
// context.xml 에디터 열기
/opt/tomcat/latest/webapps/manager/META-INF# nano context.xml
context.xml 에디터에서 빨간 부분 추가
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|172.17.0.2" />
172.17.0.2는 젠킨스의 IP인데, 젠킨스가 Tomcat에 접속해야해서 접속 ip를 추가해준 것이다.
1-1. 설치된 젠킨스의 ip확인 하는법
$ sudo docker inspect jenkins
2. 톰캣 관리자 ID/PW설정
//폴더 이동
/opt/tomcat/latest/webapps/manager/META-INF# cd ..
/opt/tomcat/latest/webapps/manager# cd ..
/opt/tomcat/latest/webapps# cd ..
/opt/tomcat/latest# cd conf
//server.xml 에디터 열기 (role추가)
/opt/tomcat/latest/conf# nano tomcat-user.xml
server.xml 에디터서는 아래 내용을 추가해준다.
<role rolename="manager-script"/>
<user username="admin" password="javatomcat" roles="manager-script"/>
//톰캣 서버 재시작
/opt/tomcat/latest/conf# systemctl restart tomcat
3.Jenkins Plugin 설치