Nếu như Ansible Playbook là nơi viết ra những gì cần làm, thì Modules chính là công cụ để thực thi các hành động đó. Bạn có thể tưởng tượng module giống như những hàm có sẵn, giúp bạn cài đặt dịch vụ, sao chép file, quản lý người dùng… mà không cần viết script thủ công. Trong bài này, chúng ta sẽ cùng tìm hiểu Ansible Modules.
Xem thêm:
Ansible Variables – Biến trong Ansible là gì và cách sử dụng – Bài 5
1. Ansible Module là gì?
Hiểu đơn giản, Module là các khối chức năng được Ansible viết sẵn để giúp bạn tự động hóa:
- Cài đặt gói (packages)
- Quản lý dịch vụ (services)
- Quản lý file, thư mục
- Tạo user, chạy command
- Và rất nhiều thứ khác nữa
Nhờ module, bạn không cần viết script phức tạp. Ansible đã lo hết rồi. Bạn chỉ việc “khai báo” cấu hình, Ansible sẽ làm phần còn lại.
2. Cách sử dụng module
Có 2 cách chính để dùng module:
Cách 1: Dùng trong Playbook
- name: Install apache2
apt:
name: apache2
state: present
Cách 2: Dùng với Ad-hoc command
ansible web -m apt -a "name=apache2 state=present" -i hosts.ini
Trong đó:
-mlà tên module-alà các tham số cho module
3. Một số module thường dùng
Module quản lý file và thư mục
file: tạo, xoá, chỉnh quyền file/foldercopy: sao chép file từ máy local sang remotetemplate: giốngcopy, nhưng cho phép chèn biến động với Jinja2
Module quản lý package và service
apt,yum: cài gói ứng dụngservice: bật/tắt, restart dịch vụ
Module quản lý hệ thống
user: tạo/sửa/xoá usercommand,shell: chạy lệnh trên máy từ xa
Module hỗ trợ
debug: in ra giá trị biến hoặc thông báo để kiểm traping: kiểm tra kết nối
4. Ví dụ
Cài Apache bằng module apt
- name: Install Apache
apt:
name: apache2
state: present
Tắt dịch vụ bằng module service
- name: Stop Apache
service:
name: apache2
state: stopped
Tạo user bằng module user
- name: Create user dev
user:
name: dev
state: present
uid: 1500
️ Chạy lệnh và lưu kết quả với command + register
- name: Xem OS
command: cat /etc/os-release
register: os_info
- debug:
var: os_info.stdout_lines
Tạo thư mục bằng file
- name: Tạo thư mục log
file:
path: /var/log/myapp
state: directory
mode: '0755'
Sao chép file bằng copy
- name: Copy file cấu hình
copy:
src: ./foo.conf
dest: /etc/foo.conf
owner: ubuntu
mode: '0644'
Sử dụng template .j2 với biến động
- name: Tạo file cấu hình từ template
template:
src: hello.j2
dest: /etc/file.conf
vars:
username: "Ansible"
Nội dung hello.j2:
Xin chào {{ username }}!
5. Tìm tài liệu module ở đâu?
Có 3 cách chính để tra cứu:
️ Dùng dòng lệnh
ansible-doc apt
Sẽ hiển thị mô tả, tham số và ví dụ sử dụng module apt.
Dùng trang docs chính thức
- Truy cập: https://docs.ansible.com/
- Vào phần: “Index of all modules” để tìm tất cả module có sẵn
Dùng extension trong VS Code
Cài plugin “Ansible” → hover chuột lên module → Ctrl+Click để xem tài liệu.
Cảm ơn bạn đã tham khảo ansible tutorial trên ttnguyen.net
Bài viết cùng chủ đề:
Ansible Inventory – Bài 3
ansible playbook là gì? Cấu trúc và cách viết chuẩn – Bài 4
Ansible là gì? Vì sao chúng ta lại cần nó – Bài 1