on
OpenStack
- Get link
- Other Apps
Thực ra, với một vài nhu cầu cơ bản nhưng thực hiện song song trên nhiều node thì việc sử dụng Ansible Ad-Hoc với module shell như ở bài trước là cũng đủ để giảm tải kha khá cho anh em sysadm rồi ^^.
Tuy nhiên, Ansible nó thực sự tuyệt vời hơn thế nhiều!
Thật vậy, sau đây là một số thuật ngữ chính nhất để phục vụ các bạn trong hầu hết các trường hợp. Các bạn xem qua mấy định nghĩa này trước khi tiếp tục thử nghiệm các chiêu thức mới của Ansible ở các bài tiếp sau nhé!
Các định nghĩa ở đây được mình rút gọn để đơn giản nhất, ở các bài sau mình sẽ bổ sung để các bạn tự mở rộng sau.
Ad Hoc
Inventory
Host
Group
Định dạng INI thường gặp[section1]
name=value
[section2]
name2=value2
Với định dạng INI, file inventory của Ansible sẽ trông như sau[webserver_group]
10.11.12.1 ansible_user=test ansible_password=secret
10.11.12.2 ansible_user=test ansible_password=secret
[database_group]
10.11.12.3 ansible_user=test ansible_password=secret
10.11.12.4 ansible_user=test ansible_password=secret
Variable
Template
Task
Play
Playbook
Ví dụ về ansible playbook---
// Play 01
- hosts: group1, group2 <----- List hosts and groups
gather_facts: false
tasks:
- shell: ls -la <--------- Task 01
register: output
- debug: <--- Task 02
msg: "{{ output.stdout_lines }}"
// Play 02
- hosts: group2, group3
gather_facts: false
tasks:
- shell: lscpu <--------- Task 03
Module
Thay vì viết play riêng cho Ubuntu---
- hosts: group1
gather_facts: false
become: yes
tasks:
- shell: apt install apache2
Thay vì viết play riêng cho CentOS---
- hosts: group1
gather_facts: false
become: yes
tasks:
- shell: yum install apache2
Hãy viết một play cho tất cả, việc phát hiện OS đã có Ansible lo--- - hosts: group1 gather_facts: false tasks: - name: install apache2 package: name: apache2 state: present
Ok, trên đây là các khái niệm cơ bản nhất để chúng ta bắt tay vào thi triển các chiêu thức mới hơn của Ansible. Go Ahead!
Comments
Post a Comment