Đơn giản quá trình deploy website với ansible và github action
Mình có 1 website chạy trên cloud server. Website mình dùng NGINX web server và Gunicorn HTTP server. Mình muốn đơn giản hoá nhất có thể các bước trong quá trình deploy.
Luồng deploy thông thường
1. Commit code chạy lên github
2. SSH lên server
3. Clode code từ github
4. Reload lại NGINX process
5. Reload lại Gunicorn process
Mình có thể tổng hợp các câu lệnh 3 4 5 thành 1 file execute.sh
#execute.sh
git clone ...
nginx --reload
gunicorn --reload
Luồng deploy rút gọn
1. Commit code chạy lên github
2. SSH lên server
3. Chạy file execute.sh
Trong trường hợp website có load balancing và deploy trên nhiều server, mình dùng ansible để deploy trên nhiều server cùng lúc. Ansible (
https://www.ansible.com) là một công cụ mã nguồn mở dùng để tự động hoá các tác vụ quản trị hệ thống và triển khai ứng dụng. Với việc dùng ansible mình không cần ssh lên từng server và chạy code.
Luồng deploy rút gọn với ansible
1. Commit code chạy lên github
2. Chạy file ansible trên localhost
Mình dùng github action kết hợp với ansible. Github action (
https://docs.github.com/en/actions) giúp chạy lệnh trên server khi user commit code lên github. Bằng cách cài github runner trên webserver, mỗi khi mình commit code lên github runner sẽ tự động chạy playbook ansible reload server, qua đó tự động hoàn toàn việc deploy website.
Luồng deploy rút gọn với ansible và github action
1. Commit code chạy lên github
Ngày đăng: April 6, 2024

223 total views
Comment
Hiện tại chưa có comment nào...