Ansible Modules – Bài 7

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

Điều kiện và vòng lặp trong Ansible – Bài 6

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

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 đó:

  • -m là tên module
  • -a là 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/folder
  • copy: sao chép file từ máy local sang remote
  • template: giống copy, 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ụng
  • service: bật/tắt, restart dịch vụ

Module quản lý hệ thống

  • user: tạo/sửa/xoá user
  • command, 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 tra
  • ping: 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?

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

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

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em