Chia Sẽ Kinh Nghiệm Về IT



Tìm Kiếm Với Google
-


Gởi Ðề Tài Mới  Gửi trả lời
 
Công Cụ Xếp Bài
Tuổi 27-09-2015, 10:37 PM   #1
hoctinhoc
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


  Trả lời ngay kèm theo trích dẫn này
Gửi trả lời



Quyền Hạn Của Bạn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Hình Cảm xúc đang Mở
[IMG] đang Mở
Mã HTML đang Tắt




Bây giờ là 08:08 PM. Giờ GMT +7



Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.