Xin chào tất cả các bạn. Trong thời gian vừa rồi mình có tìm hiểu sơ qua về Ansible, 1 tool cực mạnh trong việc build và quản lý cấu hình server. Ở bài viết này, mình sẽ tổng hợp lại những kiến thức về Ansible mình đã tìm hiểu được để sau này có quên còn có chỗ đọc lại, cũng như có thể chia sẽ chút ít kiến thức tới các bạn cũng đang mò mẫm tìm hiểu về Ansible cơ bản như mình. Bài viết chắc chắn còn rất nhiều thiếu sót, mong các bạn nhiệt tình comment góp ý cho mình với nhé.
Ansible là gì ?
Đầu tiên chúng ta sẽ bắt đầu bằng việc: Tìm hiểu xem Ansible là cái chi chi.
- Nói ngắn gọi thì: Ansible là 1 tool quản lý cấu trúc Server
- Khi dựng Server, thông thường chúng ta sẽ phải cài đặt và setting rất nhiều thứ, dẫn đến dễ quên, thiếu trước hụt sau, không đồng bộ giữa các mt STG, PRD, vv …
- Ansible giúp quản lý tất cả các step setting server dưới dạng Script. Dễ quản lý, dễ tái sử dụng.
Điều kiện để sử dụng Ansible
Để sử dụng Ansible, chúng ta sẽ có 1 số điều kiện như sau.
- Server host có cài đặt Ansible. Đây sẽ là server chính dùng để điều khiển, build và quản lý tất cả các server còn lại.
- Các server con được quản lý bởi Ansible.
- Thiết lập kết nối SSH tới từ server host tới các server con. Ansible sẽ quản lý, cài đặt phần mềm cho các server con thông qua SSH.
- Tất cả các server phải được cài đặt Python. Tuy nhiên, trong hầu hết các distribution linux hiện tại như CentOS hay Ubuntu thì đều đã có cài đặt sẵn Python rồi. Nếu sử dụng server Linux thì các bạn không cần quan tâm đến điều kiện thứ 4 này.
Các file cấu hình quan trọng của Ansible
Các chức năng và cấu hình của Ansible thì rất nhiều và đa dạng. Tuy nhiên sẽ có 3 file quan trọng sau đây, mà các bạn nên ưu tiên tìm hiểu đầu tiên khi mới bắt đầu sử dụng Ansible.
- Inventory File : Đây là file để đăng ký các server con được quản lý với server host (server cài đặt ansible).
- ansible.cfg File : Mô tả các config của Ansible
- Playbook File : Script mô tả trạng thái nên có của các server guess.
Ví dụ sử dụng Ansible
Gỉa sử mình có 1 dự án Yii2, đã code xong và đẩy toàn bộ mã nguồn lên github. Giờ mình cần sử dụng Ansible để build và deploy dự án Yii2 đó lên server. Để làm được điều này, mình sẽ cần 2 con server. 1 server để chạy Ansible, 1 server để build và deploy dự án Yii2.
Theo sơ đồ phía trên, mình sẽ phải làm các bước như sau:
- Cài ansible vào server host
- Đăng ký IP của server Yii2 vào trong file Inventory của server host
- Thiết lập SSH access từ server host tới server Yii2.
- Access tới server Yii2, thiết lập SSH access tới Github để có thể pull code về.
- Viết script trong file Playbook của server host để: install, build và pull code từ github về server Yii2.
Tổng kết
Trong bài viết này mình đã giới thiệu 1 số khái niệm cơ bản về Ansible, cũng như làm phân tích và làm 1 ví dụ nho nhỏ về việc áp dụng Ansible để build và quản lý Server.
Vì mình cũng mới bắt đầu tìm hiểu về Ansible, nên chắc hẳn bài viết còn nhiều thiếu sót và cũng còn nhiều mảng kiến thức về Ansible khác vẫn chưa được nêu ra và phân tích trong bài viết này.
Nếu có ý kiến hay bổ sung gì cho bài viết này, các bạn cứ nhiệt tình comment ở dưới bài viết để bọn mình có thể học hỏi thêm ở nhau nhé. Cuối cùng xin cảm ơn các bạn đã dành thời gian để đọc bài viết của mình. Xin chào ... thân ái !!!!