ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 깃랩 Gitlab 설치 - Rocky Linux 9.2
    Git 2024. 2. 6. 21:51
    반응형

    Rocky 에 Gitlab 설치 진행시

    필요한 최소 사양

     

    • 1GB 이상의 사용 가능한 RAM
    • *SSL 인증 사용시 - 도메인 필요
    • sudo 권한의 사용자

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

     

    # 1. 필수 패키지 업데이트

    sudo dnf -y update

     

    종속성 설치

    sudo dnf -y install curl vim policycoreutils python3-policycoreutils git

     

    # 2. Gitlab CE 추가

     

    시스템에 공식 저장소를 추가 (* Rocky Linux에서 Gitlab 기본 레포지토리를 지원하지 않아서 추가해야함.)

    sudo vim /etc/yum.repos.d/gitlab_gitlab-ce.repo

     

    .repo 파일에 해당 내용 추가

    [gitlab_gitlab-ce]
    name=gitlab_gitlab-ce
    baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/$basearch
    repo_gpgcheck=1
    gpgcheck=1
    enabled=1
    gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
           https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    [gitlab_gitlab-ce-source]
    name=gitlab_gitlab-ce-source
    baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/SRPMS
    repo_gpgcheck=1
    gpgcheck=1
    enabled=1
    gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
           https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300

     

    저장소가 생성됬는지 확인

    dnf repolist

     

    생성이 되었다면 콘솔 창에 저장소가 확인 된다.

    gitlab_gitlab-ce
    gitlab_gitlab-ce-source

     

    # 3. Gitlab CE 설치

    Gitlab CE 설치

    sudo dnf install gitlab-ce -y

     

    *Gitlab EE 를 설치한다면

    sudo dnf install gitlab-ee -y

     

    설치가 완료됬을때의 이미지

    Gitlab-CE Install Complate

     

    # 4. Gitlab CE 구성을 환경에 맞게 수정

     

    Gitlab 구성 파일은 해당 경로에 존재

    /etc/gitlab/gitlab.rb

     

    Url 정보 수정을 위해 편집

    (* Vim 이용시 "?" 을 이용해서 원하는 변수명에 쉽게 접근할 수 있다. )

    sudo vim /etc/gitlab/gitlab.rb

     

    external_url 변수를 찾아 편집해야함 

    (*초기 세팅 - external_url 'http://gitlab.example.com' )

    주석을 풀고
    external_url 'http://gitlab.newDomain.com' # 도메인이 있다면 진행
    external_url 'http://serverIP' # 도메인이 없을때 진행
    external_url 'http://gitlab.newDomain.com:8443' # 도메인이 있고, 방화벽 포트 설정시 진행

     

    도메인 정보 변경 뒤 Gitlab 재구성 진행

    sudo gitlab-ctl reconfigure

     

    Gitlab 실행 상태 확인

    sudo gitlab-ctl status
    run: alertmanager: (pid 35396) 72s; run: log: (pid 35072) 168s
    run: gitaly: (pid 35425) 67s; run: log: (pid 34222) 341s
    run: gitlab-exporter: (pid 35373) 74s; run: log: (pid 34861) 201s
    run: gitlab-kas: (pid 35350) 76s; run: log: (pid 34540) 308s
    run: gitlab-workhorse: (pid 35362) 75s; run: log: (pid 34711) 230s
    run: grafana: (pid 35408) 71s; run: log: (pid 35260) 105s
    run: logrotate: (pid 34114) 355s; run: log: (pid 34122) 354s
    run: nginx: (pid 34754) 226s; run: log: (pid 34764) 222s # nginx가 down되있으면 안됨
    run: node-exporter: (pid 35369) 75s; run: log: (pid 34825) 212s
    run: postgres-exporter: (pid 35402) 71s; run: log: (pid 35120) 161s
    run: postgresql: (pid 34376) 321s; run: log: (pid 34397) 319s
    run: prometheus: (pid 35380) 74s; run: log: (pid 35019) 178s
    run: puma: (pid 34618) 249s; run: log: (pid 34626) 246s
    run: redis: (pid 34160) 349s; run: log: (pid 34169) 347s
    run: redis-exporter: (pid 35375) 74s; run: log: (pid 34890) 189s
    run: sidekiq: (pid 34646) 243s; run: log: (pid 34662) 240s

     

    Gitlab 서비스 중지 / 시작 명령

    sudo gitlab-ctl stop
    sudo gitlab-ctl start

     

    # 5. 방화벽 설정

     

    방화벽 설정을 위해 방화벽 서비스 시작

    systemctl start firewalld

     

    부팅시 방화벽 자동 실행 및 해제

    systemctl enable firewalld # 자동 실행
    systemctl disable firewalld # 자동 실행 해제

     

    HTTP / HTTPS / SSH 서비스 허용

    sudo firewall-cmd --permanent --add-service={ssh,http,https} --permanent
    sudo firewall-cmd --reload # 추가된 룰이 있을시 무조건 재시작

     

    특정 포트로 허용

    firewall-cmd --permanent --add-port=8443/tcp # 추가
    firewall-cmd --permanent --remove-port=8443/tcp # 제거
    sudo firewall-cmd --reload # 추가된 룰이 있을시 무조건 재시작

     

    # 6. Gitlab 서버 접속

     

    external_url 변수에 적용한 url로 접속할 수 있다.

     

    초기 로그인 화면에서 root 계정으로 접근해야하는데,패스워드 정보는 특정 경로에서 확인할수 있다.

    sudo cat /etc/gitlab/initial_root_password
    # WARNING: This value is valid only in the following conditions
    #          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
    #          2. Password hasn't been changed manually, either via UI or via command line.
    #
    #          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
    
    Password: a827WNdgqHmv+ZNMdfeOcgzNAEXlh39bbl9dUzZnOQ=
    
    # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

     

    root 계정으로 로그인에 성공하고 User 메뉴에서 Password 변경을 진행하면 된다.

     

    Create Project

     

     

    Black 로 생성할 수 있고, 템플릿형태 및 프로젝트를 임포트하는 방식으로도 구성할 수 있다.

     

    Create blank project

     

    빈 프로젝트로 생성하는 경우

     

    Created blank project

     

     

    # 7. 프로젝트 생성시 원활한 pull과 push를 위해 SSH Key 발급

    (* SSH 방식을 통한 git 제어 )

     

    gitlab 서버 root 경로에서 ".ssh" 폴더로 이동, 폴더가 없다면 mkdir 으로 폴더 생성

    .ssh 폴더로 이동 이후 RSA 키 생성

    ssh-keygen -t rsa -C "gitlab Account Email" -b 4096

     

    기본 경로로 /root/.ssh/id_rsa.pub 가 발급되는데, 생성시 원하는 경로와 파일명으로 제어할 수 있다.

     

    키 발급 이후 .pub RSA키를 복사하고 프로젝트에 SSH 키를 입력한다

    cd /root/.ssh
    cat id_rsa.pub

     

    정상적으로 입력되었다면, 

    아이디, 패스워드 필요없이 SSH 방식을 통해 git 명령을 이용할 수 있다.

     

    * 참고한 문서

    https://ko.linux-console.net/?p=22416#google_vignette

    반응형

    댓글

Designed by Tistory.