|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
27-09-2015, 10:37 PM | #1 |
Guest
Trả Lời: n/a
|
Mô hình triển khai Ansible automating deployment
Mô hình triển khai Ansible automating deployment
Hiện giờ có khá nhiều công cụ dùng để deploy tự động hệ thống như ansible, chef,... Mục đích của việc này là để tạo môi trường server cho các dịch vụ chạy chỉ với một vài câu lệnh. Chỉ mất công viết để chạy ban đầu, sau này việc triển khai sang server khác sẽ rất dễ dàng. Mình sẽ viết ansible trên môi trường linux chạy ubuntu. Ở đây mình lấy một ví dụ là dịch vụ của mình là một service chạy webserver là nginx, sử dụng ngôn ngữ python, database sử dụng mongodb, cache sử dụng redis và tool để theo dõi các process chạy là supervisor. Mình sẽ viết script ansible để cài đặt mọi thứ để tạo môi trường và khởi động các dịch vụ. Cài các gói cần thiết sudo apt-get install python-pip python-dev sudo pip install ansible Cấu trúc file của thư mục deployment ansible như sau: Các bạn có thể xem đường link sau để https://github.com/huyhoang1990/ansi...ter/deployment rõ hơn Folder group_vars giống như nơi bạn khai báo một biến global cho toàn bộ thư mục. Folder roles là nơi để viết script để cài đặt thư viện bạn muốn. analytics.yml là nơi để khai báo những thư viện muốn cài trong folder roles deployment là nơi để khai báo địa chỉ ip. Câu lệnh để cài trên server như sau: ansible-playbook -i deployment/deployment deployment/analytics.yml -u <user server> Có thể tạo cặp ssh key để đỡ mất công gõ password. Ví dụ ở đây là mình cái lên 2 server 10.2.14.22 và 10.2.14.24 các thư viện như trong file analytics.yml - ffmpeg - common - redis - supervisor - mongodb - nginx - harviewer - analytics - loadreport Cấu trúc thư mục của roles: Ví dụ đi sâu hơn thư mục con như nginx Folder files là để chứa những file static của bạn, ví dụ bạn muốn cài nginx từ source thì phải bỏ những file source vào thư mục này rồi trong tasks sẽ copy lên server là thực thi chúng. Folder handlers thường là nơi đưa ra các câu lệnh như restart, stop,.. của một dịch vụ. Folder tasks là nơi để chưa file main.yml để viết mã script deloy lên server. Các bạn có thể vào link https://github.com/huyhoang1990/ansi...ter/deployment để xem cách viết file rõ hơn. Khi bạn gõ câu lệnh để deploy `ansible-playbook -i deployment/deployment deployment/analytics.yml -u <user server>` thì nghĩa là bạn đứng ở thư mục gốc rồi gọi đến file deployment trong folder deployment trong file này sẽ có định danh để trỏ đến file analytics.yml rồi từ file này lại nhảy vào trong roles để thực thi các đoạn mã. Mình viết qua qua để giới thiệu một tools hay cho các dev. Các bạn có thể tự xem qua ( khá dễ hiểu ) theo: Hồ Huy Hoàng |
|
|