Triển khai một ứng dụng Laravel với gitlab CI/CD

Khi tôi muốn triển khải cập nhật mới nhất lên VPS, tôi luôn luôn kết nối vào Server với SSH và pull code từ project về, cài đặt Packages mới nhất, chạy migrations. Tôi thấy lười khi phải lặp đi lặp lại quá trình này. Auto deployment đến giúp tôi giải quyết nó. Vậy nên bất cứ khi nào tôi sửa code và push nó, tôi muốn dự án của mình khởi động và chạy với bản cập nhật mới nhất. Tôi có nhiều sự lựa chọn để giải quyết vấn đề này bao gồm Jenkins, TeamCity, CircleCi và nhiều cách khác. Nhưng mà dự án của tôi được lưu trữ trên Gitlab và tôi không có nhiều dung lượng cho công cụ hàng trăm MB trên VPS của tôi.
Tôi sẽ cài đặt trên Ubuntu 16.04. Các bước chúng ta sẽ làm là:
- Tạo người dùng deployer trên vps
- Cài đặt Gitlab runner
- Đăng ký Gitlab runner mới
- Tạo file .gitlab-ci.yml
Tạo người dùng deployer
- Đầu tiên, SSH vào VPS của bạn.
ssh root@your_ip_address
- Tạo người dùng mới
sudo adduser deployer # Fill in user info and password
sudo usermod -g www-data deployer # Assign group www-data(primary)
- Sau đó đăng nhập lại với người dùng deployer
ssh deployer@your_ip_address
- Sau khi đăng nhập thành công, bạn tạo ssh key
ssh-keygen
cat /home/deployer/.ssh/id_rsa #show private key in terminal, and copy it using mouse
Cài đặt gitlab runner
Trong Gitlab, Runners chạy các công việc trong .gitlab-ci.yml. Một Runner có thể là 1 máy chủ ảo, một VPS, một máy bare-metal, một docker container hoặc một cluster container. Gitlab và Runners giao tiếp thông qua API. Vì vậy, yêu cầu duy nhất là máy chạy Runner có quyền truy cập mạng vào máy chủ GitLab.
Cài đặt Runners
- SSH vào server
ssh root@your_ip_address
- Thêm kho lưu trữ chính thức của Gitlab
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
a