Auto deployment với GitHub Actions cho cPanel hoặc VPS 🚀
Đối với những nhà phát triển như chúng ta, làm việc với Github là công việc hàng ngày, phải làm việc thường xuyên. Hầu hết chúng ta chỉ quan tâm đến các chức năng chính của Github như Pull request, Issues hay code mà ít khi để ý đến các chức năng khác của Github. Trong bài viết hôm nay, Hion Coding giới thiệu với các bạn chức năng Actions của Github và sử dụng nó để triển khai các dự án lên GitHub Pages. Vậy hành động GitHub là gì? Làm thế nào để sử dụng nó? Chúng ta hãy cùng nhau tìm hiểu nhé.
Một lưu ý nhỏ là các bạn làm việc với cPanel cũng hoàn toàn có thể làm theo các bước này để có thể setting auto deploy cho dự án của các bạn nhé.
Một số điều chúng tôi sẽ đề cập trong hướng dẫn này.
- Tạo khóa ssh trênVPS hoặc Terminal cPanel
- Thêm khóa công khai đã tạo của bạn vào authorized_keys
- Tạo GitHub secret keys
- Cấu hình GitHub actions cho việc auto-deploy private/public repository của bạn
Bước 1 - Mở terminal của bạn và thêm ssh vào VPS của bạn
ssh user@hostname
cd ~/.ssh
Bước 2 - Tạo SSH key
ssh-keygen -t rsa -b 4096 -C "test@example.com"
Email ở đây là email dùng ở Github account của các bạn
Bước 3 - Thêm khóa công khai vào ủy quyền - authorized keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Lưu ý: Chúng tôi đang sử dụng >> để thêm nội dung id_rsa.pub vào cuối nội dung trong tệp authorized_keys chứ không ghi đè nội dung trong authorized_keys.
Bước 4 - Tạo các key GitHub secrets
cat ~/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwBnywW0YOMVlsMzEQEFAtCZK7tL8fE/f8cmVH57PS42DtkB0
0CxWdU2VO0XZJtvFwTbJmZ/SwLUfUS2rsL0RnjXN25lpbT59EluFClN2kRkZp5w+
Xn3ygrvE2t+j8zjF2JgfwZ2zS7Dr8v0DPg79CRVjU0XwrC1Pf4D4Pvzgf7CqjxUQ
...
...
4SeULN9pM2wAn1SoZHvX0QvVSlY5/hboZm6TF2MIPY/HTwNHoKlZJRrhXY1VhzMn
oWfOQObmxJ9BUIZRckhRTxFMp8VQ3v1mp4IQVQKBgQCkDQyvow+Vvgk/WlTKR3jn
kfUcNhMzCz4sqjj5/ZKGRXGzVewBMBK/59wUKxyvz5+QyFvE9weznp4mZahq7q0l
...
...
QmKqBQKBgQC4W/xwQz+EuSOVD4qfn5f6AWZT9/ZJ4yB2N6R+VwPdsfsDvN2RAhU2
hfmQpV5xW9n+huI3Z2I6RFj/Yq8Nc5l1A8Nd13Z18KBaYz1vbl64iI/+3f6uWyr+
sNm91dWnYV4R8ghf7W9dk19X3pDnXHQtIWVJdPjMN6PQcGoxo4LK8w==
-----END RSA PRIVATE KEY-----
Đi tới repository GitHub mà bạn muốn định cấu hình, nhấp vào tab cài đặt, sau đó trong menu tùy chọn, nhấp vào và thêm các bí mật sau:
-
HOST: đặt khóa cho tên máy chủ hoặc địa chỉ IP của bạn.
-
USERNAME: đặt khóa cho tên người dùng bạn sử dụng để SSH vào VPS của mình.
-
SSHKEY: đặt khóa cho nội dung bạn đã sao chép từ lệnh trên.
-
PORT: đặt khóa thành 22 (tôi nghĩ là mặc định luôn rồi @@)
Bước 5 - Định cấu hình GitHub Action để tự động triển khai dự án của bạn
Giả sử rằng bạn đã có project trên máy của mình, hãy tiếp tục và tạo thư mục .github/workflows
và bên trong tạo một tệp deploy.yml
Thêm nội dung bên dưới vào deploy.yml
Lưu ý: Dưới đây có lệnh 'cd test-deploy.hioncoding.com && git pull origin'
: Tôi đang mong muốn cd vào thư mục mà tôi cần pull code về. Các bạn có thể thay đổi theo những hành động của các bạn nhé ~.~'
Nếu muốn pull code không cần yêu cầu tài khoản hay mật khẩu bạn có thể tham khảo bài viết config SSH Github ở đây
name: SSH Pull Code
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Setup SSH key
uses: longaodai/ssh-server@v2.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
ssh-private-key: ${{ secrets.SSHKEY }}
commands: 'cd test-deploy.hioncoding.com && git pull origin'
Commit các thay đổi trong deploy.yml
và push lên repository của các bạn
git add .
git commit -m "deploy"
git push origin master
Cảm ơn các bạn đã quan tâm! Mọi thắc mắc hoặc cần hỗ trợ các bạn có thể gửi tin nhắn qua email. Mình sẽ cố gắng hỗ trợ các bạn.