Thứ tư, 24/01/2018 | 00:00 GMT+7

Cách cài đặt và cấu hình GitLab trên Ubuntu 16.04

GitLab CE, hoặc Community Edition, là một ứng dụng open-souce chủ yếu được sử dụng để lưu trữ các repository Git, với các tính năng bổ sung liên quan đến phát triển như theo dõi sự cố. Nó được thiết kế để được lưu trữ bằng cách sử dụng cơ sở hạ tầng của bạn và cung cấp sự linh hoạt trong việc triển khai như một repository nội bộ cho group phát triển của bạn, công khai như một cách để giao tiếp với user hoặc thậm chí mở như một cách để những người đóng góp lưu trữ các dự án của riêng họ.

Dự án GitLab giúp bạn dễ dàng cài đặt một version GitLab trên phần cứng của bạn với cơ chế cài đặt dễ dàng. Trong hướng dẫn này, ta sẽ trình bày cách cài đặt và cấu hình GitLab trên server Ubuntu 16.04.

Yêu cầu

Hướng dẫn này sẽ giả định bạn có quyền truy cập vào server Ubuntu 16.04 mới. Các yêu cầu phần cứng GitLab đã xuất bản khuyên bạn nên sử dụng server có:

  • 2 lõi
  • 4GB RAM

Mặc dù bạn có thể có được bằng cách thay thế một số không gian swap cho RAM, nhưng nó không được khuyến khích. Đối với hướng dẫn này, ta sẽ giả định bạn có các tài nguyên trên là tối thiểu.

Để bắt đầu, bạn cần một user không phải root có quyền truy cập sudo cấu hình trên server . Bạn cũng nên cài đặt một firewall cơ bản để cung cấp thêm một lớp bảo mật. Bạn có thể làm theo các bước trong hướng dẫn cài đặt server ban đầu Ubuntu 16.04 của ta để có được cài đặt này.

Khi bạn đã đáp ứng các yêu cầu trên, hãy tiếp tục bắt đầu quy trình cài đặt.

Cài đặt phụ thuộc

Trước khi ta có thể tự cài đặt GitLab, điều quan trọng là phải cài đặt một số phần mềm mà nó sử dụng trong quá trình cài đặt và liên tục. May mắn là tất cả các phần mềm cần thiết có thể được cài đặt dễ dàng từ repository mặc định của Ubuntu.

Vì đây là lần đầu tiên ta sử dụng apt trong phiên này, ta có thể cập nhật OS local và sau đó cài đặt các phụ thuộc bằng lệnh :

  • sudo apt-get update
  • sudo apt-get install ca-certificates curl openssh-server postfix

Bạn có thể đã cài đặt một số phần mềm này. Để cài đặt postfix , hãy chọn Internet Site khi được yêu cầu . Trên màn hình tiếp theo, nhập domain hoặc địa chỉ IP của server của bạn để cấu hình cách hệ thống sẽ gửi thư.

Cài đặt GitLab

Bây giờ các phụ thuộc đã sẵn sàng, ta có thể cài đặt GitLab. Đây là một quá trình chuyển tiếp sử dụng lệnh cài đặt để cấu hình hệ thống của bạn với các repository GitLab.

Di chuyển vào /tmp và sau đó download lệnh cài đặt :

  • cd /tmp
  • curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Vui lòng kiểm tra tập lệnh đã download đảm bảo rằng bạn thấy phù hợp với các hành động mà nó sẽ thực hiện. Bạn cũng có thể tìm thấy version được lưu trữ trên server của tập lệnh tại đây :

  • less /tmp/script.deb.sh

Khi thấy ổn với sự an toàn của tập lệnh, hãy chạy trình cài đặt:

  • sudo bash /tmp/script.deb.sh

Tập lệnh sẽ cài đặt server của bạn để sử dụng các repository được duy trì của GitLab. Điều này cho phép bạn quản lý GitLab bằng cùng các công cụ quản lý gói mà bạn sử dụng cho các gói hệ thống khác của bạn . Sau khi hoàn tất, bạn có thể cài đặt ứng dụng GitLab thực với apt :

  • sudo apt-get install gitlab-ce

Thao tác này sẽ cài đặt các thành phần cần thiết trên hệ thống.

Điều chỉnh các luật firewall

Trước khi cấu hình GitLab, bạn cần đảm bảo các luật firewall của bạn đủ cho phép để cho phép lưu lượng truy cập web. Nếu bạn làm theo hướng dẫn được liên kết trong yêu cầu , bạn sẽ có một firewall ufw được kích hoạt.

Xem trạng thái hiện tại của firewall đang hoạt động của bạn bằng lệnh :

  • sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

Như bạn thấy , các luật hiện tại cho phép lưu lượng SSH thông qua, nhưng quyền truy cập vào các dịch vụ khác bị hạn chế. Vì GitLab là một ứng dụng web, ta nên cho phép truy cập HTTP. Nếu bạn có domain được liên kết với server GitLab của bạn , GitLab cũng có thể yêu cầu và kích hoạt certificate TLS / SSL miễn phí từ dự án Let's Encrypt đảm bảo cài đặt của bạn. Ta cũng muốn cho phép truy cập HTTPS trong trường hợp này.

Vì giao thức ánh xạ cổng cho HTTP và HTTPS có sẵn trong file /etc/services , ta có thể cho phép lưu lượng truy cập đó theo tên. Nếu bạn chưa bật lưu lượng OpenSSH, thì bây giờ bạn cũng nên cho phép lưu lượng đó:

  • sudo ufw allow http
  • sudo ufw allow https
  • sudo ufw allow OpenSSH

Nếu bạn kiểm tra lại lệnh ufw status , bạn sẽ thấy quyền truy cập được cấu hình cho ít nhất hai dịch vụ sau:

  • sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80 ALLOW Anywhere 443 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6)

Kết quả trên cho biết rằng giao diện web GitLab sẽ có thể truy cập được sau khi ta cấu hình ứng dụng.

Chỉnh sửa file cấu hình GitLab

Trước khi có thể sử dụng ứng dụng, bạn cần cập nhật một file cấu hình và chạy lệnh cấu hình lại. Đầu tiên, hãy mở file cấu hình của Gitlab:

  • sudo nano /etc/gitlab/gitlab.rb

Gần trên cùng là dòng cấu hình external_url . Cập nhật nó để trùng với domain hoặc địa chỉ IP của bạn . Nếu bạn có domain , hãy thay đổi http thành https để GitLab sẽ tự động chuyển hướng user đến trang web được bảo vệ bởi certificate Let's Encrypt mà ta sẽ yêu cầu.

/etc/gitlab/gitlab.rb
# If your GitLab server does not have a domain name, you will need to use an IP # address instead of a domain and keep the protocol as `http`. external_url 'https://yourdomain' 

Tiếp theo, nếu server GitLab của bạn có domain , hãy tìm kiếm file cho cài đặt letsencrypt['enable'] . Bỏ comment và đặt nó thành true . Điều này sẽ yêu cầu GitLab certificate request Let's Encrypt cho domain GitLab của bạn và cấu hình ứng dụng để cung cấp lưu lượng truy cập với nó.

Dưới đó, hãy tìm cài đặt letsencrypt['contact_emails'] . Cài đặt này xác định danh sách địa chỉ email mà dự án Let's Encrypt có thể sử dụng để liên hệ với bạn nếu có vấn đề với domain của bạn. Bạn cũng nên bỏ ghi chú và điền vào phần này để biết bất kỳ vấn đề nào:

/etc/gitlab/gitlab.rb
letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['sammy@yourdomain.com'] 

Lưu và đóng file . Bây giờ, hãy chạy lệnh sau để cấu hình lại Gitlab:

  • sudo gitlab-ctl reconfigure

Thao tác này sẽ khởi tạo GitLab bằng cách sử dụng thông tin nó có thể tìm thấy về server của bạn. Đây là một quá trình hoàn toàn tự động, vì vậy bạn sẽ không phải trả lời bất kỳ dấu nhắc nào. Nếu bạn đã bật tích hợp Let's Encrypt, certificate sẽ được cấu hình cho domain của bạn.

Thực hiện cấu hình ban đầu thông qua giao diện web

Bây giờ GitLab đang chạy và quyền truy cập được phép, ta có thể thực hiện một số cấu hình ban đầu của ứng dụng thông qua giao diện web.

Đăng nhập lần đầu tiên

Truy cập domain của server GitLab trong trình duyệt web :

http://gitlab_domain_or_IP 

Nếu bạn đã bật Let's Encrypt và sử dụng https trong external_url , bạn sẽ được chuyển hướng đến kết nối HTTPS an toàn.

Trong lần đầu tiên truy cập, bạn sẽ thấy dấu nhắc ban đầu đặt password cho account quản trị:

 Dấu nhắc  đặt password  ban đầu của GitLab

Trong dấu nhắc password ban đầu, hãy cung cấp và xác nhận password an toàn cho account quản trị. Nhấp vào nút Thay đổi password của bạn khi bạn hoàn tất.

Bạn sẽ được chuyển hướng đến trang đăng nhập GitLab thông thường:

 Dấu nhắc  đăng nhập GitLab lần đầu tiên

Tại đây, bạn có thể đăng nhập bằng password vừa đặt. Các thông tin đăng nhập là:

  • Tên user : root
  • Mật khẩu: [mật khẩu bạn đặt]

Nhập các giá trị này vào các trường cho user hiện tại và nhấp vào nút Đăng nhập . Bạn sẽ được đăng nhập vào ứng dụng và được đưa đến trang đích nhắc bạn bắt đầu thêm các dự án:

Trang đích đăng nhập ban đầu của GitLab

Như vậy, bạn có thể thực hiện một số thay đổi đơn giản để cài đặt GitLab theo cách bạn muốn.

Điều chỉnh cài đặt profile của bạn

Một trong những điều đầu tiên bạn nên làm sau khi cài đặt mới là làm cho profile của bạn trở nên tốt hơn. GitLab chọn một số giá trị mặc định hợp lý, nhưng chúng thường không phù hợp khi bạn bắt đầu sử dụng phần mềm.

Để thực hiện các sửa đổi cần thiết, hãy nhấp vào biểu tượng user ở góc trên bên phải của giao diện. Trong menu thả xuống xuất hiện, chọn Cài đặt :

Nút cài đặt profile  GitLab

Bạn sẽ được đưa đến phần Hồ sơ trong cài đặt của bạn :

Trang cài đặt profile  GitLab

Điều chỉnh Tên và địa chỉ Email từ “ Administrator ” và “ admin@example.com ” thành tên chính xác hơn. Tên bạn chọn sẽ được hiển thị cho những user khác, trong khi email sẽ được sử dụng để phát hiện ảnh đại diện mặc định, thông báo, tác vụ Git thông qua giao diện, v.v.

Nhấp vào nút Cập nhật cài đặt cấu hình ở dưới cùng khi bạn hoàn tất:

Nút cài đặt cấu hình cập nhật GitLab

Một email xác nhận sẽ được gửi đến địa chỉ bạn đã cung cấp. Làm theo hướng dẫn trong email để xác nhận account của bạn để bạn có thể bắt đầu sử dụng nó với GitLab.

Thay đổi tên account của bạn

Tiếp theo, nhấp vào mục Tài khoản trong thanh menu bên trái:

Mục menu account  GitLab

Tại đây, bạn có thể tìm thấy mã thông báo API riêng tư của bạn hoặc cấu hình xác thực hai yếu tố. Tuy nhiên, chức năng mà ta quan tâm lúc này là phần Thay đổi tên user .

Theo mặc định, account quản trị đầu tiên được đặt tên gốc . Vì đây là tên account đã biết, nên thay đổi tên khác sẽ an toàn hơn. Bạn vẫn sẽ có quyền quản trị; điều duy nhất sẽ thay đổi là tên:

Phần thay đổi tên  user  GitLab

Nhấp vào nút Cập nhật tên user để thực hiện thay đổi:

Nút tên  user  cập nhật GitLab

Lần tới khi bạn đăng nhập vào GitLab, hãy nhớ sử dụng tên user mới của bạn.

Thêm SSH key vào account của bạn

Trong hầu hết các trường hợp, bạn cần sử dụng các SSH key với Git để tương tác với các dự án GitLab của bạn . Để thực hiện việc này, bạn cần thêm public key SSH vào account GitLab của bạn .

Nếu bạn đã tạo một cặp SSH key trên máy tính local của bạn , bạn thường có thể xem public key bằng lệnh :

  • cat ~/.ssh/id_rsa.pub

Bạn sẽ thấy một lượng lớn văn bản, như thế này:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Sao chép văn bản này và quay lại trang Cài đặt Cấu hình trong giao diện web của GitLab.

Thay vào đó, nếu bạn nhận được một thông báo giống như thế này, bạn chưa có cặp SSH key được cấu hình trên máy của bạn :

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

Nếu đúng như vậy, bạn có thể tạo cặp SSH key bằng lệnh :

  • ssh-keygen

Chấp nhận các giá trị mặc định và tùy chọn cung cấp password để bảo mật khóa local :

Output
Generating public/private rsa key pair. Enter file in which to save the key (/home/sammy/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/sammy/.ssh/id_rsa. Your public key has been saved in /home/sammy/.ssh/id_rsa.pub. The key fingerprint is: SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work The key's randomart image is: +---[RSA 2048]----+ | ..%o==B| | *.E =.| | . ++= B | | ooo.o . | | . S .o . .| | . + .. . o| | + .o.o ..| | o .++o . | | oo=+ | +----[SHA256]-----+

Khi bạn có điều này, bạn có thể hiển thị public key của bạn như trên bằng lệnh :

  • cat ~/.ssh/id_rsa.pub
Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Sao chép khối văn bản được hiển thị và quay lại Cài đặt profile của bạn trong giao diện web của GitLab.

Nhấp vào mục SSH Keys ở menu bên trái:

Mục menu GitLab SSH Keys

Trong không gian được cung cấp, hãy dán public key bạn đã sao chép từ máy local của bạn . Đặt cho nó một tiêu đề mô tả và nhấp vào nút Thêm khóa :

GitLab thêm SSH Key

Như vậy, bạn có thể quản lý các dự án và repository GitLab của bạn từ máy local mà không cần phải cung cấp thông tin đăng nhập account GitLab của bạn .

Hạn chế hoặc vô hiệu hóa đăng ký công khai (Tùy chọn)

Bạn có thể nhận thấy rằng bất kỳ ai cũng có thể đăng ký account khi bạn truy cập trang đích của version GitLab của bạn . Đây có thể là những gì bạn muốn nếu bạn đang muốn tổ chức dự án công cộng. Tuy nhiên, nhiều khi mong muốn các cài đặt hạn chế hơn.

Để bắt đầu, hãy đến khu vực quản trị bằng cách nhấp vào biểu tượng cờ lê trong thanh menu chính ở đầu trang:

Nút khu vực quản trị GitLab

Trên trang tiếp theo, bạn có thể thấy tổng quan về toàn bộ version GitLab của bạn . Để điều chỉnh cài đặt, hãy nhấp vào mục Cài đặt ở cuối menu bên trái.

Nút cài đặt quản trị GitLab

Bạn sẽ được đưa đến cài đặt chung cho version GitLab của bạn . Tại đây, bạn có thể điều chỉnh một số cài đặt ảnh hưởng đến việc liệu user mới có thể đăng ký hay không và mức độ truy cập của họ.

Tắt đăng ký

Nếu bạn muốn tắt hoàn toàn đăng ký (bạn vẫn có thể tạo account cho user mới theo cách thủ công), hãy cuộn xuống phần Hạn chế đăng ký .

Bỏ chọn hộp kiểm Đã bật đăng ký:

GitLab bỏ chọn các đăng ký đã bật

Cuộn xuống dưới cùng và nhấp vào nút Lưu :

Nút cài đặt lưu GitLab

Bây giờ, phần đăng ký sẽ được xóa khỏi trang đích GitLab.

Hạn chế đăng ký theo domain

Nếu bạn đang sử dụng GitLab như một phần của tổ chức cung cấp địa chỉ email được liên kết với domain , bạn có thể hạn chế đăng ký theo domain thay vì tắt hoàn toàn chúng.

Trong phần Giới hạn Đăng ký , trước tiên hãy chọn hộp Gửi email xác nhận khi đăng ký chỉ cho phép user đăng nhập sau khi họ đã xác nhận email của bạn .

Tiếp theo, thêm domain của bạn hoặc các domain của bạn vào hộp Các miền trong danh sách trắng dành cho đăng ký , một miền trên mỗi dòng. Bạn có thể sử dụng dấu hoa thị “*” để chỉ định các domain ký tự đại diện:

GitLab hạn chế đăng ký theo domain

Cuộn xuống dưới cùng và nhấp vào nút Lưu :

Nút lưu cài đặt GitLab

Phần đăng ký bây giờ sẽ được xóa khỏi trang đích GitLab.

Hạn chế tạo dự án

Theo mặc định, user mới có thể tạo tối đa 10 dự án. Nếu bạn muốn cho phép user mới từ bên ngoài hiển thị và tham gia, nhưng muốn hạn chế quyền truy cập của họ để tạo dự án mới, bạn có thể làm như vậy trong phần Cài đặt account và giới hạn .

Bên trong, bạn có thể thay đổi giới hạn Dự án mặc định thành 0 để vô hiệu hóa hoàn toàn user mới tạo dự án:

GitLab đặt các dự án thành 0

User mới vẫn có thể được thêm vào các dự án theo cách thủ công và sẽ có quyền truy cập vào các dự án nội bộ hoặc công khai do user khác tạo.

Cuộn xuống dưới cùng và nhấp vào nút Lưu :

Nút lưu cài đặt GitLab

User mới bây giờ sẽ có thể tạo account , nhưng không thể tạo dự án.

Tạo công việc Cron để tự động gia hạn certificate Let's Encrypt

Theo thiết kế, certificate Let's Encrypt chỉ có giá trị trong 90 ngày. Nếu bạn đã bật Let's Encrypt cho domain GitLab của bạn trước đó, bạn cần đảm bảo certificate của bạn được gia hạn thường xuyên để tránh gián đoạn dịch vụ. GitLab cung cấp lệnh gitlab-ctl renew-le-certs để certificate request mới khi nội dung hiện tại của bạn sắp hết hạn.

Để tự động hóa quá trình này, ta có thể tạo cron job để tự động chạy lệnh này một cách thường xuyên. Lệnh sẽ chỉ gia hạn certificate khi nó gần hết hạn, vì vậy ta có thể chạy nó thường xuyên một cách an toàn.

Để bắt đầu, hãy tạo và mở một file tại /etc/cron.daily/gitlab-le trong editor của bạn:

  • sudo nano /etc/cron.daily/gitlab-le

Bên trong, dán tập lệnh sau:

/etc/cron.daily/gitlab-le
#!/bin/bash  set -e  /usr/bin/gitlab-ctl renew-le-certs > /dev/null 

Lưu file khi bạn hoàn tất.

Đánh dấu file là có thể thực thi bằng lệnh :

  • sudo chmod +x /etc/cron.daily/gitlab-le

Như vậy, GitLab sẽ tự động kiểm tra mỗi ngày xem certificate Let's Encrypt của nó có cần được gia hạn hay không. Nếu đúng như vậy, lệnh sẽ tự động gia hạn certificate .

Kết luận

Đến đây bạn sẽ có một version GitLab đang hoạt động được lưu trữ trên server của bạn . Bạn có thể bắt đầu nhập hoặc tạo các dự án mới và cấu hình cấp độ truy cập thích hợp cho group của bạn . GitLab thường xuyên bổ sung các tính năng và cập nhật nền tảng của họ, vì vậy hãy nhớ xem trang chủ của dự án để cập nhật bất kỳ cải tiến hoặc thông báo quan trọng nào.


Tags:

Các tin liên quan

Cách cài đặt và bảo mật Grafana trên Ubuntu 16.04
2017-12-27
Cách cài đặt Prometheus trên Ubuntu 16.04
2017-12-14
Cách theo dõi cảnh báo Nagios với Alerta trên Ubuntu 16.04
2017-12-13
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.04
2017-12-01
Cách cài đặt và sử dụng TensorFlow trên Ubuntu 16.04
2017-12-01
Cách cài đặt Elasticsearch, Logstash và Kibana (ELK Stack) trên Ubuntu 14.04
2017-12-01
Cách cài đặt Jenkins trên Ubuntu 16.04
2017-11-29
Cách tạo thiết lập tính khả dụng cao với Heartbeat và IP nổi trên Ubuntu 16.04
2017-11-22
Cách cài đặt phpIPAM trên Ubuntu 16.04
2017-11-22
Cách sử dụng Logrotate và S3cmd để lưu trữ log vào bộ nhớ đối tượng trên Ubuntu 16.04
2017-11-09