GitLab
What is GitLab?
소프트웨어 개발과 관련된 다양한 기능을 제공하는 웹 기반의 DevOps 플랫폼
Git을 사용하는 버전 관리 시스템을 기반
소스 코드 관리, CI/CD, 프로젝트 관리, 코드 리뷰, 이슈 추적, 보안 스캔 등 기능을 제공
Install GitLab
폐쇄망 GitLab 설치
root계정을 사용해야한다
Linux버전에 맞게 설치파일을 준비한다
#yum명령어를 사용해 GitLab을 설치
[root@]$ yum install gitlab-ce-16.10.6-ce.0.el9.x86_64
#GitLab의 접속정보를 수정
[root@]$ vi /etc/gitlab/gitlab.rb
[root@]$ external_url '접속URL:PORT' // 포트도 같이 써준다
#수정된 접속정보의 설정을 저장하고 재기동한다.
[root@]$ gitlabctl reconfigure // 설정 저장 및 재기동
[root@]$ gitlab-ctl reconfigure // 설정 저장 및 재기동(버전에 따라 명령어가 다르다)
GitLab이 정상적으로 설치가 되었는지 확인한다
Url | External_url |
---|---|
ID | root |
PW | /etc/gitlab/initial_root_password 에서 확인 |
Jenkins
What is Jenkins?
오픈 소스 자동화 서버. 소프트웨어 개발에서 CI/CD 프로세스를 자동화하는 데 사용됨
유연성과 플러그인 시스템 덕분에 많은 기업과 개발 팀에서 널리 사용되고 있음
Install Jenkins
폐쇄망 Jenkins 설치
WAS계정 또는 빌드 및 배포시 사용하는 계정과 Jenkins설치 계정이 다르면 권한문제가 발생하므로 같은 계정 또는 root계정을 사용하도록 한다
#wget 명령어를 사용해 jenkins.repo라는 이름으로 설치파일 다운로드
[root@]$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
#rpm 명령어를 사용해 Jenkins 저장소의 공개 키 파일을 import
[root@]$ sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
#yum 명령어를 사용해 Jenkins 설치
[root@]$ yum install jenkins
Jenkins가 정상적으로 설치되었는지 확인한다
Jenkins Plugin Install
폐쇄망 Jenkins Plugin 설치
Jenkins 플러그인은 외부 인터넷이 되는 PC 또는 서버에서 플러그인을 설치한 후, 해당 파일을 반입해야한다
필요한 플러그인을 설치한다
$JENKINS_HOME/plugins에 설치된 플러그인 파일을 폐쇄망의 JENKINS_HOME/plugins로 옮긴 후 Jenkins를 재기동한다
#Jenkins 플러그인 설치파일경로
[root@]$ pwd
/home/user/jenkins/jenkins-home/plugins
[root@]$ ll
total 100816
drwxr-xr-x. 4 root root 56 May 30 16:24 ant
-rw-r--r--. 1 root root 84632 May 30 16:24 ant.hpi
drwxr-xr-x. 4 root root 56 May 30 16:24 antisamy-markup-formatter
-rw-r--r--. 1 root root 244008 May 30 16:24 antisamy-markup-formatter.hpi
drwxr-xr-x. 4 root root 56 May 30 16:24 apache-httpcomponents-client-4-api
-rw-r--r--. 1 root root 1774757 May 30 16:24 apache-httpcomponents-client-4-api.hpi
drwxr-xr-x. 6 root root 77 May 30 16:24 bootstrap5-api
-rw-r--r--. 1 root root 746529 May 30 16:24 bootstrap5-api.hpi
drwxr-xr-x. 4 root root 56 May 30 16:24 bouncycastle-api
-rw-r--r--. 1 root root 8920882 May 30 16:24 bouncycastle-api.hpi
폐쇄망 Jenkins에 플러그인이 정상적으로 설치가 되었는지 확인한다
GitLab Access Token 발급
Whiat is GitLab Access Token?
GitLab API에 접근하거나 GitLab 에서 작업을 수행하기 위해 사용하는 인증 수단이다
토큰을 발급해 GitLab Repository Push를 트리거로 설정해 빌드 및 배포를 실행한다
토큰을 발급한다
계정 설정 > Preferences > Access Tokens > Add New Token
GitLab과 Jenkins가 같은 서버에 존재할 경우, Outbound를 설정해준다
127.0.0.1
1:0:0:0:0:0:0:1
127.0.0.0/8
1:0:0:0:0:0:0:0/124
[1:0:0:0:0:0:0:1]:8080
127.0.0.1:8080
Jenkins에 GitLab 커넥션을 생성한다
Jenkins관리 > System > GitLab > Add Credentials
Jenkins 빌드 프로젝트 생성
What is Jenkins Project?
Jenkins에서 관리되는 작업 단위를 말하며, 특정 소스 코드의 빌드 및 배포 작업을 정의합니다. 일반적으로 Git 리포지토리와 연결되어있다
빌드 프로젝트를 생성한다
새로운 Item > Freestyle Project
미리 등록한 GitLab 커넥션을 추가한다
등록된 Access Token으로 GitLab과 정상적으로 연동이 되었는지 확인
General > GitLab Connection
GitLab의 Repository Url 및 Branch명을 입력해 WorkSpace를 구성한다
GitLab Repository에 접근하기 위한 인증정보를 입력한다
소스 코드 관리 > Git > Repositories > Add > Jenkins
빌드를 실행할 트리거를 설정한다
webhook URL은 GitLab Webhook 설정을 위해 따로 보관해둔다
GitLab의 WebHook과 연동할 Jenkins Project의 Sercret Token을 발급한다
발급된 토큰은 GitLab Webhook 설정을 위해 따로 보관해둔다
빌드 유발 > 고급 > Secret Token > Generate
GitLab Webhook
What is Webhook?
GitLab에서 발생한 이벤트(commit, merge 등)를 외부 서비스로 전송하는 방법이다
Webhook을 설정해 GitLab의 Repository에 형상이 수정되면 Jenkins의 빌드 프로젝트를 호출한다
Webhook을 추가한다
Settings > Webhooks > Add new webhook
Webhook 테스트로 Jenkins 빌드 프로젝트와 연동이 정상적으로 되었는지 확인한다
Jenkins에서 빌드가 실행되었는지 확인한다
'형상관리' 카테고리의 다른 글
[GitLab] Group Access Token (0) | 2024.11.11 |
---|---|
[Git] Svn To Git 마이그레이션 샘플소스 (1) | 2024.10.10 |
[SCM/GIT] GitHub Personal Access Token (0) | 2023.06.17 |
댓글