Cách cài đặt và cấu hình Drone trên Ubuntu 20.04
Drone là một nền tảng CI / CD root chứa open-souce được viết bằng Go . Nó hoạt động với các file cấu hình được viết bằng YAML, JSON, JSONNet hoặc Starlark , xác định nhiều đường ống xây dựng bao gồm một số bước.Drone tích hợp với nhiều trình quản lý mã nguồn. Hiện tại, ba SCM khác nhau được hỗ trợ: GitHub ( cloud / doanh nghiệp), BitBucket ( cloud / server ) và Gitea . Nói chung, mỗi nhà cung cấp đều hỗ trợ tất cả các chức năng của Drone.
Drone cũng hỗ trợ các người chạy khác nhau để thực hiện các công việc . Các trình chạy này không thể swap cho nhau (ngoại trừ các đường ống đơn giản nhất), vì các định dạng cấu hình, tính năng và môi trường thực thi của chúng khác nhau. Đây là một bản tóm tắt ngắn gọn về các tùy chọn của bạn:
- Đầu tiên, có hai người chạy dựa trên containers :
- Docker Runner là Á hậu ổn định nhất và được sử dụng phổ biến nhất. Nó thực hiện từng bước xây dựng trong một containers mới.
- Người chạy Kubernetes là một tùy chọn mới hơn (nhưng vẫn đang thử nghiệm). Nó có cú pháp tương tự như Docker runner và có thể tích hợp với DigitalOcean Kubernetes .
- Thứ hai, có hai trình chạy chạy lệnh trực tiếp mà không bị cô lập giữa các bản dựng hoặc kho:
- Trình chạy Exec thực thi các lệnh trực tiếp trên server . Trình chạy này không cung cấp sự cô lập giữa các bản dựng và chỉ nên được sử dụng với các repository tin cậy không thích hợp để chạy trong Docker ( lưu ý bạn có thể cần xem xét sử dụng các containers Docker quyền trước khi sử dụng tùy chọn này).
- Trình chạy SSH tương tự như Exec, nhưng nó chạy các lệnh qua SSH trên một server tách biệt với server đang chạy trình chạy.
- Thứ ba, có hai trình chạy thực thi các bước xây dựng trong một máy ảo dựa trên cloud . Những thứ này phù hợp với dung lượng công việc cần chạy trực tiếp trên server lưu trữ, nhưng vẫn tách biệt với nhau:
- Người chạy DigitalOcean tạo một server mới cho mỗi bản dựng và chạy các lệnh bên trong nó. Lưu ý nếu bạn chỉ cần các tính năng mở rộng quy mô, bạn vẫn có thể sử dụng Trình chạy Docker nhưng đã bật chức năng tự động chia tỷ lệ (sẽ nói thêm về điều này sau).
- Trình chạy MacStadium cho phép bạn thực thi các bản dựng trên máy macOS trong cloud . Tùy chọn này chỉ hữu ích cho dung lượng công việc chuyên biệt.
Trong hướng dẫn này, bạn sẽ cài đặt server Drone CI / CD cho mã nguồn trên GitHub , thêm trình chạy Docker, sử dụng Let's Encrypt để bảo mật version của bạn và sau đó tạo đường dẫn YAML. Bạn cũng sẽ gặp các tùy chọn để mở rộng quy mô người chạy của bạn bằng cách sử dụng Drone Autoscaler và lưu trữ log của bạn trên một server tương thích với S3, chẳng hạn như DigitalOcean Spaces.
Yêu cầu
Trước khi bắt đầu hướng dẫn này, bạn cần :
- Một server Ubuntu 20.04 với ít nhất 1GB RAM, 2GB dung lượng đĩa trống và một user không phải root có
sudo
priveliges. Bạn có thể thực hiện theo cài đặt server ban đầu của ta để cấu hình máy của bạn .
Lưu ý : Hướng dẫn này sẽ tùy chọn cấu hình Drone để sử dụng tính năng Autoscaler với DigitalOcean, tính năng này sẽ tự động chia tỷ lệ số lượng Server của bạn khi cần thiết. Nếu bạn chọn con đường này, hãy đảm bảo account của bạn sẽ vẫn nằm trong giới hạn của bạn.Trên DigitalOcean, giới hạn mặc định cho hầu hết user là 5 Server, nhưng bạn có thể liên hệ với bộ phận hỗ trợ và yêu cầu tăng. Để làm như vậy, hãy truy cập Trang tổng quan cloud của account của bạn và tìm TÀI KHOẢN trong menu bên trái. Một menu phụ sẽ xuất hiện; nhấp vào Cài đặt . Một trang sẽ mở ra hiển thị tên user account và Member since
của bạn Member since
ngày đó. Bên dưới ngày này, bạn sẽ thấy một dòng như Server Limit: 5 Increase
. Nhấp vào Tăng để gửi yêu cầu cho nhiều server hơn.
Hơn nữa, đường dẫn Autoscaler được mô tả trong hướng dẫn này sẽ yêu cầu Mã truy cập cá nhân từ DigitalOcean. Nếu bạn chọn cài đặt Autoscaler, bạn có thể làm theo hướng dẫn này để lấy mã thông báo từ Control panel DigitalOcean của bạn . Sao chép khóa này xuống trước khi rời khỏi trang; nó sẽ không xuất hiện khi bạn rời khỏi hoặc làm mới trang và bạn cần nhập nó trong Bước 6.
Cuối cùng, nếu bạn chọn không cài đặt tính năng Autoscaler của Drone, bạn cần thêm ít nhất 2GB RAM và 10GB dung lượng đĩa trống đảm bảo rằng bạn có thể chạy đường ống.
- Một domain (hoặc domain phụ) có sẵn một bản ghi A trỏ vào IP server của bạn. Nếu bạn đang quản lý DNS của bạn trên DigitalOcean thì bạn có thể làm theo hướng dẫn này để liên kết IP với domain của bạn . Hướng dẫn này sẽ sử dụng
drone.your_domain
. - Docker được cài đặt trên server của bạn. Để được hướng dẫn, bạn có thể làm theo hướng dẫn này về cách cài đặt và sử dụng Docker trên Ubuntu 20.04 .
- Bạn sẽ gặp một tùy chọn để lưu trữ log của bạn trên DigitalOcean Spaces. Để làm theo bước này, bạn cần thêm DigitalOcean vào account của bạn và bạn cũng cần tạo Khóa truy cập Spaces . Sao chép Khóa truy cập và Bí mật của bạn ở một nơi an toàn. Bí mật của bạn sẽ không xuất hiện khi bạn rời khỏi hoặc làm mới trang này và bạn cần nhập cả hai giá trị vào bất cứ nơi nào bạn nhìn thấy
your_s3_access_key
vàyour_s3_secret_key
. Ngoài ra, bạn có thể sử dụng một dịch vụ tương thích với S3 khác hoặc bỏ qua hoàn toàn bước này — Bước 3 —. Lưu ý bạn chỉ nên bỏ qua bước này nếu bạn đang dùng thử Drone hoặc nếu bạn biết rằng dung lượng bản dựng của bạn sẽ khá thấp. - Một account GitHub .
Bước 1 - Tạo ứng dụng GitHub
Để truy cập mã, xác thực user và thêm webhook để nhận sự kiện, Drone yêu cầu ứng dụng OAuth cho GitHub. Đối với các nhà cung cấp khác, bạn có thể đọc tài liệu chính thức của Drone tại đây .
Để cài đặt ứng dụng OAuth cho GitHub, hãy đăng nhập vào account GitHub của bạn và sau đó nhấp vào menu user của bạn ở trên cùng bên phải. Nhấp vào Cài đặt , sau đó tìm danh mục Cài đặt dành cho nhà phát triển trong menu bên trái, sau đó nhấp vào Ứng dụng OAuth . Ngoài ra, bạn có thể chuyển trực tiếp đến trang Cài đặt nhà phát triển của Github .
Tiếp theo, tạo một ứng dụng mới. Nhấp vào nút Ứng dụng OAuth mới ở góc trên bên phải và biểu mẫu trống sẽ xuất hiện.
Sử dụng Drone
cho tên ứng dụng của bạn. Thay thế drone.your_domain
bằng domain của bạn , thêm giải thích ngắn gọn về ứng dụng của bạn, sau đó thêm drone.your_domain/login
cho URL gọi lại Ủy quyền của bạn.
Nhấp vào Đăng ký ứng dụng và bạn sẽ thấy một console chứa thông tin về ứng dụng của bạn. Bao gồm ở đây là ID khách hàng và bí mật khách hàng của ứng dụng của bạn. Sao chép hai giá trị này ở một nơi an toàn; bạn cần sử dụng chúng trong các bước sau đây ở bất cứ nơi nào bạn thấy your_github_client_id
và your_github_client_secret
.
Với ứng dụng của bạn hiện đã được đăng ký trên GitHub, bạn đã sẵn sàng để cấu hình Drone.
Bước 2 - Tạo cấu hình máy bay không người lái
Bây giờ hãy bắt đầu chuẩn bị cấu hình Docker của bạn, cấu hình này sẽ xây dựng server Drone của bạn. Đầu tiên, tạo một bí mật được chia sẻ để xác thực người chạy với version Drone chính. Tạo một account bằng lệnh openssl
:
- openssl rand -hex 16
openssl
sẽ tạo ra một số thập lục phân 16 bit ngẫu nhiên. Nó sẽ tạo ra một kết quả như thế này:
Output918...46c74b143a1719594d010ad24
Sao chép kết quả của bạn vào clipboard . Bạn sẽ thêm nó vào lệnh tiếp theo, nơi nó sẽ thay thế your_rpc_secret
.
Bây giờ tạo file cấu hình Drone của bạn. Thay vì liên tục mở và đóng file cấu hình này, ta sẽ sử dụng lệnh tee
, lệnh này sẽ chia kết quả của lệnh cho console của bạn đồng thời gắn nó vào file cấu hình của Drone. Giải thích sẽ tuân theo mọi khối lệnh trong hướng dẫn này, nhưng bạn có thể tìm thấy mô tả chi tiết về tất cả các tùy chọn Drone có sẵn trong tài liệu chính thức của họ .
Bây giờ hãy bắt đầu xây dựng cấu hình server Drone của bạn. Sao chép lệnh sau vào terminal của bạn. Đảm bảo thay thế drone.your_domain
bằng domain của bạn. Cũng thay thế your_github_client_id
và your_github_client_secret
bằng thông tin đăng nhập GitHub OAuth của bạn, sau đó thay thế your_rpc_secret
bằng kết quả từ lệnh openssl
của bạn. Cuối cùng, thay sammy_the_shark
bằng tên user GitHub của bạn. Điều này sẽ cấp cho bạn các quyền quản trị :
- cat << 'EOF' | sudo tee /etc/drone
- DRONE_SERVER_HOST=drone.your_domain
- DRONE_SERVER_PROTO=https
- DRONE_GITHUB_CLIENT_ID=your_github_client_id
- DRONE_GITHUB_CLIENT_SECRET=your_github_client_secret
- DRONE_RPC_SECRET=your_rpc_secret
- DRONE_USER_CREATE=username:sammy_the_shark,admin:true
- EOF
Lệnh này sử dụng một heredoc . Một heredoc sử dụng toán tử chuyển hướng <<
theo sau là một từ tùy ý, trong đó EOF
thường được sử dụng để biểu thị phần cuối của file . Nó cho phép user viết đầu vào nhiều dòng, kết thúc bằng EOF
hoặc bất kỳ từ nào user đã chọn. Các dấu ngoặc kép xung quanh phần cuối của file ảnh hưởng đến cách văn bản được phân tích cú pháp liên quan đến thay thế biến, theo cách tương tự như cách chúng hoạt động xung quanh các ký tự. Nó là một công cụ rất hữu ích, trong trường hợp này bạn đang sử dụng để tạo một file và sau đó thêm các dòng vào nó. Tại đây bạn đang thêm các cấu hình Drone đầu tiên của bạn và kết thúc chúng bằng EOF
. Đầu vào này sau đó được chuyển hướng đến lệnh cat
, và kết quả của lệnh cat
sau đó được chuyển hướng tới lệnh tee
thông qua |
nhà điều hành đường ống. Heredocs là một cách tốt để nhanh chóng tạo hoặc nối văn bản vào file .
Tiếp theo, để ngăn user tùy ý đăng nhập vào server Drone của bạn và có quyền truy cập vào người chạy của bạn, hãy giới hạn đăng ký đối với tên user hoặc tổ chức được chỉ định. Nếu bạn cần thêm user vào lúc này, hãy chạy lệnh sau, thay thế users
bằng danh sách tên user hoặc tên tổ chức GitHub được phân tách bằng dấu phẩy:
- echo 'DRONE_USER_FILTER=users' | sudo tee -a /etc/drone
Nếu bạn không sử dụng bộ cân bằng tải bên ngoài hoặc proxy SSL, bạn cũng cần bật Let's Encrypt cho HTTPS:
- echo 'DRONE_TLS_AUTOCERT=true' | sudo tee -a /etc/drone
Bạn sẽ lưu ý lệnh tee
của bạn hiện bao gồm lựa chọn -a
, lệnh này hướng dẫn tee
nối thêm và không overrides , kết quả này vào file cấu hình Drone của bạn. Bây giờ hãy cài đặt hệ thống lưu trữ log của bạn.
Bước 3 - Lưu trữ bản ghi bản dựng bên ngoài (Tùy chọn)
Đối với các bản cài đặt được sử dụng nhiều, dung lượng bản ghi bản dựng có thể tăng khá nhanh lên nhiều gigabyte. Theo mặc định, các log này được lưu trữ trong database của server , nhưng đối với hiệu suất, khả năng mở rộng và tính ổn định, hãy cân nhắc cài đặt bộ nhớ ngoài cho log bản dựng của bạn. Trong bước này, bạn sẽ sử dụng DigitalOcean Spaces để thực hiện điều đó. Bạn có thể sửa đổi các bước này và sử dụng một dịch vụ lưu trữ tương thích với S3 khác hoặc không có dịch vụ nào nếu bạn vẫn đang tạo mẫu quy trình làm việc CI / CD của bạn hoặc nếu bạn biết rằng dung lượng bản dựng của bạn sẽ rất thấp. Trong những trường hợp đó, bạn có thể tiếp tục Bước 4 ngay bây giờ.
Để lưu trữ log của bạn trên DigitalOcean Spaces, hãy đảm bảo bạn đã hoàn thành các yêu cầu cần thiết và đã cài đặt group Spaces và tạo Khóa truy cập Spaces và Bí mật phù hợp. Sao chép khóa đó vào clipboard của bạn và sau đó cập nhật file cấu hình của bạn bằng lệnh sau:
- cat << 'EOF' | sudo tee -a /etc/drone
- DRONE_S3_ENDPOINT=your_s3_endpoint
- DRONE_S3_BUCKET=your_s3_bucket_name
- AWS_ACCESS_KEY_ID=your_s3_access_key
- AWS_SECRET_ACCESS_KEY=your_s3_secret_key
- EOF
Hãy nhớ thay your_s3_endpoint
bằng URL cho Không gian của bạn, your_s3_bucket_name
bằng tên Không gian bạn đã tạo, your_s3_access_key
bằng khóa truy cập của bạn và your_s3_secret_key
bằng bí mật của bạn. Bạn có thể tìm thấy hai giá trị đầu tiên trong Control panel của bạn bằng cách nhấp vào nút menu Quản lý , sau đó nhấp vào Không gian , rồi chọn Không gian mới của bạn. Bạn có thể truy xuất Khóa truy cập Spaces của bạn bằng cách nhấp vào nút menu Tài khoản , sau đó nhấp vào nút API , sau đó cuộn xuống cho đến khi bạn tìm thấy phần Spaces . Nếu bạn đã đặt nhầm khóa bí mật của bạn , thì bạn cần tạo một cặp khóa truy cập / bí mật mới.
Tệp cấu hình Drone của bạn hiện đã hoàn tất. Chạy lệnh cat
để xem nó:
- cat /etc/drone
Tệp cấu hình của bạn sẽ trông giống như sau, tùy thuộc vào các tùy chọn bạn đã chọn:
OutputDRONE_SERVER_HOST=drone.your_domain DRONE_SERVER_PROTO=https DRONE_GITHUB_CLIENT_ID=your_github_client_id DRONE_GITHUB_CLIENT_SECRET=your_github_client_secret DRONE_RPC_SECRET=your_rpc_secret DRONE_USER_CREATE=username:sammy_the_shark,admin:true DRONE_USER_FILTER=the_shark_org DRONE_TLS_AUTOCERT=true DRONE_S3_ENDPOINT=your_s3_endpoint DRONE_S3_BUCKET=your_s3_bucket AWS_ACCESS_KEY_ID=your_s3_access_key AWS_SECRET_ACCESS_KEY=your_s3_secret_key
Khi bạn đã xác nhận file cấu hình của bạn đã hoàn tất, bạn có thể khởi động server Drone của bạn .
Bước 4 - Cài đặt và Khởi động Drone
Với cấu hình phù hợp của bạn, bước tiếp theo của bạn là cài đặt và khởi động Drone.
Đầu tiên, hãy kéo hình ảnh Drone Server Docker:
- docker pull drone/drone:1
Tiếp theo, tạo một ổ đĩa để lưu trữ database SQLite :
- docker volume create drone-data
Cuối cùng, khởi động server , đặt nó khởi động lại khi khởi động và chuyển tiếp cổng 80
và 443
tới nó:
- docker run --name=drone --detach --restart=always --env-file=/etc/drone --volume=drone-data --publish=80:80 --publish=443:443 drone/drone:1
Nếu bạn đã làm theo Hướng dẫn cài đặt server ban đầu DigitalOcean, thì bạn sẽ bật ufw
và chỉ cho phép OpenSSH
thông qua firewall của bạn . Đến đây bạn cần mở các cổng 80 và 443:
- sudo ufw allow 80
- sudo ufw allow 443
Bây giờ reload ufw
và kiểm tra xem các luật của bạn đã cập nhật chưa:
- sudo ufw reload
- sudo ufw status
Bạn sẽ thấy một kết quả như thế này:
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)
Đến đây, bạn có thể truy cập server , đăng nhập và quản lý repository của bạn . https:// drone.your_domain
, nhập thông tin đăng nhập GitHub của bạn và cho phép ứng dụng mới của bạn khi được yêu cầu .
Server Drone của bạn hiện đã hoạt động và gần như sẵn sàng để sử dụng. Cấu hình Drone runner và / hoặc DigitalOcean Autoscaler là tất cả những gì còn lại.
Bước 5 - Tùy chọn 1: Cài đặt Docker Runner
Trước khi server của bạn có thể thực thi công việc, bạn cần cài đặt một người chạy.
Nếu bạn muốn tự động chia tỷ lệ người chạy bằng DigitalOcean Server, hãy chuyển đến Tùy chọn 2: Cài đặt Drone Autoscaler cho DigitalOcean . Nếu bạn muốn sử dụng bộ chạy khác, bạn có thể cài đặt bộ chạy đó thay thế và chuyển sang Bước 7. Nếu không, hãy làm theo Tùy chọn 1 và cài đặt bộ chạy Docker.
Tùy chọn 1: Cài đặt Docker Runner
Đầu tiên, kéo Docker image cho người chạy:
- docker pull drone/drone-runner-docker:1
Tiếp theo, bắt đầu chạy. Thay thế drone.your_domain
và your_rpc_secret
bằng các giá trị cá nhân của bạn. Bạn có thể thay đổi DRONE_RUNNER_CAPACITY
để tăng số lượng đường ống sẽ được thực thi cùng một lúc, nhưng hãy lưu ý đến các tài nguyên hệ thống hiện có của bạn:
- docker run --name drone-runner --detach --restart=always --volume=/var/run/docker.sock:/var/run/docker.sock -e DRONE_RPC_PROTO=https -e DRONE_RPC_HOST=drone.your_domain -e DRONE_RPC_SECRET=your_rpc_secret -e DRONE_RUNNER_CAPACITY=1 -e DRONE_RUNNER_NAME=${HOSTNAME} drone/drone-runner-docker:1
Cuối cùng, hãy đảm bảo người chạy đã bắt đầu thành công:
- docker logs drone-runner
Bạn sẽ thấy một kết quả như thế này:
Outputtime="2020-06-13T17:58:33-04:00" level=info msg="starting the server" addr=":3000" time="2020-06-13T17:58:33-04:00" level=info msg="successfully pinged the remote server" time="2020-06-13T17:58:33-04:00" level=info msg="polling the remote server" arch=amd64 capacity=1 endpoint="https://drone.your_domain" kind=pipeline os=linux type=docker
Nếu bạn cần thay đổi cấu hình hoặc bí mật của người chạy, hãy xóa containers của bạn bằng docker rm drone-runner
và lặp lại bước này. Đến đây bạn có thể chuyển sang Bước 7 và tạo một đường dẫn cơ bản.
Tùy chọn 2: Cài đặt Drone Autoscaler cho DigitalOcean
Drone Autoscaler cho DigitalOcean có thể tự động tạo và phá hủy các Server bằng Docker runner khi cần thiết.
Đầu tiên, hãy truy cập server Drone của bạn, đăng nhập và nhấp vào Cài đặt user trong menu user . Tìm và sao chép Mã thông báo cá nhân của bạn. Đây là your_drone_personal_token
.
Tiếp theo, tạo một chuỗi ký tự mới bằng lệnh sau:
- openssl rand -hex 16
Outpute5cd27400...92b684526c622
Sao chép kết quả giống như bạn đã làm trong Bước 2. Đầu ra mới này là drone_user_token
của bạn.
Bây giờ hãy thêm một user máy mới với các thông tin đăng nhập mới này:
- docker run --rm -it -e DRONE_SERVER=https://drone.your_domain -e DRONE_TOKEN=your_drone_personal_token --rm drone/cli:1 user add autoscaler --machine --admin --token=drone_user_token
Bây giờ, nếu bạn chưa có, bạn cần tạo Mã thông báo API DigitalOcean với các quyền đọc / ghi. Ta sẽ gọi đây là your_do_token
. Nếu bạn chưa hoàn thành bước này trong phần yêu cầu thì bạn có thể sử dụng hướng dẫn này để tạo ngay bây giờ . Giữ mã thông báo này rất an toàn; nó cấp toàn quyền truy cập vào tất cả các tài nguyên trong account của bạn.
Cuối cùng, bạn có thể khởi động Drone Autoscaler. Đảm bảo thay thế tất cả các biến được đánh dấu bằng thông tin đăng nhập phù hợp của bạn :
- docker volume create drone-autoscaler-data
- docker run --name=drone-autoscaler --detach --restart=always --volume=drone-autoscaler-data -e DRONE_SERVER_PROTO=https -e DRONE_SERVER_HOST=drone.your_domain -e DRONE_SERVER_TOKEN=drone_user_token -e DRONE_AGENT_TOKEN=your_rpc_secret -e DRONE_POOL_MIN=0 -e DRONE_POOL_MAX=2 -e DRONE_DIGITALOCEAN_TOKEN=your_do_token -e DRONE_DIGITALOCEAN_REGION=nyc1 -e DRONE_DIGITALOCEAN_SIZE=s-2vcpu-4gb -e DRONE_DIGITALOCEAN_TAGS=drone-autoscaler,drone-agent drone/autoscaler
Bạn cũng có thể cấu hình số lượng Server tối thiểu / tối đa để tạo và loại / vùng cho Server . Để có thời gian bắt đầu xây dựng nhanh hơn, hãy đặt mức tối thiểu thành 1 hoặc nhiều hơn. Ngoài ra, hãy lưu ý theo mặc định, trình tính toán tự động sẽ xác định xem các server mới cần được tạo hoặc phá hủy mỗi phút và các server sẽ được để chạy ít nhất 1 giờ sau khi tạo trước khi tự động bị hủy khi không hoạt động.
Sau đó, hãy xác minh bộ đo tự động đã khởi động chính xác với:
- docker logs drone-autoscaler
Nếu bạn quyết định không còn muốn sử dụng trình cân bằng tự động nữa, hãy xóa containers bằng docker rm drone-autoscaler
, xóa các server còn sót lại (nếu có) khỏi account của bạn và thu hồi Mã thông báo API DigitalOcean. Đến đây bạn đã sẵn sàng để kiểm tra quy trình làm việc CI / CD mới của bạn .
Bước 6 - Tạo một đường ống YAML
Để kiểm tra cài đặt Drone mới của bạn, hãy tạo một đường dẫn YAML.
Đầu tiên, tạo một repository mới trên GitHub. Từ trang profile GitHub của bạn, hãy nhấp vào menu Kho lưu trữ , sau đó nhấp vào nút Mới màu xanh lục ở phía trên bên phải. Đặt tên cho repository của bạn trên trang sau và sau đó nhấp vào nút Tạo repository màu xanh lục. Bây giờ chuyển đến server Drone của bạn, nhấn SYNC , làm mới trang và repository mới được tạo của bạn sẽ xuất hiện. Nhấn nút KÍCH HOẠT bên cạnh nó.
Sau đó, tạo một file mới trong repo của bạn có tên .drone.yml
. Bạn có thể thực hiện việc này bằng giao diện user của GitHub hoặc từ dòng lệnh bằng git
. Từ giao diện user GitHub, nhấp vào menu Kho lưu trữ , sau đó nhấp vào repository mới của bạn, sau đó nhấp vào menu thả xuống Thêm file . Chọn Tạo file mới , đặt tên file .drone.yaml
và thêm nội dung sau:
name: drone-test kind: pipeline type: docker steps: - name: test image: alpine commands: - echo "It worked!"
Nếu bạn đang sử dụng giao diện user GitHub, hãy nhấn nút Commit file mới màu xanh lục ở cuối trang. Nếu bạn đang sử dụng dòng lệnh, hãy commit và đẩy các thay đổi . Trong cả hai trường hợp, bây giờ hãy mở và xem trang tổng quan Drone của bạn trong trình duyệt.
Nếu quá trình xây dựng vẫn đang chờ xử lý và không bắt đầu, hãy đảm bảo người chạy của bạn được cài đặt đúng cách (và một server được tạo nếu sử dụng bộ phân tích tự động). Bạn có thể xem log cho người chạy với trình điều khiển docker logs drone-runner
và log cho người chạy tự động với docker logs drone-autoscaler
.
Nếu bạn đang sử dụng autoscaler, có thể mất đến một phút để bản dựng ban đầu bắt đầu (thông báo log cuối cùng trong thời gian đó sẽ starting the server
).
Sau khi quá trình xây dựng hoàn tất, bạn sẽ thấy dòng chữ It worked!
trong log cho giai đoạn test
của đường ống drone-test
. Nếu không tải được log , hãy đảm bảo thông tin đăng nhập S3 và tên group của bạn là chính xác. Bạn có thể sử dụng docker logs drone
để xem log của Drone để biết thêm thông tin.
Đến đây bạn đã cài đặt và cài đặt server Drone để xử lý quy trình làm việc CI / CD của bạn .
Kết luận
Trong hướng dẫn này, bạn cài đặt server Drone CI / CD để sử dụng với các dự án GitHub của bạn và tùy chọn cài đặt bộ nhớ ngoài cho log bản dựng. Bạn cũng cài đặt một người chạy local hoặc một dịch vụ để tự động mở rộng quy mô chúng bằng cách sử dụng DigitalOcean Server.
Bạn có thể tiếp tục thêm đồng đội và những user được ủy quyền khác vào Drone bằng quy trình được nêu ở Bước 2. Nếu bạn muốn ngăn bất kỳ user mới nào đăng ký, hãy chạy các lệnh sau:
- echo 'DRONE_REGISTRATION_CLOSED=true' | sudo tee -a /etc/drone
- docker restart drone
Máy bay không người lái là một công cụ rất có khả năng. Từ đây, bạn có thể cân nhắc tìm hiểu thêm về cú pháp đường dẫn của chúng và các chức năng khác của Drone hoặc xem xét các nguyên tắc cơ bản của Docker .
Các tin liên quan
Cách thiết lập Mattermost trên Ubuntu 18.042020-07-07
Cách cài đặt Jenkins trên Ubuntu 20.04
2020-07-03
Cách cài đặt và cấu hình Zabbix để giám sát an toàn server từ xa trên Ubuntu 20.04
2020-06-30
Cách thiết lập ứng dụng Node.js để sản xuất trên Ubuntu 20.04
2020-06-30
Cách cài đặt WordPress trên Ubuntu 20.04 với LAMP
2020-06-30
Cài đặt Elasticsearch, Logstash và Kibana (Elastic Stack) trên Ubuntu 20.04
2020-06-23
Cách cài đặt TensorFlow trên Ubuntu 20.04
2020-06-23
Cách tạo người dùng mới hỗ trợ Sudo trên Ubuntu 20.04 [Quickstart]
2020-06-22
Cách cài đặt Prosody trên Ubuntu 18.04
2020-06-15
Cách tạo nhóm lưu trữ dự phòng bằng GlusterFS trên Ubuntu 20.04
2020-06-15