Maven : Java 프로그램을 빌드
Spring ............┐ 프레임워크
Spring-boot ┘
Java 소스 => 빌드 ./mvnw package
.jar : 내장 톰캣
.war : 별도의 톰캣 필요
Petclinic => 빌드 => .jar => 배포됨 (톰캣 필요없음)
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
sudo ls /opt/tomcat/webapps/
ROOT docs examples host-manager manager
sudo cp jenkins.war /opt/tomcat/webapps/
sudo ls /opt/tomcat/webapps/ 파일확인
ROOT docs examples host-manager manager => jenkins.war 추가됨
브라우저에 http://IP주소:8080/jenkins
■ 젠킨스만을 위한 아파치 톰캣 서버 설정
cd /tmp
-# 젠킨스 앱 다운로드
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
-# 다운 받은 파일 이름 변경
sudo mv jenkins.war ROOT.war
-# root 사용자로 전환해 /opt/tomcat/webapps 폴더 안의 모든 내용을 삭제한다.
sudo su -
cd /opt/tomcat/webapps
sudo rm -r *
-# 앞서 생성한 ROOT.war을 /opt/tomcat/webapps 폴더로 이동시킨다.
sudo mv /tmp/ROOT.war /opt/tomcat/webapps/
-# 해당 폴더를 살펴보면 ROOT 폴더가 자동으로 생성된 것을 볼 수 있다.
drwxr-x--- 11 root root 4096 5월 29 23:13 ROOT
-rw-rw-r-- 1 ubuntu ubuntu 94928325 5월 5 00:56 ROOT.war
-# 젠킨스 접속
http://IP:8080
=================================
■ 도커에서 젠킨스 실행하기
sudo apt-get update
-# JAVA11 설치
-# sudo apt install -y openjdk-11-jdk
sudo apt install -y default-jre
-# root로 전환
sudo su -
-# Docker 폴더 생성
mkdir ~/my-jenkins
cd ~/my-jenkins
-# 젠킨스 이미지를 베이스로 도커를 설치하기 위해 Dockerfile 생성
vim Dockerfile
FROM jenkins/jenkins:lts
USER root
-# install docker
RUN apt-get update && \
apt-get -y install apt-transport-https \
ca-certificates \
curl \
gnupg2 \
zip \
unzip \
software-properties-common && \
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "ID")/gpg > /tmp/dkey; apt-key add /tmp/dkey && \ add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/(. /etc/os-release; echo "ID") \(lsb_release -cs) \
stable" && \
apt-get update && \
apt-get -y install docker-ce
-# docker compose 파일 작성
vim docker-compose.yml
version: '3.7'
services:
jenkins:
build:
context: .
container_name: jenkins
user: root
privileged: true
ports:
-# docker, docker-compose 설치
snap install docker
apt install docker-compose -y
-# docker version 확인
docker --version
Docker version 20.10.12, build 20.10.12-0ubuntu2~20.04.1
-# docker-compose version 확인
docker-compose --version
docker-compose version 1.25.0, build unknown
-# docker image 확인
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
-# 젠킨스 컨테이너 생성
docker-compose up -d
docker-compose build
-# 설치된 docker image 확인
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-jenkins_jenkins latest eb9e3d0cdb33 23 seconds ago 1.06GB
jenkins/jenkins lts cb535f2a7054 5 days ago 464MB
-# 실행중인 docker 확인
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
606542aff226 my-jenkins_jenkins "/usr/bin/tini -- /u…" 43 seconds ago Up 42 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tc
-# 젠킨스 접속
http://IP주소:8080
-# 초기 패스워드
docker exec -it jenkins /bin/bash
-# 젠킨스 초기 패스워드
cat /var/jenkins_home/secrets/initialAdminPassword
■ 자바 설치
■ maven 설치
$ sudo apt install maven
$ vim ~/.bashrc
export MVN_HOME=/usr/share/maven
export PATH=MVN_HOME/bin
$ source ~/.bashrc
$ echo $MVN_HOME
/usr/share/maven
젠킨스관리 - global - add jdk
Name : JDK11
Install automatically 체크해제
/usr/lib/jvm/java-11-openjdk-amd64
add maven
Name : M3
Install automatically 체크해제
/usr/share/maven
저장
ssh-keygen -t rsa -b 4096 -C "cjstkehddn11@naver.com"
cd ~/.ssh
cat id_rsa.pub 해서 나온값 git hub ssh에 등록
~/.ssh디렉토리에서 ssh -T git@github.com 하면 인증완료
==============================
■ 젠킨스와 소나의 통합
소나큐브 : 애플리케이션의 코드 품질을 관리하는 오픈소스 도구
■ 소나큐브 설치
OpenJDK 설치
apt 업데이터
$ sudo apt-get update -y && sudo apt-get upgrade -y
openjdk 설치
$ sudo apt-get install openjdk-11-jdk -y
환경변수 설정
$ vim ~/.bashrc
.bashrc 끝 부분에 추가
export JAVA_HOME=(dirname $(dirname $(readlink -f $(which java)))) export PATH=PATH:$JAVA_HOME/bin
환경 변수 설정 적용
$ source ~/.bashrc
환경변수 설정 내용 확인
$ echo $JAVA_HOME
■ PostgreSQL 설치
OS 확인
$ cat /etc/os-release
PostgreSQL 현재 패키지 버전 확인
$ sudo apt install wget ca-certificates
PostgreSQL 저장소 추가
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ lsb_release -cs
-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
$ sudo apt install wget ca-certificates
$ wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
PostgreSQL 설치
$ sudo apt-get update -y # 오류날 시 다음 줄 그냥 진행
$ sudo apt show postgresql # 버전 정보 확인
$ sudo apt-get install postgresql-13 -y # PostgreSQL 13 버전
또는
최신 버전 설치
$ sudo apt-get install postgresql postgresql-contrib
설치 확인
$ service postgresql status
접속 확인
$ sudo su - postgres
$ psql
postgres=# \conninfo
You are connected to database "postgres" as user "postgres" via socket in "/var/run/postgresql" at port "5432".
postgres=# \q
사용자 생성
postgres=# create user sonar;
사용자 Role 설정
postgres=# alter role sonar with createdb;
사용자 비밀번호 설정
postgres=# alter user sonar with encrypted password 'sonar';
생성한 사용자 정보 조회
postgres=# \du
Database 생성
postgres=# create database sonarqube owner sonar;
Privileges 설정
postgres=# grant all privileges on database sonarqube to sonar;
생성한 Database 조회
postgres=# \l
$ exit
$ exit
■ PostgreSQL 설정
외부 접속 설정
$ sudo vim /etc/postgresql/13/main/postgresql.conf
주석 해제 후 127.0.0.1을 ''로 수정
listen_addresses = ''
모든 사용자 접속 가능하게 설정 - 비밀번호 사용
$ sudo vim /etc/postgresql/13/main/pg_hba.conf
...
IPv4 local connections:
host all all 0.0.0.0/0 password
service 설정 반영 및 postgresql 재시작
$ sudo systemctl daemon-reload
$ sudo systemctl restart postgresql.service
■ SonarQube 설치
다운로드, wget [복사한 링크]
$ wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.2.46101.zip
zip파일 압축 해제를 위한 unzip 설치
$ sudo apt-get install unzip
zip파일 압축 해제
$ unzip sonarqube-8.9.2.46101.zip
■ SonarQube 설정
-# 주석 해제 후 url 지정
sonar.jdbc.url=jdbc:postgresql://{VM IP}/sonarqube
■ OpenJDK 경로 설정
■ Max map count 설정
-# profile 수정
$ sudo vim /etc/profile
-# 맨 밑에 추가
sudo sysctl -w vm.max_map_count=262144
-# 수정 내역 적용
$ source /etc/profile
■ 시작
-# shell 파일 존재하는 디렉토리로 이동
$ cd sonarqube-8.9.2.46101/bin/linux-x86-64
-# SonarQube 서비스 상태 확인
$ ./sonar.sh status
-# SonarQube 서비스 시작
$ ./sonar.sh start
sudo ufw allow 9000/tcp // 9000번 포트 방화벽 추가