JAVA/JAVA개발자 양성과정

AWS에 젠킨스 설치하고 자동화하기 (GIT 설정 전까지)

젠킨스 설치할때 알아야하는 세가지

깃, 자바, 메이븐 버전

 

 

서버를 처음 열면 할 것

$ sudo apt update

 

도커 설치하기

Docker셋팅 🐋 — 코딩수영장 (tistory.com)

 

Docker셋팅 🐋

👩‍💻 자바 개발자 양성과정 73일차 VirtualBox에 Ubuntu 설치 후 Docker 설치하기 리눅스 - Ubuntu 인터넷 연결 여부 확인 VirtualBox, 리눅스  - Port Forwarding 리눅스 - SSH 설치 VirtualBox -..

hoyashu.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

호스는 도커가 설치된 서버, 필자의 경우 AWS EC2  왓스서버를 말하는 것

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 설치

관리 &gt; 플러그인 관리

deploy를 쳐서 검색해고 체크한다음 가장 좌측 버튼 클릭

성공하면 설치 완료

728x90
반응형