깃랩 젠킨스 CI/CD 파이프라인 구축(1/3)

김철현·2022년 11월 14일
0

Linux

목록 보기
3/7
post-thumbnail

현업 이슈 발생부터 개발, 빌드 및 배포 플로우를 재구축하며 윈도우10에 도커를 이용해
centos를 2개 띄워 각각 gitlab, jenkins를 설치 과정을 정리한 내용이다

📝 윈도우10

powershell 관리자 권한으로 실행

리눅스 환경 활성화

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

WSL2 설치 및 배포판 설정

https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package
powershell> wsl --set-default-version 2

방화벽 인바운드 설정

gitlab: 80, 443, 22, 21
jenkins: 8080, 2222

도커 설치 & 도커 실행

-> https://www.docker.com

도커 centos7 이미지 다운로드

cmd 관리자 권한 실행

docker pull centos:7

이제 아래 이미지와 같이 깃랩, 젠킨스 서버를 셋팅한다

📝 깃랩

💡 컨테이너 실행

docker run -d --name gitlab -v D:\gitlab:/host 
--privileged --restart always -p 25:25 -p 80:80 -p 443:443 -p 22:22 -p 21:21 centos:7 sbin/init

-d: 컨테이너를 데몬프로세스로 실행하여 프로세스가 끝나도 유지
--name: 컨테이너명
-v: 호스트OS 디렉토리:컨테이너OS 디렉토리 연결
--privileged: 호스트 OS에 접근할 수 있도록 권한 부여
--restart: 호스트 부팅 시 항상 재시작 여부
-p: 호스트->컨테이너 포워딩 포트

docker exec -it gitlab bin/bash

-i: 표준 입력(stdin)을 활성화
-t: TTY 모드(pseudo-TTY) bash 사용

기초 프로그램 설치

yum update -y
timedatectl set-timezone Asia/Seoul
yum install -y which
yum install -y curl policycoreutils-python

방화벽 설정

yum install -y firewalld
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=21/tcp
firewall-cmd --reload

ssh 설정

yum install -y openssh-server.x86_64
vi /etc/ssh/sshd_config

-> PermitRootLogin yes 주석 삭제

passwd root

-> root 비밀번호 설정

systemctl enable sshd
systemctl start sshd

깃랩 설치

yum install -y git
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
EXTERNAL_URL="호스트IP" yum install -y gitlab-ce
cat /etc/gitlab/initial_root_password

-> password 복사

gitlab-ctl start

아이디: root 비밀번호: 복사한 password로 로그인

📝 젠킨스

💡 컨테이너 실행

docker run -itd --name jenkins -v D:\jenkins:/host 
--privileged --restart always -p 8888:8888 -p 2222:22 centos:7 sbin/init
docker exec -it jenkins bin/bash

기초 프로그램 설치

yum update -y
yum install -y which
yum install -y java-11-openjdk.x86_64
yum install -y java-11-openjdk-devel.x86_64
vi /etc/profile

-> export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.16.1.1-1.el7_9.x86_64 입력

방화벽 설정

yum install -y firewalld 
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --permanent --zone=public --add-port=8888/tcp
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --reload

ssh 설정

yum install -y openssh-server.x86_64
vi /etc/ssh/sshd_config

-> PermitRootLogin yes 주석 삭제

passwd root

-> root 비밀번호 설정

systemctl enable sshd
systemctl start sshd

젠킨스 설치

yum install -y wget
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 epel-release
yum install -y jenkins
yum install -y git
timedatectl set-timezone Asia/Seoul
vi /etc/sysconfig/jenkins

-> JENKINS_PORT="8888" 로 포트 수정
/usr/lib/systemd/system/jenkins.service Environment="JENKINS_PORT=8888"

systemctl enable jenkins
systemctl start jenkins
cat /var/lib/jenkins/secrets/initialAdminPassword 

-> 초기 비밀번호 복사
호스트IP:8888 접속해서 비밀번호 입력

install suggested plugins 선택
admin 계정정보 입력

profile
리팩토링만이 살 길이다

0개의 댓글