Ở một bài viết trước đó, AZDIGI đã có hướng dẫn làm việc với kho chứa git trên cPanel với một kho chứa dưới máy tính (local repository). Trong bài viết này, AZDIGI sẽ tiếp tục hướng dẫn thêm về cách đồng bộ dữ liệu từ kho chứa git trên cPanel với một kho chứa từ xa khác như Github, Gitlab,…
Trước khi sử dụng tính năng này, AZDIGI khuyến khích bạn nên biết sử dụng Git và terminal trước đó. Bạn có thể tham khảo serie Hướng dẫn Git cơ bản để nắm rõ kiến thức về Git.
Đầu tiên là truy cập vào cPanel => Git™ Version Control và ấn nút Create để tạo một kho chứa trên cPanel.
Sau đó bạn bật Clone a Repository và nhập thông tin như sau:
- Clone a Repository: Clone kho chứa này từ một kho chứa khác.
- Clone URL: Đường dẫn kho chứa cần clone.
- Repository Path: Đường dẫn kho chứa trên host.
- Repository Name: Tên kho chứa, viết liền không dấu, không khoảng trắng và không ký tự đặc biệt.
Ấn nút Create để bắt đầu tạo. Lúc này kho chứa của bạn sẽ bắt đầu tạo và clone dữ liệu về.
Pull dữ liệu – Cập nhật dữ liệu từ remote git về cPanel
Khi trên kho chứa đang kết nối tới có dữ liệu mới thì bạn có thể cập nhật nó về host cPanel (pull) bằng cách vào phần Manage của kho chứa đang làm việc.
Chọn Pull or Deploy, và chọn Update from Remote.
Nếu khi pull mà có một commit nào mới được cập nhật nó sẽ hiển thị tại phần HEAD Commit.
Push dữ liệu – Từ host cPanel lên remote git
Để sử dụng tính năng này một cách hiệu quả, AZDIGI xin đặt ra một giả thiết như sau:
Bạn có 2 website trên host cPanel như sau:
- demo.domain.com – Địa chỉ website đang trong giai đoạn hoàn thiện và đặt tại thư mục là kho chứa git. Như trong ví dụ này là /home/azdigiweb/repositories/azrepo.
- domain.com – Địa chỉ website chính, chạy tại thư mục /home/azdigiweb/public_html.
Và dưới máy tính của bạn có một kho chứa, bạn sẽ push những thay đổi đã hoàn thiện lên kho chứa git tại Github, sau đó là vào host tại cPanel tiến hành pull dữ liệu từ Github về thư mục đang chạy demo.domain.com để chạy thử. Sau khi chạy mà không thấy lỗi gì nữa sẽ tiến hành deploy lên thư mục website chính là domain.com.
Như vậy để làm được như vậy, chúng ta sẽ sử dụng phương pháp push deploy trên cPanel.
Trước tiên là trong thư mục kho chứa, bạn phải có một tập tin .cpanel.yml
như sau:
---
deployment:
tasks:
- export DEPLOYPATH=/home/azdigiweb/public_html/
- /bin/cp -rf images $DEPLOYPATH
- /bin/cp -rf content $DEPLOYPATH
Trong đó, khai báo biến DEPLOYPATH
là đường dẫn thư mục của website chính, hay còn gọi là production site. Và bên dưới nó là những lệnh mà nó sẽ thực thi khi chúng ta deploy, ví dụ ở trên là nó sẽ tự động copy hai thư mục images
và content
vào thư mục chính của website mỗi khi gửi lệnh push deploy. Bạn có thể đặt bao nhiêu lệnh ở đây tùy thích.
Sau đó push tập tin này lên kho chứa.
git add .
git commit -m "added .cpanel.yml"
git push -u origin master
Sau đó vào cPanel => Git™ Version Control => Manage => Pull or Deploy và ấn nút Update from Remote để cập nhật dữ liệu mới từ kho chứa (là tập tin .cpanel.yml
mà ta vừa mới tạo).
Bây giờ bạn kiểm tra lại thư mục kho chứa trên cPanel và đảm bảo rằng tập tin .cpanel.yml xuất hiện ở đây.
Tính năng này sẽ tiến hành deploy từ kho chứa cPanel qua thư mục website chính nên bây giờ để thử nó, bạn vào mục Terminal trên giao diện cPanel để tiến hành thêm một số tập tin và thêm nó vào git để thử nhé.
Chúng ta chạy các lệnh sau để truy cập vào thư mục kho chứa trên cPanel và tạo thử một số tập tin:
cd /home/azdigiweb/repositories/azrepo
mkdir includes
touch includes/hello.txt
git add .
git commit -m "added hello.txt"
git push -u origin master
Nếu bạn chạy lệnh git commit
trên cPanel bị lỗi thì chạy 2 lệnh sau để thiết lập tên và email làm việc trong Git.
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
Bây giờ bạn quay trở lại giao diện Git™ Version Control => Manage => Pull or Deploy và nút Deploy HEAD Commit sáng lên và có thể ấn vào để bắt đầu chạy tập tin .cpanel.yml
và nó sẽ bắt đầu deploy từ commit hiện tại (HEAD Commit).
Sau khi chạy xong, bạn có thể thử kiểm tra thư mục website chính và sẽ thấy nó copy thư mục images và các tập tin bên trong đó theo như lệnh ta khai báo trong .cpanel.yml
.
Như vậy là bạn đã hoàn tất việc sử dụng tính năng Git™ Version Control trên cPanel để deploy mã nguồn từ kho chứa máy tính lên website chính một cách an toàn nhất rồi đó.
Chúc các bạn thành công.