Ansible công cụ mạnh mẽ cho tự động hóa hạ tầng và quy trình làm việc IT

Ansible là một công cụ mạnh mẽ cho tự động hóa hạ tầng và quy trình làm việc IT. Dưới đây là một số chức năng quan trọng của Ansible:

  1. ANSIBLE LIGHTSPEED
  • Sử dụng Trí tuệ Nhân tạo để tạo ra đề xuất mã cho các nhiệm vụ tự động hóa.
  • Ansible Lightspeed với IBM watsonx Code Assistant là một công cụ Trí tuệ Nhân tạo giúp đội ngũ tự động hóa học, tạo ra và duy trì nội dung Ansible Automation Platform một cách hiệu quả.
  • Tạo mã dựa trên các quy tắc tốt nhất của Ansible, chuyển đổi chuyên môn thành mã Ansible đáng tin cậy có thể mở rộng trên các đội và lĩnh vực khác nhau.
  1. EVENT-DRIVEN ANSIBLE
  • Giảm công việc thủ công với tự động hóa dựa trên sự kiện.
  • Cho phép tự động hóa các nhiệm vụ IT với cấu trúc được định nghĩa bởi người dùng và dựa trên quy tắc.
  • Nhận sự kiện từ các công cụ bên thứ ba, xác định các hành động cần thực hiện và phản ứng tự động.
  1. AUTOMATION EXECUTION ENVIRONMENTS
  • Môi trường thực thi tự động được định nghĩa, nhất quán và có thể di động.
  • Hình ảnh container cung cấp môi trường định nghĩa, nhất quán và di động cho việc thực thi Ansible Playbooks.
  • Đảm bảo tự động chạy nhất quán trên nhiều nền tảng và giảm rủi ro khác biệt giữa môi trường phát triển và sản xuất.
  1. AUTOMATION CONTROLLER
  • Định nghĩa, vận hành và ủy quyền tự động hóa.
  • Là trung tâm điều khiển cho Ansible Automation Platform, cung cấp giao diện người dùng, kiểm soát truy cập dựa trên vai trò, trình biểu đồ quy trình công việc và tích hợp CI/CD.
  • Quản lý danh sách, kích thích và lên lịch các quy trình công việc, theo dõi thay đổi và tích hợp chúng vào báo cáo từ một giao diện người dùng và REST API tập trung.
  1. AUTOMATION MESH
  • Mô hình đơn giản và đáng tin cậy để mở rộng tự động hóa qua nhiều môi trường.
  • Cung cấp một lớp giao tiếp linh hoạt và đa hướng, tăng cường khả năng vận hành toàn cầu của tổ chức.
  • Cho phép việc thực thi gần với thiết bị cuối và giảm gián đoạn thực thi.
  1. ANSIBLE CONTENT COLLECTIONS
  • Tăng tốc tự động hóa với nội dung được đóng gói sẵn.
  • Ansible Content Collection là một định dạng tiêu chuẩn để tổ chức gói modules, playbooks, plugins, roles và tài liệu từ Red Hat và các đối tác.
  • Người dùng có thể truy cập, tái sử dụng và chia sẻ bộ sưu tập trong toàn bộ tổ chức, trong khi nhà phát triển có thể phát triển và chia sẻ các bộ sưu tập mới mà không cần đợi phiên bản mới của Ansible Automation Platform.
  1. ANSIBLE AUTOMATION HUB
  • Trung tâm lưu trữ chính để tìm kiếm, sử dụng và quản lý Ansible Content Collections.
  • Cung cấp truy cập đến nội dung, như modules, roles và plugins, và tài liệu để bắt đầu.
  • Cho phép định vị bộ sưu tập mới nhanh chóng, tái sử dụng và chia sẻ nội dung trong toàn bộ tổ chức.
  1. AUTOMATION ANALYTICS AND RED HAT INSIGHTS
  • Theo dõi và quản lý tự động hóa với báo cáo chi tiết và các số liệu quan sát phong phú.
  • Cung cấp khả năng nhìn thấy toàn diện vào hiệu suất của tự động hóa, giúp đưa ra quyết định dựa trên dữ liệu.
  • Red Hat Insights cho phép theo dõi và giải quyết vấn đề hiệu suất hạ tầng, sẵn có thông tin về hỗ trợ Red Hat và các nguồn khác để xác định nguyên nhân nhanh chóng.
  1. ANSIBLE CONTENT TOOLS
  • Công cụ dòng lệnh giúp tạo các nhiệm vụ, modules và playbooks.
  • Execution environment builder hỗ trợ xây dựng môi trường thực thi tự động hóa.
  • Automation content navigator cung cấp giao diện dòng lệnh cho Ansible Core và môi trường thực thi tự động hóa.

Bước 1 — Cài Đặt Ansible Để bắt đầu sử dụng Ansible để quản lý hạ tầng máy chủ, bạn cần cài đặt phần mềm Ansible trên máy chủ sẽ phục vụ làm nút điều khiển Ansible.

REFER : How To Install and Configure Ansible on Ubuntu 20.04 | DigitalOcean

Từ nút điều khiển của bạn, chạy lệnh sau để bao gồm PPA (personal package archive) chính thức của dự án vào danh sách nguồn hệ thống của bạn:

bashCopy code

sudo apt-add-repository ppa:ansible/ansible

Nhấn ENTER khi được yêu cầu chấp nhận thêm PPA.

Tiếp theo, làm mới chỉ mục gói của hệ thống để nó biết đến các gói có sẵn trong PPA vừa được thêm vào:

bashCopy code

sudo apt update

Sau bước làm mới này, bạn có thể cài đặt phần mềm Ansible bằng:

bashCopy code

sudo apt install ansible

Nút điều khiển Ansible của bạn bây giờ có tất cả các phần mềm cần thiết để quản lý các máy chủ của bạn. Tiếp theo, chúng ta sẽ đi qua cách thêm máy chủ của bạn vào tệp đăng ký của nút điều khiển để có thể kiểm soát chúng.

Bước 2 — Thiết Lập Tệp Đăng Ký Tệp đăng ký chứa thông tin về các máy chủ bạn sẽ quản lý bằng Ansible. Bạn có thể bao gồm từ một đến vài trăm máy chủ trong tệp đăng ký của bạn, và các máy chủ có thể được tổ chức thành các nhóm và nhóm con. Tệp đăng ký cũng thường được sử dụng để đặt các biến chỉ đối với các máy chủ hoặc nhóm cụ thể, để sử dụng trong playbooks và các mẫu. Một số biến cũng có thể ảnh hưởng đến cách một playbook chạy, giống như biến ansible_python_interpreter mà chúng ta sẽ thấy trong một lát.

Để chỉnh sửa nội dung của tệp đăng ký Ansible mặc định, mở tệp /etc/ansible/hosts bằng trình soạn thảo văn bản mà bạn chọn, trên nút điều khiển Ansible:

bashCopy code

sudo nano /etc/ansible/hosts

Lưu ý: Mặc dù Ansible thường tạo ra một tệp đăng ký mặc định tại etc/ansible/hosts, bạn có thể tự do tạo các tệp đăng ký ở bất kỳ địa điểm nào phù hợp với nhu cầu của bạn. Trong trường hợp này, bạn sẽ cần cung cấp đường dẫn đến tệp đăng ký tùy chỉnh của bạn với tham số -i khi chạy các lệnh và playbooks Ansible. Việc sử dụng các tệp đăng ký theo dự án là một thực hành tốt để giảm thiểu rủi ro chạy playbook trên nhóm máy chủ sai.

Tệp đăng ký mặc định được cung cấp bởi cài đặt Ansible chứa một số ví dụ mà bạn có thể sử dụng làm tài liệu tham khảo để thiết lập tệp đăng ký của bạn. Ví dụ sau đây xác định một nhóm có tên là [servers] với ba máy chủ khác nhau, mỗi máy chủ được xác định bằng một tên định danh tùy chỉnh: server1, server2 và server3. Hãy đảm bảo thay thế các địa chỉ IP được đánh dấu bằng màu đậm bằng địa chỉ IP của máy chủ Ansible của bạn.

/etc/ansible/hosts [servers] server1 ansible_host=203.0.113.111 server2 ansible_host=203.0.113.112 server3 ansible_host=203.0.113.113

[all:vars] ansible_python_interpreter=/usr/bin/python3 Nhóm con all:vars đặt tham số máy chủ ansible_python_interpreter sẽ có giá trị cho tất cả các máy chủ được bao gồm trong tệp đăng ký này. Tham số này đảm bảo rằng máy chủ từ xa sử dụng trình thông dịch Python 3 /usr/bin/python3 thay vì /usr/bin/python (Python 2.7), không có trong các phiên bản Ubuntu gần đây.

Khi bạn hoàn thành, lưu và đóng tệp bằng cách nhấn CTRL+X, sau đó Y và ENTER để xác nhận các thay đổi của bạn.

Bất cứ khi nào bạn muốn kiểm tra tệp đăng ký của mình, bạn có thể chạy:

bashCopy code

ansible-inventory --list -y

Bạn sẽ thấy đầu ra tương tự như vậy, nhưng chứa hạ tầng máy chủ của bạn được định nghĩa trong tệp đăng ký của bạn:

Đầu ra all: children: servers: hosts: server1: ansible_host: 203.0.113.111 ansible_python_interpreter: /usr/bin/python3 server2: ansible_host: 203.0.113.112 ansible_python_interpreter: /usr/bin/python3 server3: ansible_host: 203.0.113.113 ansible_python_inter

Bước 3 — Kiểm Tra Kết Nối

Sau khi thiết lập tệp đăng ký để bao gồm máy chủ của bạn, đến lúc kiểm tra xem Ansible có kết nối được với những máy chủ này và chạy các lệnh qua SSH hay không.

Trong hướng dẫn này, chúng ta sẽ sử dụng tài khoản root của Ubuntu vì thường đây là tài khoản duy nhất có sẵn theo mặc định trên các máy chủ mới được tạo. Nếu máy chủ Ansible của bạn đã có một người dùng sudo thông thường được tạo ra, bạn được khuyến khích sử dụng tài khoản đó thay vì.

Bạn có thể sử dụng đối số -u để chỉ định người dùng hệ thống từ xa. Khi không được cung cấp, Ansible sẽ cố gắng kết nối với người dùng hệ thống hiện tại trên nút điều khiển.

Từ máy cục bộ của bạn hoặc nút điều khiển Ansible, chạy:

bashCopy code

ansible all -m ping -u root

Lệnh này sẽ sử dụng mô-đun ping tích hợp của Ansible để chạy một bài kiểm tra kết nối trên tất cả các nút từ đăng ký mặc định của bạn, kết nối với tài khoản root. Mô-đun ping sẽ kiểm tra:

  1. Các máy chủ có thể truy cập không;
  2. Bạn có chứng chỉ SSH hợp lệ không;
  3. Các máy chủ có thể chạy các mô-đun Ansible bằng Python không.

Bạn sẽ nhận được đầu ra tương tự như sau:

bashCopy code

server1 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
server2 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
server3 | SUCCESS => {
    "changed": false,
    "ping": "pong"
}

Nếu đây là lần đầu tiên bạn kết nối đến các máy chủ này qua SSH, bạn sẽ được hỏi xác nhận về tính xác thực của các máy chủ bạn kết nối qua Ansible. Khi được hỏi, gõ yes và nhấn ENTER để xác nhận.

Khi bạn nhận được phản hồi “pong” từ một máy chủ, điều này có nghĩa là bạn đã sẵn sàng chạy các lệnh và playbooks Ansible trên máy chủ đó.

Lưu ý: Nếu bạn không thể nhận được phản hồi thành công từ các máy chủ của bạn, hãy kiểm tra Hướng dẫn Sơ đồ Cheat Sheet của Ansible của chúng tôi để biết thêm thông tin về cách chạy các lệnh Ansible với các tùy chọn kết nối khác nhau.

Bước 4 — Chạy Lệnh Tạm Thời (Tùy chọn)

Sau khi xác nhận nút điều khiển Ansible của bạn có thể giao tiếp với các máy chủ của bạn, bạn có thể bắt đầu chạy các lệnh tạm thời và playbooks trên các máy chủ của bạn.

Bất kỳ lệnh nào bạn thường thực hiện trên một máy chủ từ xa qua SSH đều có thể chạy với Ansible trên các máy chủ được chỉ định trong tệp đăng ký của bạn. Như một ví dụ, bạn có thể kiểm tra dung lượng đĩa trên tất cả các máy chủ với:

bashCopy code

ansible all -a "df -h" -u root

Đầu ra:

bashCopy code

server1 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           798M  624K  798M   1% /run
/dev/vda1       155G  2.3G  153G   2% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda15      105M  3.6M  101M   4% /boot/efi
tmpfs           798M     0  798M   0% /run/user/0

server2 | CHANGED | rc=0 >>
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           395M  608K  394M   1% /run
/dev/vda1        78G  2.2G   76G   3% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda15      105M  3.6M  101M   4% /boot/efi
tmpfs           395M     0  395M   0% /run/user/0

Lệnh được đánh dấu df -h có thể thay thế bằng bất kỳ lệnh nào bạn muốn.