본문 바로가기

KOSA 클라우드 솔루션즈 아키텍트 양성과정

[7.29] CI/CD 복습

--- 원격 저장소 마이그레이션(Github에서 Gitlab으로 마이그레이션)

mkdir git-migration
git clone --mirror https://github.com/hali-linux/hello-world.git git-migration
cd git-migration/
git push -uf http://gitlab.alibaba9.shop/johnlee/dev-site --all

github의 내용을 윈도우로 가져왔다가 git lab으로 옮길 것
git-migration 폴더 만든 후 해당 폴더로 git hub의 내용 clone

 

clone한 내용들 들어가 있음

 

master 브랜치로 push


--- 젠킨스 설치 https://www.jenkins.io/download/

 

$ 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
=> jenkins를 위한 저장소가 맞다고 검증하기 위한 키를 가져오는 명령어
# yum install -y fontconfig java-11-openjdk
yum으로 fontconfig를 설치하고 java11은 yum을 통해 설치할 수 없기에 가이드가 출력됨

# amazon-linux-extras install -y java-openjdk11
# yum install -y jenkins
# systemctl enable --now jenkins
enable 전에는 임시패스워드 없는 상태
# cat /var/lib/jenkins/secrets/initialAdminPassword # 패스워드 수정
enable 후 임시 패스워드 확인 가능
 

Jenkins download and deployment

Jenkins download and deployment The Jenkins project produces two release lines: Stable (LTS) and regular (Weekly). Depending on your organization's needs, one may be preferred over the other. See the links below for more information and recommendations abo

www.jenkins.io

 

 

--- Install Git on Jenkins Instance

# hostnamectl set-hostname jenkins-server
# yum install -y git

--- Jenkins 접속

임시 패스워드 입력
해당 창 닫아주기

 

비밀번호와 타임존 변경을 위해 admin에서 설정 클릭
패스워드 변경

 

타임존 설정 후 Apply와 Save


--- Enter an item name

uptime은 서버가 가동된 시간을 보여주는 명령어

 

지금 빌드 클릭


--- git lab과 jenkins를 연동하기 위한 플러그인 설치

Jenkins 관리
플러그인 관리
GitLab 플러그인 Install without restart

 

플로그인 설치 후 global tool configuration에서 연동 작업 필요

 

jenkins에 git이 설치되어 있어서, 애러 메시지 안 나옴 이름만 Git으로 바꾸고 Apply, Save


--- PullCodeFromGitLab

 

git lab을 설치하고 나니 Freestyle project 외 2개의 프로젝트가 더 생김
이후 지금 빌드

 

cd /var/lib/jenkins/workspace/PullCodeFromGitLab로 가서 잘 pull해 왔는지 확인하기


--- 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
=> 추출하고, 추출하는 과정 보여주고, gz파일 압축 풀고, 그러한 작업의 대상인 파일은 apache-maven-3.8.6-bin.tar.gz 
# mv apache-maven-3.8.6 maven
=> 압축풀었을 때 나오는 폴더 이름이 너무 기니까 간단한 이름으로 변경
# cd maven
# cd bin
# 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
=> 내가 설정한 .bash_profile  파일을 적용하는 명령어
# echo $PATH
경로 적용 전과 후 확인 가능

# mvn -v

--- Maven 프로젝트 만들기(Maven이 git lab의 소스코드를 가져와서 빌드하는지 확인하는 과정)

/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-1.amzn2.0.3.x86_64 경로 입력
이후 Apply 와 Save, 지금 빌드하기
빌드한 내용 확인 가능

 

gui 환경에서도 빌드된 내용 확인 가능


--- Tomcat 서버 설치 https://tomcat.apache.org/download-90.cgi

 

# hostnamectl set-hostname tomcat-server
# 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
만약 tocmat 버전이 변경되었다면 download 사이트의 core 항목에서 참고하면 됨

# tar -xvzf apache-tomcat-9.0.65.tar.gz
# mv apache-tomcat-9.0.65 tomcat
# cd tomcat/bin/
# ./startup.sh
=> tomcat을 기동시키는 명령어
# 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" /> -->
=> tomcat에서 manager app에 접속하기 위해 필요한 권한 설정과 관련한 셋팅
# cd tomcat/bin/
# /opt/tomcat/conf
# 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="kosa0401" roles="manager-gui, manager-script, manager-jmx, manager-status"/>
<user username="deployer" password="kosa0401" roles="manager-script"/>
<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의 연동

 

manage credentials

 

Add Credentials, name: delpoyer

 


--- Build and Deploy job

'KOSA 클라우드 솔루션즈 아키텍트 양성과정' 카테고리의 다른 글

[7.28] Jenkins Build, Git-Lab  (0) 2022.07.28
[7.27] Jenkins  (0) 2022.07.28
[7.26] Git lab  (0) 2022.07.26
[7.25] 참고  (0) 2022.07.26
[7.22] kubernetes(EKS에서 Deployment.yaml 실행)  (0) 2022.07.22