Làm thế nào để cài đặt và cấu hình GitLab trên Ubuntu 16.04
Giới thiệu GitLab CE, hoặc Community Edition, là một ứng dụng mã nguồn mở chủ yếu được sử dụng để lưu trữ các kho Git, với các tính năng liên quan đến phát triển bổ sung như theo dõi vấn đề. Nó được thiết kế để được lưu trữ bằng cách sử dụng cơ sở hạ tầng của riêng bạn, và cung cấp sự linh hoạt ...
Giới thiệu
GitLab CE, hoặc Community Edition, là một ứng dụng mã nguồn mở chủ yếu được sử dụng để lưu trữ các kho Git, với các tính năng liên quan đến phát triển bổ sung như theo dõi vấn đề. Nó được thiết kế để được lưu trữ bằng cách sử dụng cơ sở hạ tầng của riêng bạn, và cung cấp sự linh hoạt trong việc triển khai như một kho lưu trữ nội bộ cho nhóm phát triển của bạn, công khai như một cách để giao tiếp với người dùng, hoặc thậm chí mở như một cách để các nhà đóng góp lưu trữ các dự án của riêng họ.
Dự án GitLab làm cho nó tương đối thẳng về phía trước để thiết lập một cá thể GitLab trên phần cứng của riêng bạn với một cơ chế cài đặt dễ dàng. Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách cài đặt và cấu hình GitLab trên máy chủ Ubuntu 16.04.
Điều kiện tiên quyết
Hướng dẫn này sẽ giả định rằng bạn có quyền truy cập vào một máy chủ Ubuntu 16.04 mới. Các xuất bản yêu cầu phần cứng GitLab khuyên bạn nên sử dụng máy chủ với:
- 2 lõi
- RAM 4GB
Mặc dù bạn có thể có được bằng cách thay thế một số không gian trao đổi cho RAM, nó không được khuyến khích. Đối với hướng dẫn này, chúng tôi sẽ giả định rằng bạn có các tài nguyên ở mức tối thiểu.
Để bắt đầu, bạn sẽ cần một người dùng không phải root với sudo truy cập được cấu hình trên máy chủ. Nó cũng là một ý tưởng tốt để thiết lập một tường lửa 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 máy chủ ban đầu cho Ubuntu 16.04 để có được thiết lập này.
Khi bạn đã hài lòng các điều kiện tiên quyết ở trên, hãy tiếp tục để bắt đầu quy trình cài đặt.
Cài đặt các phụ thuộc
Trước khi chúng ta có thể 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 thay, tất cả các phần mềm cần thiết có thể dễ dàng được cài đặt từ kho lưu trữ gói mặc định của Ubuntu.
Vì đây là lần đầu tiên chúng tôi sử dụng apt trong phiên này, chúng ta có thể làm mới chỉ mục gói cục bộ và sau đó cài đặt các phụ thuộc bằng cách gõ:
sudo apt-get update sudo apt-get install ca-certificates curl openssh-server postfix
Bạn có thể sẽ cài đặt một số phần mềm này. Cho postfix cài đặt, chọn Trang web Internet khi được nhắc. Trên màn hình tiếp theo, nhập tên miền hoặc địa chỉ IP của máy chủ để định 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 được đặt ra, chúng ta có thể cài đặt GitLab. Đây là một quá trình chuyển tiếp thẳng tiến để tận dụng một kịch bản cài đặt để cấu hình hệ thống của bạn với các kho lưu trữ GitLab.
Chuyển vào /tmp và sau đó tải xuống tập lệnh cài đặt:
cd /tmp curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
Hãy kiểm tra kịch bản đã tải xuống để đảm bảo rằng bạn cảm thấy thoải mái với các hành động mà nó sẽ thực hiện. Bạn cũng có thể tìm thấy phiên bản tập lệnh được lưu trữ đây:
less /tmp/script.deb.sh
Khi bạn đã hài lòng 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ẽ thiết lập máy chủ của bạn để sử dụng kho lưu trữ GitLab. Điều này cho phép bạn quản lý GitLab với cùng một 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 mình. Khi quá trình này hoàn tất, bạn có thể cài đặt ứng dụng GitLab thực tế apt:
sudo apt-get install gitlab-ce
Điều này sẽ cài đặt các thành phần cần thiết trên hệ thống của bạn.
Điều chỉnh các quy tắc tường lửa
Trước khi bạn cấu hình GitLab, bạn sẽ cần phải đảm bảo rằng các quy tắc tường lửa của bạn đủ thuận lợi để 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 các điều kiện tiên quyết, bạn sẽ có ufw đã bật tường lửa.
Xem trạng thái hiện tại của tường lửa hoạt động của bạn bằng cách nhập:
sudo ufw status OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Như bạn có thể thấy, các quy tắc hiện tại cho phép lưu lượng truy cập SSH thông qua, nhưng việc 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, chúng ta nên cho phép truy cập HTTP. Nếu bạn có một tên miền được liên kết với máy chủ GitLab của bạn, GitLab cũng có thể yêu cầu và kích hoạt một chứng chỉ TLS / SSL miễn phí từ Hãy mã hóa dự án để đảm bảo cài đặt của bạn. Chúng tôi cũng sẽ 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 /etc/services tệp, chúng tôi 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 truy cập OpenSSH, bạn cũng nên cho phép lưu lượng truy cập đó:
sudo ufw allow http sudo ufw allow https sudo ufw allow OpenSSH
Nếu bạn kiểm tra ufw status lệnh một lần nữa, 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 OutputStatus: 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)
Đầu ra ở trên chỉ ra rằng giao diện web GitLab sẽ có thể truy cập được khi chúng ta cấu hình ứng dụng.
Chỉnh sửa tệp cấu hình GitLab
Trước khi bạn có thể sử dụng ứng dụng, bạn cần cập nhật một tệp cấu hình và chạy một lệnh cấu hình lại. Trước tiên, hãy mở tệp cấu hình của Gitlab:
sudo nano /etc/gitlab/gitlab.rb
Gần đầu là external_url dòng cấu hình. Cập nhật nó để khớp với tên miền hoặc địa chỉ IP của riêng bạn. Nếu bạn có miền, hãy thay đổi http đến https để GitLab sẽ tự động chuyển hướng người dùng đến trang web được bảo vệ bằng chứng chỉ Let's Encrypt, chúng tôi 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 máy chủ GitLab của bạn có tên miền, hãy tìm kiếm tệp cho letsencrypt['enable'] cài đặt. Bỏ ghi chú dòng và đặt nó thành true. Điều này sẽ yêu cầu GitLab yêu cầu chứng chỉ Let's Encrypt cho miền GitLab của bạn và định cấu hình ứng dụng để phân phối lưu lượng truy cập với nó.
Dưới đây, hãy tìm letsencrypt['contact_emails'] cài đặt. Cài đặt này xác định danh sách các đị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 miền của bạn. Bạn nên bỏ ghi chú và điền thông tin này để bạn biết về bất kỳ vấn đề nào:
/etc/gitlab/gitlab.rb
letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['sammy@yourdomain.com']
Lưu và đóng tập tin. Bây giờ, hãy chạy lệnh sau để cấu hình lại Gitlab:
sudo gitlab-ctl reconfigure
Điều này sẽ khởi tạo GitLab bằng cách sử dụng thông tin mà nó có thể tìm thấy về máy chủ 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ỳ lời nhắc nào. Nếu bạn đã bật tích hợp Hãy mã hóa, một chứng chỉ sẽ được định cấu hình cho miền 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à truy cập được cho phép, chúng 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 tên miền của máy chủ GitLab trong trình duyệt web của bạn:
http://gitlab_domain_or_IP
Nếu bạn bật Hãy mã hóa và sử dụng https trong của bạn external_url, bạn nên được chuyển hướng đến kết nối HTTPS an toàn.
Trong lần truy cập đầu tiên của bạn, bạn sẽ thấy lời nhắc ban đầu để đặt mật khẩu cho tài khoản quản trị:
Trong lời nhắc mật khẩu ban đầu, hãy cung cấp và xác nhận mật khẩu an toàn cho tài khoản quản trị. Nhấp vào Thay đổi mật khẩu 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:
Tại đây, bạn có thể đăng nhập bằng mật khẩu bạn vừa đặt. Thông tin đăng nhập là:
- Tên người dùng: nguồn gốc
- 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 người dùng hiện tại và nhấp vào Đăng nhập nút. Bạn sẽ được đăng nhập vào ứng dụng và được đưa đến trang đích sẽ nhắc bạn bắt đầu thêm dự án:
Bây giờ bạn có thể thực hiện một số thay đổi đơn giản để GitLab thiết lập theo cách bạn muốn.
Điều chỉnh cài đặt tiểu sử 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à đưa cấu hình của bạn vào hình dạng 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 thích 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 người dùng ở 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:
Bạn sẽ được đưa đến Hồ sơ phần cài đặt của bạn:
Điều chỉnh Tên và E-mail địa chỉ từ "Quản trị viên" và "admin@example.com"tên chính xác hơn. Tên bạn chọn sẽ được hiển thị cho người dùng khác, trong khi email sẽ được sử dụng để phát hiện hình đại diện mặc định, thông báo, hành động Git thông qua giao diện, v.v.
Nhấp vào Cập nhật cài đặt hồ sơ ở dưới cùng khi bạn hoàn thành:
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 tài khoản của bạn để bạn có thể bắt đầu sử dụng nó với GitLab.
Thay đổi tên tài khoản của bạn
Tiếp theo, nhấp vào Tài khoản mục trong thanh menu bên trái:
Tại đây, bạn có thể tìm thấy mã thông báo API riêng của mình hoặc định cấu hình xác thực hai yếu tố. Tuy nhiên, chức năng chúng tôi quan tâm vào lúc này là Thay đổi tên người dùng phần.
Theo mặc định, tài khoản quản trị đầu tiên được đặt tên nguồn gốc. Vì đây là tên tài khoản đã biết nên an toàn hơn để thay đổi tên khác này. Bạn vẫn sẽ có quyền quản trị; điều duy nhất sẽ thay đổi là tên:
Nhấp vào Cập nhật tên người dùng để thực hiện thay đổi:
Lần sau khi bạn đăng nhập vào GitLab, hãy nhớ sử dụng tên người dùng mới của bạn.
Thêm Khóa SSH vào Tài khoản của bạn
Trong hầu hết các trường hợp, bạn sẽ muốn sử dụng các khóa SSH với Git để tương tác với các dự án GitLab của bạn. Để thực hiện điều này, bạn cần phải thêm khóa công khai SSH vào tài khoản GitLab của mình.
Nếu bạn đã có một cặp khóa SSH được tạo trên máy tính cục bộ, bạn thường có thể xem khóa công khai bằng cách nhập:
cat ~/.ssh/id_rsa.pub
Bạn sẽ thấy một đoạn văn bản lớn, như thế này:
Outputssh-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.
Nếu, thay vào đó, bạn nhận được một thông báo trông như thế này, bạn chưa có cặp khóa SSH được định cấu hình trên máy của bạn:
Outputcat: /home/sammy/.ssh/id_rsa.pub: No such file or directory
Trong trường hợp này, bạn có thể tạo cặp khóa SSH bằng cách nhập:
ssh-keygen
Chấp nhận mặc định và tùy chọn cung cấp mật khẩu để bảo mật khóa tại địa phương:
OutputGenerating 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ị khóa công khai của mình như trên bằng cách nhập:
cat ~/.ssh/id_rsa.pub Outputssh-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 Cấu hình của bạn trong giao diện web của GitLab.
Nhấp vào Khóa SSH mục trong menu bên trái:
Trong không gian được cung cấp, dán khóa công khai bạn đã sao chép từ máy cục bộ của mình. Đặt tiêu đề mô tả và nhấp vào Thêm khóa nút:
Bây giờ bạn có thể quản lý các dự án và kho lưu trữ GitLab từ máy cục bộ của mình mà không phải cung cấp thông tin đăng nhập tài khoản 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ý tài khoản khi bạn truy cập trang đích của cá thể GitLab của bạn. Đây có thể là những gì bạn muốn nếu bạn đang tìm kiếm để lưu trữ dự án công cộng. Tuy nhiên, nhiều lần, các thiết lập hạn chế hơn là mong muốn.
Để bắt đầu, hãy tìm đường đến khu vực hành chính bằng cách nhấp vào biểu tượng cờ lê trong thanh trình đơn chính ở đầu trang:
Trên trang tiếp theo, bạn có thể thấy tổng quan về toàn bộ cá thể GitLab của bạn. Để điều chỉnh cài đặt, hãy nhấp vào Cài đặt mục ở cuối menu bên trái.
Bạn sẽ được đưa đến các thiết lập chung cho cá thể 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 người dùng mới có thể đăng ký hay không và mức độ truy cập của họ sẽ là bao nhiêu.
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 tài khoản theo cách thủ công cho người dùng mới), hãy cuộn xuống Hạn chế đăng ký phần.
Bỏ chọn Đã bật đăng ký hộp kiểm:
Cuộn xuống dưới cùng và nhấp vào Tiết kiệm nút:
Phần đăng ký bây giờ sẽ bị xóa khỏi trang đích GitLab.
Hạn chế đăng ký theo miền
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 một miền, bạn có thể hạn chế đăng ký theo tên miền thay vì tắt hoàn toàn các miền đó.
bên trong Hạn chế đăng ký , trước tiên hãy chọn Gửi email xác nhận khi đăng ký hộp chỉ cho phép người dùng đăng nhập sau khi họ đã xác nhận email của họ.
Tiếp theo, thêm tên miền hoặc miền của bạn vào Miền thuộc danh sách trắng để đăng ký hộp, một trên mỗi dòng. Bạn có thể sử dụng dấu hoa thị "*" để chỉ định các tên miền ký tự đại diện:
Cuộn xuống dưới cùng và nhấp vào Tiết kiệm nút:
Phần đăng ký bây giờ sẽ bị xóa khỏi trang đích GitLab.
Hạn chế tạo dự án
Theo mặc định, người dùng mới có thể tạo tối đa 10 dự án. Nếu bạn muốn cho phép người dùng 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 Cài đặt tài khoản và giới hạn phầ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 người dùng mới khi tạo dự án:
Người dùng mới vẫn có thể được thêm vào 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 người dùng khác tạo.
Cuộn xuống dưới cùng và nhấp vào Tiết kiệm nút:
Người dùng mới giờ đây sẽ có thể tạo tài khoản nhưng không thể tạo dự án.
Tạo một công việc Cron để tự động gia hạn Hãy mã hóa các chứng chỉ
Theo thiết kế, Hãy mã hóa chứng chỉ chỉ hợp lệ trong 90 ngày. Nếu bạn đã bật Let's Encrypt cho miền GitLab của mình trước đó, bạn sẽ cần đảm bảo rằng các chứng chỉ của bạn được gia hạn một cách thường xuyên để tránh bị gián đoạn dịch vụ. GitLab cung cấp gitlab-ctl renew-le-certs lệnh để yêu cầu chứng chỉ mới khi tài sản hiện tại của bạn tiếp cận hết hạn.
Để tự động hóa quy trình này, chúng tôi có thể tạo một công việc cron để tự động chạy lệnh này một cách thường xuyên. Lệnh sẽ chỉ gia hạn chứng chỉ khi nó sắp hết hạn, vì vậy chúng tôi có thể chạy nó một cách an toàn thường xuyên.
Để bắt đầu, hãy tạo và mở một tệp tại /etc/cron.daily/gitlab-le trong trình soạn thảo văn bản 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 và đóng tệp khi bạn hoàn tất.
Đánh dấu tệp là tệp thực thi bằng cách nhập:
sudo chmod +x /etc/cron.daily/gitlab-le
Bây giờ, GitLab sẽ tự động kiểm tra mỗi ngày nếu chứng chỉ Let's Encrypt của nó cần phải được gia hạn. Nếu có, lệnh sẽ tự động gia hạn chứng chỉ.
Phần kết luận
Bây giờ bạn sẽ có một cá thể GitLab đang hoạt động được lưu trữ trên máy chủ của riêng bạn. Bạn có thể bắt đầu nhập hoặc tạo dự án mới và định cấu hình cấp truy cập thích hợp cho nhóm của mình. GitLab thường xuyên bổ sung các tính năng và cập nhật lên nền tảng của chúng, vì vậy hãy chắc chắn kiểm tra trang chủ của dự án để luôn được cập nhật về bất kỳ cải tiến hoặc thông báo quan trọng nào.