Anonim

왜 Gitlab인가

빠른 링크

  • 왜 Gitlab인가
  • 설정
  • 종속성 설치
  • Gitlab 설치
  • 설정 실행
  • 초기 설정
  • SSH 설정
    • 일반 SSH의 경우
  • UFW 구성
  • 결산 생각

프로젝트를 호스팅하고 코드를 공유하기위한 훌륭한 옵션이 많이 있습니다. 지금 무료로 Github 계정을 설정할 수 있습니다. 그렇다면 왜 직접 Gitlab을 설치하는 데 어려움을 겪고 싶습니까?

실제로 몇 가지 좋은 주장이 있지만 실제로는 프라이버시가 아닙니다. Gitlab은 당신입니다. 당신은 그것을 호스팅하고 그것을 소유합니다. 따라서 리포지토리에 액세스 할 수있는 사람을 제어 할 수 있습니다. 이는 또한 플랫폼 자체를 제어 할 수 있음을 의미합니다. 회사 정책, 가격의 임의 변경 또는 데이터 수집의 대상이되지 않습니다.

자체 호스팅 버전 제어는 또한 코드에 액세스하는 서비스에 의존하지 않음을 의미합니다. 물론, 정전으로 인해 Github 또는 다른 유사한 서비스가 완전히 사용 불가능할 가능성은 적지 만 전혀 그렇지는 않습니까?

Gitlab은 설치가 매우 쉽고 오픈 소스 Gitlab 소프트웨어를 실행하는 Linux 서버 만 있으면됩니다. 대부분의 서버는 사전 구성되어 바로 실행할 수 있습니다.

설정

시작하기 전에 로컬에서 호스팅 할 계획이 아니라면 Gitlab을 호스팅하도록 VPS를 설정해야합니다. DigitalOceanLinode 와 같은 호스팅 회사는 서버를 가동 할 수있는 비용 효율적인 옵션을 제공합니다.

서버의 도메인 이름도 구입하는 것이 좋습니다. 또는 Gitlab 서버에서 기존 도메인 이름의 하위 도메인을 가리킬 수 있습니다. 어느 쪽이든 웹 인터페이스에 더 쉽게 액세스 할 수 있습니다.

이 안내서는 Ubuntu 16.04 LTS를 따릅니다. Ubuntu의 최신 장기 지원 릴리스이며 작업하기가 매우 쉽습니다. 데비안 스트레치 (Stable)도 훌륭한 선택이 될 것이며, 이 가이드의 대부분은 그것과 함께 사용할 것입니다. DigitalOcean과 Linode는 모두 원하는 OS로 서버를 설정하므로 Ubuntu를 설치할 필요가 없습니다.

종속성 설치

Ubuntu를 처음 부팅 할 때 사용 가능한 보안 수정 사항이 없도록 시스템을 업데이트하는 것이 좋습니다. 먼저 해봐.

$ sudo apt 업데이트 $ sudo apt 업그레이드

업데이트 실행이 끝나면 Gitlab을 시작하기 위해 설치해야 할 몇 가지 사항이 있습니다. apt를 사용하여 설치하십시오.

$ sudo apt install curl openssh-server ca-certificates 접미사

그게 다야. Gitlab 설치 프로그램 스크립트를 실행할 준비가되었습니다.

Gitlab 설치

Gitlab은 자체 데비안 / 우분투 저장소를 유지합니다. 서버에서 리포지토리를 활성화하려면 Gitlab 팀에서 제공하는 편리한 설치 스크립트를 다운로드하여 실행하십시오.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

그것은 많은 것처럼 보일지 모르지만 스크립트를 다운로드하고 명령 줄 셸에 지시합니다. 스크립트를 실행하고 리포지토리를 설정하는 데 몇 초가 걸립니다. 설치가 완료되면 Gitlab 패키지를 설치할 수 있습니다.

$ sudo apt 설치 gitlab-ce

설치하는 데 몇 분이 걸립니다. Gitlab은 "Omnibus 패키지"라는 하나의 큰 패키지로 제공됩니다. Gitlab에 필요한 모든 것이 함께 제공됩니다.

설정 실행

Gitlab을 구성하기 위해 실행해야하는 설정 스크립트가 있습니다. 방금 설치 한 패키지로 제공되므로 지금 실행할 수 있습니다.

$ sudo gitlab-ctl 재구성

스크립트는 모든 것을 실행하는 데 몇 분이 걸립니다. 대부분 Gitlab에 대한 데이터베이스 백엔드를 설정합니다. 화면에서 실행중인 많은 Ruby on Rails 마이그레이션이 표시됩니다. 시간이 걸릴 수 있지만 완료되면 Gitlab을 사용할 수 있습니다.

초기 설정

웹 브라우저를 열고 Gitlab 서버로 이동하십시오. 관리자 암호를 설정하라는 페이지가 나타납니다. 이것은 분명히 관리자 계정의 비밀번호입니다. 기본적으로 해당 계정 이름은 "root"입니다.

해당 계정을 설정 한 후에는 해당 계정으로 로그인하거나 일반 사용자 계정을 등록하고 로그인 할 수 있습니다. 로그인하면 저장소를 만들고 관리하기 위해 전체 Gitlab 대시 보드에 액세스 할 수 있습니다.

SSH 설정

비밀번호를 사용하여 프로젝트 변경 사항을 푸시하지 않아도됩니다. 고통스럽고 안전하지 않습니다. 가장 좋은 방법은 키가 설치된 컴퓨터에서 자동으로 로그인 할 SSH를 만드는 것입니다.

SSH 키는 Linux 및 Mac에서 작성하기가 매우 쉽습니다. Windows 10에서는 사용 가능한 OpenSSH 앱을 통해 프로세스가 동일해야합니다.

터미널을 열고 다음 명령을 실행하여 키를 만듭니다. 컴퓨터의 로그인 정보 만 사용하려는 경우 -C ''부분을 생략 할 수 있습니다. 그렇지 않으면 이메일 주소가 일반적으로 올바른 전화입니다.

$ ssh-keygen -b 4096 -t rsa -C ''

프로세스는 몇 단계를 안내합니다. 기본값은 대부분 좋고 모든 것이 상당히 설명 적입니다. 비밀번호를 키와 연결하기로 선택한 경우 로그인하거나 변경 사항을 푸시 할 때마다 해당 비밀번호가 필요합니다. 비밀번호를 사용하지 않으려면 비워 둘 수 있습니다.

키를 보려면 아래 명령을 실행하십시오. 그것은 말도 안되는 소리처럼 보일 것입니다. 본질적으로 그것은 핵심입니다. 터미널에서 복사하여 Gitlab에 붙여 넣어야합니다.

$ 고양이 ~ / .ssh / id_rsa.pub

Gitlab으로 돌아가서 화면 오른쪽 상단의 프로파일 아이콘을 클릭하십시오. 그런 다음 결과 메뉴에서 "설정"을 클릭하십시오. 페이지 왼쪽의 메뉴에서“SSH 키”를 클릭하십시오.

터미널에서 키를 복사하십시오. "ssh-rsa"다음에 시작하여 이메일 주소보다 먼저 중지하십시오. 따라서 말도 안되는 부분을 복사하십시오. "Key"라고 표시된 큰 상자에 붙여 넣으십시오. 키 이름을 지정하고 저장하십시오. 이때부터 로그인하지 않고도 코드를 리포지토리에 푸시 할 수 있습니다.

일반 SSH의 경우

이미 SSH 키가 있습니다. SSH에도 사용할 수 있습니다. OpenSSH에는 키를 서버로 푸시하는 내장 유틸리티가 있습니다.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

server_username 및 SERVER_IP를 서버의 사용자 이름 및 서버의 IP 주소로 바꾸십시오.

새 키를 사용하여 서버에 다시 로그인하십시오.

$ ssh _IP

비밀번호를 입력 할 필요없이 즉시 연결해야합니다.

나머지 SSH도 잠그는 것이 좋습니다. 아마도 공개 서버에서 가장 약한 점 중 하나 일 것입니다. 서버에서 선택한 텍스트 편집기에서 / etc / ssh / sshd_confg를 엽니 다.

변경해야 할 사항이 몇 가지 있습니다. 먼저 PermitRootLogin을 찾아 no로 설정하십시오.

허가 루트 로그인

그런 다음, PasswordAuthentication을 찾아서 주석 처리를 제거하고 아니오로 설정하십시오.

비밀번호 인증 번호

그런 다음 다음 두 줄이 no로 설정되어 있는지 확인하십시오. 그들은 우분투에서 기본적으로 있어야하지만 확인하는 것이 좋습니다.

호스트 기반 인증 없음

마지막으로, 구성 맨 아래에서 UsePAM을 찾아서 너무 설정하지 마십시오.

사용 PAM no

구성을 저장하고 종료하십시오. 그런 다음 SSH 서비스를 다시 시작하십시오.

$ sudo systemctl 다시 시작 sshd

UFW 구성

마지막으로 수행 할 보안 조치는 방화벽 설치 및 설정입니다. 우분투는 적절하게 명명 된 복잡하지 않은 방화벽 (UFW)과 매우 잘 작동합니다. iptables 커널 방화벽을 감싸는 래퍼 일 뿐이지 만 방화벽 작업이 훨씬 쉬워집니다. 계속해서 설치하십시오.

$ sudo apt 설치 ufw

ufw를 설치 한 후에는 기본 규칙을 설정하여 모든 것을 거부하십시오.

$ sudo ufw 기본 수신 거부 $ sudo ufw 기본 수신 거부 $ sudo ufw 기본 거부 전달

다음으로 Git을 포함한 기본 서비스를 허용하도록 규칙을 설정하십시오. 의견은 정보를위한 것입니다. 그들을 실행하려고하지 마십시오.

# SSH $ sudo ufw 허용 ssh $ sudo ufw 허용 ssh # 웹용 HTTP 및 HTTPS $ sudo ufw 허용 http $ sudo ufw 허용 http $ sudo ufw 허용 https $ sudo ufw 허용 https # NTP 시간 유지 올바른 $ sudo ufw 허용 ntp $ sudo ufw 허용 ntp # DNS 도메인 확인을위한 포트 53 $ sudo ufw 허용 53 $ $ sudo ufw 허용 53 # 아마도 필요하지 않을 것입니다 # 서버에서 DHCP를 사용하는 경우 차단 해제 67 $ sudo ufw 67에 허용 $ sudo ufw 67 허용 # 마지막으로, Git $ sudo ufw 9418에 허용 $ sudo ufw allo out 9418

모든 것이 좋은지 확인하고 방화벽을 활성화하십시오.

$ sudo ufw 활성화

다음을 통해 방화벽 상태를 확인할 수 있습니다.

$ sudo ufw 상태

그게 다야! Gitlab 서버는 방화벽 뒤에 있습니다.

결산 생각

이제 Gitlab 서버가 작동합니다. Gitlab 인터페이스를 통해 사용자 계정 및 프로젝트 설정을 시작할 수 있습니다. Gitlab은 이제 일반 우분투 패키지이므로 시스템을 업데이트하면 apt로 정기적으로 업데이트됩니다.

Gitlab은 자체 프로젝트와 팀과 함께 작업 할 수있는 대규모 프로젝트를 관리하는 데 필요한 모든 유연성을 제공합니다. 점점 더 많은 팀이 의존하기 시작한 완전히 유능하고 강력한 플랫폼입니다.

Gitlab으로 자신의 소프트웨어 프로젝트 호스팅