Giới thiệu
Chào các bạn! Bài viết này mình sẽ hướng dẫn các bạn phương pháp để deploy ứng dụng Laravel+VueJS lên server sử dụng GitlabCI và Fabric.
- Gitlab CI: https://docs.gitlab.com/ee/ci/
- Fabric: http://www.fabfile.org/
Deploy ứng dụng Laravel sử dụng Fabric
Fabric là một thư viện viết bằng Python để thực thi các câu lệnh trên server từ xa (remotely) thông qua kết nối ssh.
Cài đặt Fabric
Trước tiên cần cài đặt python3 + pip, sau đó có thể cài đặt fabric bằng pip:
1 | $ pip install fabric |
Tạo fabfile và deploy ứng dụng
Tạo file fabfile.py
với nội dung như dưới đây.
1 | from fabric2 import task, Connection |
Task deploy
sẽ thực hiện các việc sau:
- Pull code mới nhất từ branch master
- Thực hiện
migrate
databse và seeding dữ liệu.
Để thực thi được task deploy
trên server thì bạn cần cài đặt ssh để từ local có thể truy cập được vào HOST
thông qua kết nối ssh.
1 | ssh USER@HOST |
Sau đó chạy lệnh fab2 deploy
như vậy là task deploy
đã được thực hiện trên server. Bạn có thể tham khảo thêm docs để hiểu rõ hơn cách viết deploy task nhé. https://www.fabfile.org/
Deploy thông qua Gitlab CI
Thêm file .gitlab-ci.yml
với nội dung như dưới đây:
1 | image: circleci/python:3.7 |
image: circleci/python:3.7
thay vì phải cài đặt python thì chúng ta có thể sử dụng một image đã cài đặt sẵn python:3.7. Sau đó cài đặt pip, fabric.- Cài đặt biến mối trường
SSH_PRIVATE_KEY
vớivalue
là private key bạn dùng để ssh đến server trong phần 1.
https://docs.gitlab.com/ee/ci/variables/
Đến đây thì mọi thứ đã sẵn sàng để ứng dụng của bạn có thể được tự động deploy lên server mỗi khi bạn push code lên branch master
.
Trên đây chỉ là một tut đơn giản giúp bạn cài đặt và sử dụng fabric để deploy ứng dụng Laravel lên server ở local và trên Gitlab CI. Bạn nên đọc thêm tài liệu để có thể customize task cho phù hợp với ứng dụng của bạn.