GitLab, Jenkins 설치

Moon's DevOps·2023년 6월 21일
0

CI/CD

목록 보기
1/4

Jenkins 설치

apt-get update
-> apt-get update

sudo apt-get install -y openjdk-8-jdk
-> openjdk 8 설치 원하는 버전으로 설치가능

wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
OK
-> jenkins 저장소 key 다운로드

echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/source.list.d/jenkins.list

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FCEF32E745F2C3D5

sudo apt-get install jenkins
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package jenkins is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'jenkins' has no installation candidate

이런 오류가 발생하면

sudo vi /etc/apt/sources.list

deb https://pkg.jenkins.io/debian-stable binary/ -> 추가

sudo apt-get install jenkins

sudo systemctl daemon-reload
sudo systemctl start jenkins
sudo systemctl status jenkins

-------------------------------------------------------

Jenkins 삭제

sudo systemctl stop jenkins
sudo systemctl disable jenkins
sudo yum erase jenkins

sudo rm /etc/init.d/jenkins
sudo rm -rf /var/lib/jenkins
sudo rm -rf /etc/yum.repos.d/jenkins

Docker 설치

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"

sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io

-------------
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io
docker -v
sudo systemctl enable docker && service docker start
service docker status

Docker 완전 삭제

docker ps -a
~
~
docker stop ~
docker rm ~

docker rmi $(docker images -q)

systemctl stop docker.service
systemctl stop containerd.service

yum list installed | grep docker
~
~
~

yum erase ~

cd /var/lib/docker
rm -rf *

cd /var/run
rm docker.sock docker.pid
rm -rf docker

Docker-compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose -version

Gitlab 설치

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
curl 명령어를 이용하여 Gitlab CE 저장소를 우분투 패키지 시스템에 추가한다.

Gitlab CE 설치
우분투 패키지 시스템을 업데이트 하고, apt 명령어를 이용하여 gitlab-ce 패키지를 설치한다.

sudo apt update
sudo apt -y install gitlab-ce

sudo gitlab-ctl reconfigure

sudo cat /etc/gitlab/initial_root_password
a3vxsScmwIZKwGGPwcOs0l30LCs2Ud+VdU8yQVTMQ/A=

/etc/gitlab/gitlab.rb -> gitlab 설정 경로
sudo gitlab-ctl reconfigure
jksudo gitlab-ctl status

"Docker를 설치하고 CentOS 및 RHEL 8/7에서 기본 컨테이너 조작 학습-1 부"

RHEL → java, jenkins, gitlab, docker, docker-compose

java 설치

sudo yum install -y java-1.8.0-openjdk-devel.x86_64
alternatives --config java

docker 설치

yum install -y yum-utils

yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

systemctl enable --now docker
systemctl status docker

sudo chmod 666 /var/run/docker.sock
-> 관리자 권한부여

docker-compose 설치

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
jenkins 설치

# 젠킨스 stable 버전 설치파일 다운로드
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 젠킨스 설치 key import
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

인터넷이 안되는 경우 인터넷이 되는 같은 운영체제의 VM 생성 후 래포 등록과 키값을 넣어준 뒤
# sudo yumdownload --resolve jenkins

# sudo yumdowonload --resolve git 
-> 젠킨스 서버에도 git 래포 등록시 git 패키지가 없으면 GITHEAD~~~ 라는 오류가 발생함

# 젠킨스 패키지 설치
sudo yum install jenkins -y

sudo systemctl daemon-reload
sudo systemctl start jenkins
sudo systemctl status jenkins

# 젠킨스 설치확인
rpm -qa | grep jenkins

# 젠킨스 비밀번호 확인
docker exec <CONTAINER_NAME> cat /var/jenkins_home/secrets/initialAdminPassword

cat /var/lib/jenkins/secrets/initialAdminPassword

Download and install GitLab

Gitlab 설치

sudo yum -y install curl vim policycoreutils python3-policycoreutils
sudo yum -y install postfix
sudo systemctl enable postfix && sudo systemctl start postfix

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install -y gitlab-ce

sudo vi /etc/gitlab/gitlab.rb

Gitlab 삭제
sudo gitlab-ctl uninstall
sudo gitlab-ctl cleanse
sudo gitlab-ctl remove-accounts
sudo dpkg -P gitlab-ce || sudo yum -y remove gitlab-ce

/opt/gitlab
/var/opt/gitlab
/etc/gitlab
/var/log/gitlab
/etc/yum.repos.d/gitlab 관련파일

RPM으로 수동 설치

1. 기존 도커 삭제
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

2. yum-utils 설치
sudo yum install -y yum-utils

3. docker repo 등록
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

4. 다운받을 디렉토리 생성 및 압축
mkdir ~/docker
cd ~/docker
yumdownloader --resolve docker-ce
tar cvzf ~/docker.tar.gz *

외부 인터넷과 통신이 안되는 경우

$ sudo yum list installed | grep -i [패키지명]
$ sudo yum erase [패키지명]
$ sudo yumdownload --resolve [패키지명]

이 후 받은 파일을 압축하여 설치 대상의 서버에 설치
  • 인터넷이 되는 VM을 생성해서 yumdownload를 사용하여 rpm 패키지를 받은 뒤 scp로 파일 전송하는 과정입니다.

UTF-8 트러블 슈팅

$ sudo yumdownload --resolve langpacks-en glibc-all-langpacks -y
$ localectl set-locale LANG=en_US.UTF-8

로케일 설정을 먼저 해결하고 gitlab을 설치해야지만 gitlab 설치시 오류가 생기지 않고 생성됩니다.

Gitlab 설치

인터넷이 되는 환경에서 yumdownload 명령어를 사용하여 패키지를 받아옵니다.
또한 https://packages.gitlab.com/gitlab 원하는 버전의 gitlab 버전을 찾아 wget으로 가져온다

wget으로 가져온 gitlab을 설치 대상의 서버에 scp로 파일을 전송한 뒤

$ sudo yum install -y [].rpm
$ sudo vi /etc/gitlab/gitlab.rb
-> gitlab 설정 경로

$ sudo gitlab-ctl reconfigure
-> gitlab 설정 갱신

$ sudo cat /etc/gitlab/initial_root_password
a3vxsScmwIZKwGGPwcOs0l30LCs2Ud+VdU8yQVTMQ/A=

$ sudo vim /etc/gitlab/gitlab.rb
external_URL -> 원하는 값으로 변경

Jenkins 설치

인터넷이 되는 환경에서 

# 젠킨스 stable 버전 설치파일 다운로드
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# 젠킨스 설치 key import
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

설정 후

$ sudo yumdownload --resolve jenkins
$ 받은 jenkins.rpm 파일을 scp로 대상의 서버에 전송
$ sudo yum -y install jenkins.rpm

$ sudo systemctl enable --now jenkins
젠킨스는 Gitlab과 다르게 restart하면 설정값들이 갱신됨

$ cat /var/lib/jenkins/secrets/initialAdminPassword
-> 초기 비밀번호 보는방법

Gitlab과의 pipeline 설정을 위해 git도 위와 같은 방법으로 설치해야함

	또한 인터넷이 안되는 상황이므로 Plugin을 인터넷이 되는 VM에 jenkins와 필요한 plugin을 설치해서
cd /var/liv/jenkins/plugin 경로에서 플러그인을 복사하여 Jenkins 설치 대상 서버에 넣어준다.

또는 jenkins 플러그인을 수동으로 하나하나씩 넣어주는 방법도 있다

-------------

Jenkins 삭제

sudo systemctl stop jenkins
sudo systemctl disable jenkins
sudo yum erase jenkins

sudo rm /etc/init.d/jenkins
sudo rm -rf /var/lib/jenkins
sudo rm -rf /etc/yum.repos.d/jenkins

또한 private 환경에서는 외부에서 plugin을 받아오지 못해 수동으로 넣어줘야합니다.

Jenkins-Plugin site

Jenkins Plugins

profile
Devops, AWS infra

0개의 댓글