0727[jenkins,tomcat]

망지·2022년 7월 27일
1

📌CI/CD


레드햇

aws delivery 에는 수동부분이 있음.

📌 Jenkins

📙 AWS 인스턴스 생성

이름: jenkins-server
이미지 : 아마존 리눅스2
유형 : t2.micro
키페어 : 생성해둔 키페어
네트워크 : MY-VPC
서브넷 : 퍼블릭 2C
보안그룹 새로생성
이름: DEV-SG
SSH, HTTP, 사용자 지정TCP;포트번호 8080-9000, 모든 ICMP - IPv4
-> 위치무관으로 열기
=> 인스턴스 시작

📙 도메인 할당

생성한 인스턴스의 퍼블릭 IP를 값으로 레코드 생성.

📙 CLI환경으로 진입(mabaxterm)

✔️ root 사용자로 변경

[ec2-user@ip-10-14-40-70 ~]$ sudo su -

✔️ 젠킨스 설치

# 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.key
# yum install -y fontconfig java-11-openjdk
# amazon-linux-extras install -y java-openjdk11
# yum install -y jenkins
# systemctl enable --now jenkins
# cat /var/lib/jenkins/secrets/initialAdminPassword # 패스워드 수정

📙 jenkins 접속

✔️앞서 생성한 도메인 , 포트번호 8080으로 접속.

위에 cat명령어 통해서 받은 패스워드 입력하고, continue

✔️오른쪽 상단 adimin- 설정 - 패스워드 변경, time zone 맞춰주기.

-> 에러(403) 뜰 경우 ID : admin , 비밀번호 입력해서 재 로그인

📙 프로젝트 만들기

✔️ 대시보드 - 새로운 item - 이름 : HelloWorldJob - ok (Freestyle)

✔️ build; play. 실행

✔️ 콘솔출력

📙 git hub 플러그인 설치

✔️ 젠킨스 관리 - 플러그인 관리

✔️설치가능 - github 검색 후 체크, install without restart - 설치 후 메인페이지로 돌아가기.

📙 git - Global Tool Configuration

젠킨스 관리 - Global Tool Configuration


✔️git 설치, 추가 셋팅

# yum install -y git
# hostnamectl set-hostname jenkins-server
# exit
$ sudo su -

->오류 없어짐 , name Git으로 변경 , 하단에 apply, save

📙 Pull code from github

✔️ 새로운 ITEM - 이름 : PullCodeFromGitHub - Freestyle project - OK

✔️ 설명 : Pull Code From GitHub - 소스코드 관리 : Git; Repository URL : https://github.com/hali-linux/hello-world.git - apply, 저장
✔️ 콘솔보기 - 콘솔출력

[root@jenkins-server ~]# cd /var/lib/jenkins/workspace/

[root@jenkins-server workspace]# ll
total 0
drwxr-xr-x 2 jenkins jenkins   6 Jul 27 01:40 HelloWorldJob
drwxr-xr-x 5 jenkins jenkins 163 Jul 27 02:17 PullCodeFromGitHub

📌 maven

📙 maven 설치

https://maven.apache.org/install.html

최신버전 링크 확인

# cd /opt
# wget https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
# tar -xvzf apache-maven-3.8.6-bin.tar.gz
# mv apache-maven-3.8.6 maven
# cd maven
# cd bin
# ls -> mvn이 메이븐 파일
# cd ~
# find / -name java-11*

# vi .bash_profile
M2_HOME=/opt/maven
M2=/opt/maven/bin
JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.amzn2.0.3.x86_64
# User specific environment and startup programs

PATH=$PATH:$HOME/bin:$JAVA_HOME:$M2_HOME:$M2
# echo $PATH
# source .bash_profile
# echo $PATH
# mvn -v

✔️웹 jenkins - Jenkins 관리 - 플러그인 관리 - 설치가능 ; maven검색 ; maven Integration체크 - install without restart - 메인페이지로 돌아가기

✔️Jenkins 관리 - Global Tool Configuration - Add JDK

✔️ 하단으로 내려서 ,Add Maven - 이름 : maven-3.8.6 - MAVEN_HOME : /opt/maven

📙 war파일 생성

✔️대시보드 - 새로운 item - 이름 : FirstMavenProject - Maven project

✔️설명 : First Maven Project - 소스코드 관리 : Git ; URL : https://github.com/hali-linux/hello-world.git - Build ; Goals and options : clean install - apply , save

✔️ FisrtMavenProject-지금빌드 클릭 - #1 - console output

✔️ 빌드 완료 후 CLI에서 확인


# timedatectl set-timezone Asia/Seoul

[root@jenkins-server ~]# cd /var/lib/jenkins/workspace/FirstMavenProject/
[root@jenkins-server FirstMavenProject]# ll
total 28
-rw-r--r-- 1 jenkins jenkins  130 Jul 27 03:07 Dockerfile
-rw-r--r-- 1 jenkins jenkins 5970 Jul 27 03:07 pom.xml
-rw-r--r-- 1 jenkins jenkins    1 Jul 27 03:07 README.md
-rw-r--r-- 1 jenkins jenkins  479 Jul 27 03:07 regapp-deploy.yml
-rw-r--r-- 1 jenkins jenkins  195 Jul 27 03:07 regapp-service.yml
drwxr-xr-x 4 jenkins jenkins   46 Jul 27 03:08 server
-rw-r--r-- 1 jenkins jenkins    6 Jul 27 03:07 test.tml
drwxr-xr-x 4 jenkins jenkins   46 Jul 27 03:08 webapp

[root@jenkins-server FirstMavenProject]# cd webapp/
[root@jenkins-server webapp]# ls
pom.xml  src  target
[root@jenkins-server webapp]# cd target
[root@jenkins-server target]# ll
total 556
drwxr-xr-x 2 jenkins jenkins     28 Jul 27 12:08 maven-archiver
drwxr-xr-x 2 jenkins jenkins      6 Jul 27 12:08 surefire
drwxr-xr-x 5 jenkins jenkins    105 Jul 27 12:08 webapp
-rw-r--r-- 1 jenkins jenkins 568794 Jul 27 12:08 webapp.war


✔️ GUI - 프로젝트 - 작업공간 - webapp

✔️ target - war 파일 확인

📌 tomcat 서버

✔️ AWS 인스턴스 시작 - 이름 : tomcat-server
이미지 : 아마존 리눅스2
유형 : t2.micro
키페어 : 생성해둔 키페어
네트워크 : MY-VPC
서브넷 : 퍼블릭 2A
보안그룹: DEV-SG
고급세부정보 사용자 데이터 :

#!/bin/bash
timedatectl set-timezone Asia/Seoul

=> 인스턴스 시작
✔️ 도메인 레코드 생성

✔️ 도메인 이용하여 CLI로 진입(mobaxterm), date 확인

✔️ root 계정 진입 및 호스트 네임 바꿔주기.

[ec2-user@ip-10-14-4-246 ~]$ sudo su -
[root@ip-10-14-4-246 ~]# hostnamectl set-hostname tomcat-server
[root@ip-10-14-4-246 ~]# exit
logout
[ec2-user@ip-10-14-4-246 ~]$ sudo su -
Last login: Wed Jul 27 12:24:38 KST 2022 on pts/0
[root@tomcat-server ~]#

✔️ tomcat 설치
https://tomcat.apache.org/download-90.cgi

# amazon-linux-extras install -y java-openjdk11
# cd /opt
# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
# tar -xvzf apache-tomcat-9.0.65.tar.gz
# mv apache-tomcat-9.0.65 tomcat
# cd tomcat/bin/
# ./startup.sh # tomcat 기동

✔️ 주소 : 8080으로 웹브라우저로 진입


->403 해결해야함

# cd /opt/tomcat
# 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" /> -->


설정완료 후 로그인 창이 뜨는 모습. -> 로그인 정보 설정 필요

# cd tomcat/bin/
# ./shutdown.sh
# ./startup.sh
# /opt/tomcat/conf
# vi tomcat-users.xml ## 하단에 아래 명령어 붙여넣기
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="kosa0401" roles="manager-gui, manager-script, manager-jmx, manager-status"/>
<user username="deployer" password="kosa0401" roles="manager-script"/> ## jenkins
<user username="tomcat" password="kosa0401" roles="manager-gui"/>

# ln -s /opt/tomcat/bin/startup.sh /usr/local/bin/tomcatup ##톰켓 실행 심볼릭 링크 설정
# ln -s /opt/tomcat/bin/shutdown.sh /usr/local/bin/tomcatdown ##톰켓 종료 심볼릭 링크 설졍 
# tomcatdown ##톰켓 끄기
# tomcatup ## 톰켓 켜기

📙 jenkins tomcat설치

✔️ jenkins GUI, jenkins관리 - 플러그인 관리 - 설치가능 - deploy to container 검색 - 체크하고, install without restart - 설치 다 되면 메인페이지로 돌아가기

✔️ jenkins관리 - manage Credentials - jenkins클릭 - global credential클릭 - ADD credential - 위에서 설정한 username, password기입 (manager-script) - ID , Description 자유롭게 기입(바깥에서 보여지는 식별자) - create

✔️ 메인 대시보드 - 새로운 ITEM - 이름 : BuildAndDeployjob - maven project - 생성 - 설명 : Build code with help of maven and deploy it on tomcat server

✔️소스코드 관리 : Git ; URL : https://github.com/hali-linux/hello-world.git

✔️ Build; Goald and options : clean install

✔️ 빌드 후 조치 ; 빌드 후 조치 추가 : Deploy war/ear to a container ; WAR/EAR files: **/*.war - Add continer : Tomcat 9.x remote - credentials; tomcat_deployer - tomcat URL :
http://tomcat.lovemj.shop:8080/ - apply ,저장

📙✔️✏️📢⭐️📌

📌 기타

⭐️ gitlab

메가존에서 요청한 교육과정

⭐️ 젠킨스 접속시 8080포트로 접속하는 이유

profile
꾸준히, 차근차근

0개의 댓글