Trên giao diện cPanel có hỗ trợ một tính năng Git™ Version Control giúp các lập trình viên dễ dàng deploy mã nguồn từ dưới máy trực tiếp lên host hoặc đồng bộ với một kho chứa (repository) khác thông qua Git.
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.
Tại case này, chúng ta sẽ cùng thiết lập đồng bộ git từ kho chứa trực tiếp trên host cPanel với máy tính mà không cần phải thông qua một kho chứa trung gian nào.
Một số lưu ý:
- Tên miền chính của gói host phải được trỏ về host để có thể kết nối kho chứa thông qua tên miền.
- Khi push hoặc pull, fetch từ máy tính thì nó sẽ hỏi mật khẩu, bạn nhập mật khẩu gói host vào.
Trước tiên tại giao diện cPanel, bạn truy cập vào tính năng Git™ Version Control để bắt đầu tạo một kho chứa trên host.
Sau đó bạn ấn nút Create bên tay phải để bắt đầu tạo kho chứa.
Tiếp theo bạn tắt Clone a Repository và bắt đầu nhập thông tin như sau:
- Repository Path: Nhập đường dẫn kho chứa mà bạn cần tạo, AZDIGI khuyến nghị không nên sử dụng thư mục public_html làm repo vì sẽ dễ bị xung đột các kho chứa với nhau thông qua thư mục
.git
. - Repository Name: Tên kho chứa, viết liền không dấu, không ký tự đặc biệt.
Ấn nút Create để hoàn tất.
Lúc này bạn sẽ chuyển đến màn hình hướng dẫn thiết lập kho chứa này dưới máy tính của bạn, có hai tùy chọn là thiết lập kho chứa vào một thư mục dự án có sẵn, hoặc tạo một thư mục mới. Ở đây bạn có thể chọn lựa chọn phù hợp với bạn, ở đây AZDIGI sẽ lấy ví dụ là tạo một kho chứa mới trên máy.
Bắt đầu tại máy tính, chúng ta truy cập vào thư mục cần làm việc với kho chứa trên cPanel với lệnh cd
và tạo một kho chứa trên máy tính với git init
, và sau đó thêm địa chỉ kho chứa trên cPanel vào thư mục này.
git clone ssh://azdigiweb@azdigiweb.com:2210/home/azdigiweb/azrepo cd azrepo
Bây giờ ta sẽ tiến hành tạo thư một tập tin tên là README.md và push nó lên kho chứa nhé.
echo "# README" >> README.md git add . git commit -m "Init commit" git push -u origin master
Bây giờ bạn vào thư mục kho chứa trên cPanel sẽ thấy tập tin README.md vừa được push lên.
Như vậy là đã hoàn tất việc kết nối kho chứa giữa kho chứa Git trên máy tính và host cPanel.
Deploy tự động với tập tin .cpanel.yml
Ở trên mình đã hướng dẫn bạn tạo một kho chứa trên cPanel, nhưng hãy ví dụ kho chứa đó bạn đang đồng bộ với một website đang trong trạng thái development, còn website production lại nằm ở thư mục khác. Lúc này chúng ta có thể tiến hành sử dụng tập tin .cpanel.yml để deploy một phần hoặc toàn bộ kho chứa qua thư mục website production.
Ở đây mình sẽ lấy ví dụ thư mục production của mình là /home/azdigiweb/public_html/
nhé.
Trước tiên bạn tạo một tập tin .cpanel.yml
trong thư mục kho chứa và khai báo nội dung như sau:
---
deployment:
tasks:
- export DEPLOYPATH=/home/azdigiweb/public_html/
- /bin/cp -rf wp-content $DEPLOYPATH
- /bin/cp -rf images $DEPLOYPATH
Tại đây có nghĩa là chúng ta sẽ khai báo một biến mang tên $DEPLOYPATH
là giá trị chứa đường dẫn thư mục website production. Và sau đó mỗi khi chúng ta push từ máy tính lên kho chứa thì task
trong tập tin .cpanel.yml sẽ thực thi (như ví dụ ở trên thì copy hai thư mục wp-content và images vào thư mục production. Bạn có thể thêm bao nhiêu lệnh tùy thích.
Tiến hành push nó lên kho chứa trên cPanel.
git add . git commit -m "Added .cpanel.yml" git push -u origin master
Bây giờ AZDIGI sẽ thử tạo 1 thư mục tên images và tạo cho nó một tập tin bên trong đó.
mkdir images touch images/hello.txt git add . git commit -m "upload 5 folders" git push origin master
Bây giờ bạn có thể thử kiểm tra lại trên File Manager, nó sẽ tự động thực thi lệnh copy thư mục images qua thư mục production.
Chúc các bạn thành công.