728x90
반응형

1. GitLab Runner란 

GitLab이 오케스트라의 '지휘자'라면, GitLab Runner는 지휘자의 악보(.gitlab-ci.yml)를 보고 실제로 악기를 연주하는 '작업자(일꾼)'입니다.

개발자가 코드를 GitLab 서버에 Push하면, GitLab은 조건에 맞는 Runner에게 알림을 보냅니다. Runner는 지정된 서버에서 코드를 임시로 내려받아 빌드, 테스트, 배포 등의 스크립트를 대신 실행해 주는 핵심 프로그램이다. 

 

2. CI/CD 파이프라인 스크립트 작성 (Gitlab 서버: .gitlab-ci.yml)

Runner가 수행할 작업 지시서입니다. 프로젝트 최상위 경로에 위치해야 합니다.

핵심 개념 및 스크립트 예시

  • 태그(tags): 특정 Runner를 지정하여 실행하도록 연결하는 고리입니다. 웹 설정과 정확히 일치해야 합니다.
  • 임시 디렉토리: Runner는 매번 $CI_PROJECT_DIR라는 임시 폴더(예: /home/qadoc/builds/...)에 최신 코드를 다운로드(HEAD 분리 상태)하여 작업을 수행합니다.

3. GitLab Runner 설치 방법 (Rocky Linux 9 / RHEL 계열)

터미널에서 root 권한 또는 sudo 명령어를 사용하여 공식 저장소를 등록하고 패키지를 설치합니다.

  • 공식 GitLab Runner 저장소(Repository) 추가
curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash
  • dnf 명령어로 패키지 설치
sudo dnf install gitlab-runner -y
  • 서비스 자동 시작 설정 및 상태 확인
    • 설치가 완료되면 서버가 부팅될 때 자동으로 Runner가 켜지도록 설정합니다.
# 서비스 활성화 및 시작
sudo systemctl enable --now gitlab-runner

# 서비스 상태 확인 (active (running) 상태인지 확인)
sudo systemctl status gitlab-runner

 

4.GitLab Runner 등록 및 연동

  • 설치된 일꾼(Runner)에게 "어떤 GitLab 서버에 가서 일을 받아와야 하는지" 주소와 인증 번호(토큰)를 알려주는 과정입니다.

4.1 GitLab 웹에서 '새로운 토큰' 발급받기

 

  • GitLab 프로젝트 웹 화면 이동 ➔ 왼쪽 메뉴 Settings (설정) > CI/CD > Runners 클릭 후 펼치기.

  • [New project runner] 버튼을 클릭하여 새로운 러너 생성 화면으로 이동.
  • 태그(Tags) 입력란에 mkdocs를 입력하고 생성 버튼을 누르면 화면에 새로운 인증 토큰(glrt-... 형태)이 나타납니다.
    • tags 는 .gitlab-ci.yml 에서 설정해서 사용 하는 태그명과 일치 해야 합니다.(매우중요) 

 

Gitlab Runner 가 정상적으로 생성이 되면 Gtilab runner 를 설치한 서버에서 Gitlab runner 를 등록 해 줘야 한다. 

 

4.2 gitlab runner 등록 및 실행  

  • 아래내용은 2개의 runner 등록 하고 실행 하는 예제입니다. 

4.2.1 Gitlab UI 화면 에서  runner 생성 

 

 

  • test 용으로 gitlab 에서 각각  test1, test2 태그를 사용 하는 gitlab runner 를 생성 합니다. 

4.2.2 Gitlab UI 생성한 Runner 를 서버에 등록 (test1,test2 ) 

  • 등록한 runner 를 실행 하기위해 runner 를 실행하려는 서버에서 실행 합니다. 
# 두 번째 러너 등록 (새로운 토큰 사용)
sudo gitlab-runner register \
  --url "http://[gitlab ip]:9080" \
  --token "새로_발급받은_첫번째_토큰" \
  --executor "shell"
  
  
  # 두 번째 러너 등록 (새로운 토큰 사용)
sudo gitlab-runner register \
  --url "http://[gitlab ip]:9080" \
  --token "새로_발급받은_두번째_토큰" \
  --executor "shell"

  • 두개의 runner 가 정상적으로 등록이 완료 되면 /etc/gitlab-runner/config.toml 파일에 [[runners]] 블럭이 두개가 실행이됩니다. 
concurrent = 1 // 한번에 1개의 작업을 동시에 처리 할수 있도록 허용 4 이면 4개 동시 작업
check_interval = 0
connection_max_age = "15m0s"
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "rocky9"
  url = "http://[ip]:9820"
  id = 5
  token = "glrt-[첫번째토큰]"
  token_obtained_at = 2026-06-01T09:32:47Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"

[[runners]]
  name = "rocky9"
  url = "http://[ip]:9820"
  id = 6
  token = "glrt-[두번째토큰]"
  token_obtained_at = 2026-06-01T09:33:05Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "shell"

4.2.3 Gitlab runner 실행  실행 및 상태 확인 

#실행 
sudo systemctl start gitlab-runner

#상태 확인 
sudo systemctl status gitlab-runner

 

 

4.2.4 Gitlab pipelined 스크립트 작성 (.gitlab-ci.yml) 

  • .gitlab-ci.yml 파일은 프로젝트 최 상단 경로에 생성 합니다. 
  • gitlab 에 등록된 프로젝트 변경 사항이 감지 되면 작성된 스크립트에 따라 작업을 수행 합니다. 
  • build_job 에서는 test1 태그로 등록 한 잡이 실행 되고  deploy_job 에서는 test2 태그로 등록 한 잡이 실행 됩니다. 
# 전체 작업 순서 정의
stages:
  - build
  - deploy

# [첫 번째 작업] test1 runner
build_job:
  stage: build
  tags:
    - test1   # ⭐ 1번 러너 수행
  script:
    - rm -rf $HOME/gitlab-test-runner ;mkdir -p $HOME/gitlab-test-runner
    # 1. 파일에 내용 쓰기 (전체를 작은따옴표로 묶어서 YAML 에러 방지)
    - 'echo "$(date) : test1 runner execution" >  $HOME/gitlab-test-runner/runner-test.txt'
    
  # ⭐ 핵심: 이 파일은 다음 stage로 전달해 달라고 GitLab에 요청
  artifacts:
    paths:
      - runner-test.txt

# [두 번째 작업] test2 runner
deploy_job:
  stage: deploy
  tags:
    - test2   # ⭐ 2번 러너 수행
  script:
    # 여기도 마찬가지로 전체를 작은따옴표로 묶어줍니다.
    - 'echo "$(date) : test2 runner execution" >>  $HOME/gitlab-test-runner/runner-test.txt'
    - cat $HOME/gitlab-test-runner/runner-test.txt

 

4.2.5 Gitlab Build 상태 확인 

  • 정상동작이 된다면 아래 그림 처럼 순차적으로 job 이 수행이 됩니다. 

 

  • 수행이 완료되면 스크립트가 수행 되고 예상되는 결과에 따라 아래 처럼 파일이 생성 되고 파일에 실행된 시간을 기록 하고 종료합니다. 
[qadoc@rocky9:/home/qadoc]$ cat gitlab-test-runner/runner-test.txt
2026. 06. 01. (월) 18:47:17 KST : test1 runner execution
2026. 06. 01. (월) 18:47:19 KST : test2 runner execution

 

4.2.5.GitLab Runner 서비스 제어 기타 명령어

1. 러너 상태 확인 (Status) 러너가 현재 잘 켜져 있는지, 꺼져 있는지 가장 먼저 점검할 때 사용합니다.

sudo systemctl status gitlab-runner

확인 팁: 결과 화면에 초록색으로 active (running)이 뜨면 정상, inactive (dead)나 failed가 뜨면 꺼져있는 상태입니다. (화면에서 빠져나오려면 q를 누르세요.)

 

2. 러너 시작 (Start) 꺼져 있는 러너 서비스를 켭니다.

sudo systemctl start gitlab-runner

 

3. 러너 중지 (Stop) 서버 점검이나 러너 동작을 아예 멈추고 싶을 때 사용합니다. (진행 중이던 배포 작업이 있다면 실패 처리될 수 있으므로 작업이 없을 때 수행하세요.)

sudo systemctl stop gitlab-runner

 

4. 러너 재시작 (Restart) ⭐️ 러너를 껐다가 바로 다시 켭니다. 에러가 났을 때 가장 먼저 시도해 볼 만한 응급처치이며, 특히 관리자가 러너 설정 파일(/etc/gitlab-runner/config.toml)을 직접 수정했을 때 변경 사항을 적용하기 위해 반드시 쳐야 하는 명령어입

sudo systemctl restart gitlab-runner

 

5. 서버 부팅 시 자동 시작 켜기 (Enable) 리눅스 서버가 재부팅되었을 때, 관리자가 일일이 켜주지 않아도 GitLab Runner가 알아서 백그라운드에서 실행되도록 예약합니다. (설치 시 기본적으로 켜져 있습니다.)

sudo systemctl enable gitlab-runner

 

6. 서버 부팅 시 자동 시작 끄기 (Disable) 서버가 켜질 때 러너가 자동으로 켜지는 것을 막습니다.

sudo systemctl disable gitlab-runner

 

 

 

728x90
반응형

'04.DevTools > Git&GitLab' 카테고리의 다른 글

Gitlab Upgrade 하기  (3) 2025.07.30
[GitLab] Project 삭제 방법  (0) 2024.11.07
[GitLab] git 빈 디렉토리 커밋 하는 방법  (0) 2024.09.13
[GitLab] Gitlab 명령어 모음  (0) 2022.04.17
[GitLab] 프로젝트 생성 및 관리  (0) 2022.04.17
728x90
반응형

사전 준비

소스 코드를 컴파일하려면 C 컴파일러와 Nginx 의존성 라이브러리가 필요합니다. 

 

sudo dnf groupinstall "Development Tools" -y
sudo dnf install pcre-devel zlib-devel openssl-devel -y

 

1. Nginx 소스 다운로드 및 로컬 설치

설치하려는 디렉토리로 이동해서 Nginx 를 다운로드 받아 아래 절차에 따라 설치를 진행 합니다. 

 

# 1. 홈 디렉토리로 이동
cd /home/qadoc/

# 2. Nginx 소스 다운로드 (최신 안정화 버전 1.24.0 기준, 필요시 버전 변경)
wget http://nginx.org/download/nginx-1.24.0.tar.gz

# 3. 압축 해제 및 폴더 이동
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0/

# 4. 설치 환경 설정 (configure)
# --prefix 옵션이 핵심입니다. 이 경로에 Nginx가 설치됩니다.
# 홈 디렉토리 아래의 nginx 이라는 폴더에 설치하도록 지정합니다.
./configure --prefix=$HOME/nginx --with-http_ssl_module

# 5. 컴파일 및 설치
make
make install

 

  • 설치가 완료 되면 다운로드 받은 파일은 삭제 해도 됩니다. 

 

2. Nginx 설정 변경 (포트 및 경로 설정)

일반 사용자는 1~1023번(Well-known ports, 예: 80, 443) 포트를 사용할 수 없습니다.

따라서 1024번 이상의 포트(예: 8080, 8888 등)로 설정해야 합니다.

로컬에 설치된 Nginx의 설정 파일을 엽니다.

 

vi ~/nginx/conf/nginx.conf
  • nginx.conf
# worker 프로세스 설정 (로컬 계정이므로 user 지시어는 사용하지 않음)
worker_processes  1;

# 에러 로그 경로 (로컬 폴더 내에 저장됨)
error_log  logs/error.log;
pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    
    # 접근 로그 경로
    access_log  logs/access.log;

    sendfile        on;
    keepalive_timeout  65;

    server {
        # 일반 사용자가 열 수 있는 포트 (예: 8081)
        listen       8081;
        server_name  localhost;

        # MkDocs 빌드 파일이 위치할 절대 경로 지정
        # (예: /home/myuser/mkdocs_site)
        location / {
            root   /home/qadoc/mkdocs_site;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  • 파일 설정이 완료 되었다면 설정상 문제 가 없는지 아래 명령으로 확인 합니다. 
$ ~/nginx/sbin/nginx -t
nginx: the configuration file /home/qadoc/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /home/qadoc/nginx/conf/nginx.conf test is successful
  • 명령
# 설정 파일 문법 테스트
~/nginx/sbin/nginx -t

# Nginx 백그라운드 실행
~/nginx/sbin/nginx

# Nginx 프로세스 확인(정상 기동) 
ps -ef | grep nginx
  • Nginx 기동/중지 스크립트 작성 
    • 조작을 쉽게 하기위해 스크립트를 만듭니다. 
    • 사용 방법
      • 시작: ./manage_nginx.sh start
      • 중지: ./manage_nginx.sh stop
      • 설정 재적용: ./manage_nginx.sh reload
      • 재시작: ./manage_nginx.sh restart
      • 상태 확인: ./manage_nginx.sh status
    • 이제부터는 복잡한 경로를 입력할 필요 없이, 아래처럼 스크립트 하나로 Nginx를 쉽게 제어할 수 있습니다.
#!/bin/bash

# Nginx 실행 파일 경로를 변수로 지정합니다.
# 경로가 다르다면 이 부분을 수정해 주세요.
NGINX_BIN="$HOME/nginx/sbin/nginx"

# 실행 인자($1)가 없는 경우 안내 메시지를 출력합니다.
if [ -z "$1" ]; then
    echo "사용법: $0 {start|stop|reload|restart|status}"
    exit 1
fi

case "$1" in
    start)
        echo "Nginx를 시작합니다..."
        $NGINX_BIN
        echo "완료."
        ;;
    stop)
        echo "Nginx를 중지합니다..."
        $NGINX_BIN -s stop
        echo "완료."
        ;;
    reload)
        echo "Nginx 설정을 무중단으로 재적용합니다..."
        $NGINX_BIN -s reload
        echo "완료."
        ;;
    restart)
        echo "Nginx를 재시작합니다..."
        $NGINX_BIN -s stop
        sleep 2  # 프로세스가 완전히 죽을 때까지 2초 대기
        $NGINX_BIN
        echo "완료."
        ;;
     status)
        # 1. 현재 쉘을 실행 중인 사용자 이름 가져오기
        CURRENT_USER=$(whoami)

        # 2. 본인 계정($CURRENT_USER)으로 실행된 nginx 마스터 프로세스 찾기
        #    (grep "[n]ginx" 기법을 사용하여 grep 명령어 자체는 결과에서 제외)
        NGINX_PS=$(ps -u "$CURRENT_USER" -o pid,user,args | grep "[n]ginx: master process")

        # 3. 결과 문자열의 길이가 0이 아니면(-n) 실행 중인 것으로 판단
        if [ -n "$NGINX_PS" ]; then
            echo "현재 Nginx가 [실행 중]입니다."
            echo "--- [프로세스 정보] ---"
            echo "  PID USER     COMMAND"

            # 본인 계정의 전체 nginx 프로세스(master + worker 등)를 깔끔하게 출력
            ps -u "$CURRENT_USER" -o pid,user,args | grep "[n]ginx"
            echo "-----------------------"
        else
            echo "현재 Nginx가 [중지] 상태입니다."
        fi
        ;;
    *)
        echo "지원하지 않는 명령어입니다: $1"
        echo "사용법: $0 {start|stop|reload|restart|status}"
        exit 1
        ;;
esac

 

 

 

1. 기존 서비스 중지 및 삭제

 

sudo systemctl stop gitlab-runner
sudo gitlab-runner uninstall

 

2. 새로운 토큰으로 Runner 등록

올려주신 명령어에 sudo와 --executor shell 옵션을 추가하여 한 번에 등록을 끝냅니다.

 

sudo gitlab-runner register \
  --url "http://192.168.11.11:9820" \
  --token "glrt-xLXY_4xTc0Qafddpwuf" \
  --executor "shell"

 

3. 계정으로 서비스 설치 및 시작

여기가 핵심입니다. 러너를 다시 시스템 서비스로 등록할 때, 실행 주체(--user)를 qadoc으로 지정하고 작업 폴더도 qadoc의 홈 디렉토리로 맞춰줍니다.

 

sudo gitlab-runner install --user qadoc --working-directory /home/qadoc
sudo systemctl start gitlab-runner
sudo systemctl enable gitlab-runner
728x90
반응형
728x90
반응형

Jenkins Docker 설치 가이드 (Rocky9, jen 계정 기준)

1. 사전 준비

1-1. jen 계정 확인

sudo useradd -m jen
sudo passwd jen
sudo usermod -aG docker jen
  • Docker 명령어를 비루트 계정(jen)에서 실행 가능하도록 docker 그룹에 추가합니다.

1-2. 디렉토리 생성

sudo mkdir -p /hdd/jen/home
sudo chown -R jen:jen /hdd/jen
sudo chmod -R 750 /hdd/jen/home
  • /hdd/jen/home : Jenkins 홈 디렉토리 (데이터 영속화)
  • SELinux 환경에서는 :Z 옵션 사용

2. Docker / Docker Compose 설치 확인

docker --version
docker compose version
  • 설치되지 않았다면:
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker

3. Docker Compose 파일 생성

cd /hdd/jen
vi docker-compose.yml
version: '3.8'
services:
  jenkins:
    image: jenkins/jenkins:lts
    container_name: jenkins
    restart: always
    user: root                    # 일부 플러그인 설치를 위해 root 필요
    ports:
      - "8080:8080"               # 웹 UI
      - "50000:50000"             # agent 연결
    volumes:
      - /hdd/jen/home:/var/jenkins_home:Z
    shm_size: '512m'

설명

  • :Z → SELinux 컨텍스트 적용
  • 8080 → 브라우저 접속용
  • 50000 → Jenkins agent 연결용
  • shm_size → 빌드 시 메모리 공유 공간 확보

4. Jenkins 실행

cd /hdd/jen
docker compose up -d
  • 컨테이너 정상 실행 확인:
docker ps

5. 초기 설정

  1. 브라우저에서 접속:
http://서버IP:8080
  1. 초기 관리자 비밀번호 확인
docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword
  1. Jenkins 웹 UI에서 초기 비밀번호 입력 후

    • 추천 플러그인 설치
    • 관리자 계정 생성

6. 권한 및 SELinux 확인

sudo chown -R jen:jen /hdd/jen/home
sudo chmod -R 750 /hdd/jen/home
  • SELinux 활성화 시 :Z 옵션 필요

7. GitLab 연동 (선택 사항)

  1. Jenkins 플러그인 설치

    • GitLab Plugin
    • Git Plugin
  2. Jenkins에서 GitLab 서버 등록

    • URL: http://<GitLab 서버IP>:<포트>
    • Access Token 생성 → Jenkins Credential 등록
  3. Job 생성 → GitLab 프로젝트 빌드 가능


8. 컨테이너 관리

  • Jenkins 재시작
docker compose restart
  • 컨테이너 중지
docker compose down
  • 로그 확인
docker compose logs -f

참고 사항

  • /hdd/jen/home 경로는 Jenkins 데이터 전용. 컨테이너 삭제해도 데이터 보존됨
  • 호스트 방화벽에서 8080/50000 포트 열어야 외부 접근 가능
  • 운영 환경이면 SSL/HTTPS 적용 가능 (리버스 프록시 추천)
728x90
반응형

'04.DevTools' 카테고리의 다른 글

[Nginx]Nginx 설치 및 설정 가이드  (0) 2026.05.29
[SVN] SVN 사용법  (0) 2024.11.14
[IntelliJ] Intellij Gitlab 연동  (0) 2024.08.16
[Nexus]Centos7 nexus 설치 및 이클립스 연동  (0) 2022.04.21
728x90
반응형
  • Gitlab 에서 보안 이슈로 버전 업그레이드가 필요한 상황에서 Gitlab 버전을 업그레이하는 방법에 대해 설명 합니다. 

현재 설치 버전 gitlab 정보 확인 

  • gitlab-rake gitlab:env:info 명령을 통해 확인 하거나 
  • gitlab 에 접속 해서 직접 설치 정보를 확인 하는 방법이 있습니다. 
 gitlab-rake gitlab:env:info
$ gitlab-rake gitlab:env:info

System information
System:
Current User:   git
Using RVM:      no
Ruby Version:   2.7.5p203
Gem Version:    3.1.4
Bundler Version:2.3.15
Rake Version:   13.0.6
Redis Version:  6.2.7
Sidekiq Version:6.4.0
Go Version:     unknown

GitLab information
Version:        15.1.2
Revision:       ea7455c8292
Directory:      /opt/gitlab/embedded/service/gitlab-rails
DB Adapter:     PostgreSQL
DB Version:     13.6
URL:            http://192.112.1.62:6060
HTTP Clone URL: http://1 192.112.1.62 :6060/some-group/some-project.git
SSH Clone URL:  git@1 192.112.1.62:some-group/some-project.git
Using LDAP:     no
Using Omniauth: yes
Omniauth Providers: 

GitLab Shell
Version:        14.7.4
Repository storage paths:
- default:      /var/opt/gitlab/git-data/repositories
GitLab Shell path:              /opt/gitlab/embedded/service/gitlab-shell

 

  • 업그레이드를 하기 위해서는 순차적으로 버전을 업그레이드 해야 합니다.
  • 15.x->18.x 버전으로 바로  최신 버전으로 업그레이드를 하면 안됩니다. 
  • 15.1.x -> 15.4.6 -> 15.11.13 -> 16.0.8 -> 16.3.7 -> 16.7.x -> 최신 16.x -0 ->17.x ->18.x 버전으로 단계적으로 업그레이드 단계를 수행 합니다. 

 

GitLab 백업 하기 

  • 업그레이드가 예기치 않은 이유로 실패 할수 있기때문에  버전을 업그레이드 하기 위해서는 반드시 백업을 수행 해야 합니다. 
  • gitlab-backup create  수행 하면 /var/opt/gitlab/backups/  디레톡리에 1753833159_2025_07_30_15.1.2_gitlab_backup.tar 형식의 압축 파일이 생성 됩니다. 
  • 백업 이후 설정 파일도 백업합니다. 
# GitLab 전체 백업 명령어 실행
sudo gitlab-backup create
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak

 

$ gitlab-backup create
2025-07-30 08:52:39 +0900 -- Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... [DONE]
2025-07-30 08:52:54 +0900 -- Dumping database ... done
2025-07-30 08:52:54 +0900 -- Dumping repositories ... 
.................................
.................
2025-07-30 08:54:53 +0900 -- Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data 
and are not included in this backup. You will need these files to restore a backup.
Please back them up manually.
2025-07-30 08:54:53 +0900 -- Backup 1753833159_2025_07_30_15.1.2 is done.
$ ls -lrt
⑷ 1217100
-rw------- 1 git git 1246310400  7” 30 08:54 1753833159_2025_07_30_15.1.2_gitlab_backup.tar
 
$ ls -al
⑷ 312
-rw-------. 1 root root  19200  6” 25 16:32 gitlab-secrets.json
-rw-------  1 root root  19200  7” 30 08:55 gitlab-secrets.json.bak
-rw-------  1 root root 137497  6” 25 16:31 gitlab.rb
-rw-------  1 root root 137497  7” 30 08:55 gitlab.rb.bak
drwxr-xr-x. 2 root root    155  9”  2  2024 ssl
drwxr-xr-x. 2 root root      6  7”  6  2022 trusted-certs

 

 

Gitlab 업그레이드 

  • 업그레이드 할 gitlab 버전을 확인 합니다. 
 yum list --showduplicates gitlab-ce

 

  • 설치 버전 선택시 gitlab-ce-[버전정보] 형식으로 패키지를 설치 하므로  설치할 버전을 정확하게 입력하고 설치 합니다. 
sudo yum install -y gitlab-ce-15.4.6-ce.0.el7

 

  • 업그레이드 버전이 설치가 완료되면 reconfigure 명령을 통해 변경된 설정을 Gitlab 에 적용 합니다. 
  • gitlab-ctl reconfigure 명령 수행 중에는 db(PostgreSQL ) 의 데이터 마이그레이션 작업 및 내부 업그레이드 작업들이 이루어 집니다. 
  • 정상적으로 작업이 완료 되면  gitlab-ctl start      & gitlab-ctl status 명령을 통해 업그레이드 작업이 정상적으로 완료 되었는지 최종 확인 합니다. 
$ sudo gitlab-ctl  status
run: alertmanager: (pid 15390) 48113s; run: log: (pid 1574) 12270431s
run: gitaly: (pid 15404) 48112s; run: log: (pid 12724) 48707s
run: gitlab-exporter: (pid 15426) 48112s; run: log: (pid 1557) 12270431s
run: gitlab-kas: (pid 15440) 48102s; run: log: (pid 1559) 12270431s
run: gitlab-workhorse: (pid 15454) 48102s; run: log: (pid 1555) 12270431s
run: logrotate: (pid 13090) 1296s; run: log: (pid 12699) 48710s
run: nginx: (pid 15474) 48101s; run: log: (pid 1556) 12270431s
run: node-exporter: (pid 15487) 48100s; run: log: (pid 1554) 12270431s
run: postgres-exporter: (pid 15493) 48100s; run: log: (pid 1549) 12270431s
run: postgresql: (pid 15504) 48099s; run: log: (pid 1550) 12270431s
run: prometheus: (pid 17054) 47458s; run: log: (pid 1558) 12270431s
run: puma: (pid 15815) 48068s; run: log: (pid 1551) 12270431s
run: redis: (pid 15820) 48067s; run: log: (pid 1548) 12270431s
run: redis-exporter: (pid 15827) 48067s; run: log: (pid 1546) 12270431s
run: sidekiq: (pid 15838) 48062s; run: log: (pid 1552) 12270431s

 

 

  • 보다 높은 최신 버전으로 업그레이드 하기 위해서는 단계적으로 상위 버전 gitlab 버전을 설치하는 단계를 반복 합니다. 

버전 업그레이드 정리

#Gitlab 설치 버전 정보 확인 
yum --showduplicates list gitlab-ce
#설정 적용 
gitlab-ctl reconfigure

#Gitlab 재시작 
gitlab-ctl restart

#Gitlab 상태 확인 
gitlab-ctl status

#gitlab 업그레이드 버전 정보 확인 
gitlab-rake gitlab:env:info

 

업그레이드 패스 확인 하기 (참고)

  • 아래 URL 에 접속 하면 버전 업그레이드시 확인해야 할 내용에 대해 세부적으로 자세히 내용을 들여다 볼수 있습니다. 

 

https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/?distro=centos

 

Upgrade Path

 

gitlab-com.gitlab.io

 

 

 

728x90
반응형
728x90
반응형

Gitlab 프로젝트 VS Code 연결 

  • Gitlab 과  VS Code를 연동   하는 방법에 대해 설명 한다. 

GitLens, Git History  설치

  • VS code 실행 후 마켓 플레이스 에서GitLens, Git History  를 설치한다. 

 

VSCode Git Clone 방법 

  • F1 버튼을 눌러 git clone 선택합니다.
  • Git url 주소를 입력한다. 
    • VS Code 레파지토리 URL 정보 입력 <- gitlab http url 입력 

  • 복제할 로컬 디렉토리를 선택합니다. 
  • 없을경우 신규 생성 합니다. 
  • 작업영역을 추가하면 해당 폴더에 Gitlab 리소스가 로컬 Repository 에 다운로드 됩니다. 

 

VSCode 파일 변경 사항 커밋 

  • 테스트를 위해 test.md 파일을 생성 합니다. 
  • 파일에 간단한 내용을 작성합니다. 

 

  • Source Control  항목에 들어가서 변경 사항에 대한 커밋 메시지를 작성한후 커밋 버튼을 클릭합니다. 

 

  • 이후 변경 내용 동기화 버튼을 클릭 합니다. 
  • 동기화 하지 않으면 Git 서버에 변경내용이 저장 되지 않습니다. 

  • 정상 업로드가 되면 Gitlab 에 추가된 test.md 파일이 업로드 된것을 확인 할수 있습니다. 

 

VS Code MarkDown 확장 패키지 설치 

  • Gitlab 에서 Mark down 문법으로 작성된 문서를 수정하고 또 편하게 보기 위해서는 몇가지 확장 패키를 설치 하면 유용합니다. 
    • Diagram and chart  를 보기위해 아래 패키지를 설치 합니다. 
    • Markdown Preview Mermaid Support

 

  • 확장자를 추가하면 Gitlab 에서 지원하는 다양한 플로우 차트와 다이그램을 VS Code 에서 작성 하고 미리보기 를 통해 확인해볼수 있다. 

 

VScode GitLab 로그인 정보 변경 방법

  • 로그인 정보에 대한 수정이 필요할때 아래의 절차로 진행 한다. 
    • 기존 로그인 정보 삭제 (username, email) 
    • 로그인 정보 재등록 

#git 설정 정보 확인 
git config --list

#git 로그인 정보 unset 
git config --unset user.name 
git config --unset user.email 

git config --unset --global user.name
git config --unset --global user.email


#git 로그인 정보 재설정 
git config --global user.name "tester"
git config --global user.email "tester@example.com"

 

 

  • Git으로 원격 저장소에 최초로 접속할 때 사용자명과 비밀번호를 물어볼경우 이 정보를 ~/.git-credentials 파일에 저장하는데 
  • 이후에는 Git이 해당 파일을 자동으로 참조하여 다시 입력하지 않도록 설정 하려면 git config --global credential.helper store 명령을 vscode 터미널에서 수행 하면 됩니다. 
git config --global credential.helper store

 

 

 

 

 

 

 

 

 

728x90
반응형
728x90
반응형

Remote SSH 원 격 접속 (비번 입력 없이)  방법

  • VSCode 에서 Remote 접속 시에 비밀 번호 없이 입력 없이 접속 하는 방법에 대해 설명합니다. 
  • 아래처럼 Remote 서버 접속시 매번 비밀번호를 입력하게 된다. 
  • 이런 불편한점을 없애고 ssh 인증키를 발급받아 접속하고자하는 Remote 원격 서버에 키를 등록한후 
  • 매번 비밀 번호를 입력한후 접속 하는 수고를 덜수 있다. 

윈도우 ssh-key 발급 

  • Windows PowerShell 을 실행 시킨후 ssh key 를 발급 받습니다. 

 

#ssh 인증키 발급
ssh-keygen -t rsa -b 4096

#인증키 확인 
Get-Content .\.ssh\id_rsa.pub

 

 

authorized_keys  파일 생성(Remote 서버) 

.ssh 디렉토리 이동후 authorized_keys  파일 생성후 윈도우 에서 발급 받은 key 값을 복사 한다. 

[rocky@my-rocky9 .ssh]$ ll
합계 12
-rw-r--r--. 1 rocky rocky  578 11월 18 15:40 authorized_keys
-rw-------. 1 rocky rocky 3381 11월 18 15:39 id_rsa
-rw-r--r--. 1 rocky rocky  743 11월 18 15:39 id_rsa.pub

 

VSCode ssh Config 파일 수정

  • vscode ssh 접속 설정 파일에  발급받은 키값을 추가 한다. (IdentityFile D:\200.MyConfig\VSCode\.ssh\id_rsa )
Host rocky-192.168.116.xxx
    HostName 192.168.116.xxx
    User rocky
    Port 22
    IdentityFile D:\200.MyConfig\VSCode\.ssh\id_rsa

 

추가후 재섭속시 비밀번호 없이 Remote SSH 접속시 비밀번호 업이 접속 할수 있다. 

 

 

728x90
반응형
728x90
반응형

SVN 설치 

dnf instatall subversion
svn  --version

 

SVN 기본 명령어 

  • 리소드 체크 아웃 
svn checkout https://example.com/svn/my_project/trunk
  • 리소스 업데이트 (체크아웃 받은 리소스에 대해 변경된 사항을 로컬로 업데이트 합니다.) 
svn update
  • 파일 상태 확인 
    • M: 수정 파일
    • A: 추가 파일
    • D: 삭제 파일
    • ?: 버전 관리되지 않은 파일
svn status
  • 파일 정보 저장 및 변경 
#파일 추가 
svn add new_file.txt 

#파일 저장 
svn commit -m "추가한 내용 기록"

#파일 삭제 
svn delete old_file.txt

#파일 내용 비교 
svn diff current_file.txt

#파일 변경 내용 확인
svn log current_file.txt

SVN 주소변경

  • svn repository url 이 변경되었을경우 사용 하는 방법입니다. 
svn switch --relocate OLD_URL NEW_URL

svn switch --relocate http://oldserver.com/svn/project http://newserver.com/svn/project

svn info

 

SVN 트러블 슈팅 

svn: warning: cannot set LC_CTYPE locale 에러 

  • 해당 에러는 SVN 클라이언트가 로케일 설정이 맞지 않을때 발생하는 에러 입니다. 
  • 위 현상을 해결 하기 위해서는 아래 단계로 현재 로케일 설정을 확인하고 환경에 맞는 로케일 로 설정을 맞춰 줍니다. 
  •  
$ svn checkout svn://1~~~
svn: warning: cannot set LC_CTYPE locale
svn: warning: environment variable LANG is UTF-8
svn: warning: please check that your locale name is correct

 

 

 

728x90
반응형
728x90
반응형
  • Gitlab 에서 생성한 프로젝트를 상제하는 방법에 대해 알아봅니다. 

GitLab 에서 생성한 Project(프로젝트)  삭제하는 방법 

  • 삭제하면 되될릴수 없으므로 필히 주의가 필요합니다. 
  • 우선 삭제할 프로젝트를 선택합니다. 
    • Gitlba 로그인후 삭제할 프로젝트 페이지로 이동 합니다. 
    • 삭제할 프로젝트 선택후 하단 Settings -> Gerneral -> Advanced settings  선택후 가장 하단 섹션을 확인합니다. 
    • Delete project 버튼을 클릭해서 생성한 프로젝트를 삭제 합니다. 
    • 이때 프로젝트 이름을 입력 한후 delete 버튼을 클릭해서 프로젝트를 삭제 합니다. 

 

 

728x90
반응형
728x90
반응형

Git은 기본적으로 빈 디렉토리를 추적하지 않기 때문에 빈 디렉토리를 저장할수 없다.  

파일이 없는 빈 디렉토리는 자동으로 무시 되기 때문에 간접적인 방법으로 .gitkeep 파일을 사용 하여 빈디렉토리를 저장 한다. 

 

.gitkeep 파일 사용 방법 

  • 빈파일을 생성 한다. 
mkdir my_empty_directory
  • 디렉토리 안에 .gitkeep 파일을 생성합니다
touch my_empty_directory/.gitkeep
  • 디렉토리를 Git에 추가하고 커밋한다.
# 모든 빈 디렉토릴를 저장 하고 자 할때 
git add .

# 특정 빈 디렉토리를 저장하고자 할때 
git add my_empty_directory/.gitkeep
git commit -m "Add empty directory my_empty_directory with .gitkeep"

 

  • .gitkeep 파일은 특별한 의미를 가지지 않는 관례적인 이름으로 사용 하며 빈 디렉토리임을 다른 사용자가 의도적으로 비어있는것을 표현해 주는 의미다. 

 

  • git push 
git push origin main

 

728x90
반응형

'04.DevTools > Git&GitLab' 카테고리의 다른 글

Gitlab Upgrade 하기  (3) 2025.07.30
[GitLab] Project 삭제 방법  (0) 2024.11.07
[GitLab] Gitlab 명령어 모음  (0) 2022.04.17
[GitLab] 프로젝트 생성 및 관리  (0) 2022.04.17
[GitLab] GitLab 설치 방법 및 환경설정  (0) 2022.04.16
728x90
반응형
  • IntelliJ 에서 Gitlab 소스를 가져오는 방법에 대해 설명 한다. 

IntelliJ GitLab 연동 설정 

  • File -> new -> Project  from Version Control 클릭 

 

 

  • Repository URL 클릭후 Glit Clone 주소 (HTTP) 를 입력 합니다.
  • Token 주소는 Gitlab 에서 설정한 Project Access Tokens  값을 입력 합니다. 

 

  •  Project Access Tokens  생성 방법 
    • Settions -> Access Tokens -> Token name 설정 -> Select Scope 선택 
    • Create 버튼 클릭 

 

 

  • 정상 적으로 연동이 되면 Gitlab 에 등록한 프로젝트가 IntelliJ 촤측화면에 다운도르 되는것을 볼수 있습니다. 

 

 

IntelliJ GitLab Commit 

  • 프로젝트 선택후 마우스 우측 버튼을 클릭 합니다. 
  • Git -> Commit Directory.... 클릭 합니다. 

 

  • Commit Comment 를 작성하고 Commit and Push 버튼을 클릭 합니다. 

 

 

  • 정상적으로 Gitlab 에 Push 가 업로드 된것을 확인 할수 있습니다. 

 

 

 

728x90
반응형

+ Recent posts