Ansible là công cụ Configuration Management mã nguồn mở dùng để quản lý cài đặt, cấu hình hệ thống một cách tập trung và cho phép thực thi câu lệnh điều khiển. Ansible sử dụng SSH (hoặc Powershell) và các module được viết bằng ngôn ngữ Python để điểu khiển hệ thống. Nó sử dụng định dạng JSON để hiển thị thông tin và sử dụng YAML (Yet Another Markup Language) để xây dựng cấu trúc mô tả hệ thống.
Khác với các hệ thống quản lý cấu hình như Puppet hay Chef, Ansible không cần cài đặt bất kì agent trên client, chỉ cần cài đặt tại Server quản lý. Nó cũng không có service chạy ngầm, chỉ thực thi khi gọi. Do sử dụng giao thức SSH nên bảo mật cao cho hệ thống của bạn.
Cấu hình SSH key
Để tăng tính bảo mật, bạn nên cấu hình SSH key cho server/client.
Xem thêm: Hướng dẫn tạo SSH Key pair trên Linux
Tạo SSH key pair trên Ansible server:
ssh-keygen
Copy public key đến các máy client bạn muốn quản lý
ssh-copy-id -i ~/.ssh/id_rsa.pub host_ip
Cài đặt Ansible trên Ubuntu 18.04
Ansible cung cấp official PPA (Personal Package Archives) cho hệ điều hành Ubuntu, chạy lệnh sau để cấu hình Ansible PPA
sudo apt-add-repository ppa:ansible/ansible
Sau đó ta tiến hành cập nhật hệ thống và cài đặt
sudo apt update sudo apt install ansible
Cấu hình Ansible Hosts & Groups
Sau khi cài đặt xong Ansible ta tiến hành cấu hình Hosts và Groups.
Ở đây bạn cần xác định các hệ thống từ xa của bạn trong tập tin host Ansible (/ etc / ansible / hosts). Bạn cũng có thể tạo các nhóm máy chủ với các loại tương tự. Ở đây bạn cần tổ chức đúng máy chủ của bạn thành các nhóm. Nhóm được sử dụng để thực hiện một nhiệm vụ trên tất cả các máy chủ từ xa được xác định trong đó.
Cấu hình Ansible Hosts & Groups như sau:
sudo nano /etc/ansible/hosts
Thêm host và tổ chức host theo group, một host có thể được add vào nhiều groups
Ví dụ:
[webservers] web-host1 web-host2 [dbservers] db-host1
Cấu hình từng host đơn
Bạn cần cấu hình cho từng host đã thêm ở trên. Tất nhiên là phải trùng tên mới chạy đc nhé, các file cấu hình của từng host đặt trong folder host_vars
Ví dụ
sudo mkdir /etc/ansible/host_vars sudo vi /etc/ansible/host_vars/web-host1
Thêm SSH setting
ansible_ssh_host: 192.168.1.15 ansible_ssh_port: 22 ansible_ssh_user: root
Nếu ở trên bạn không cấu hình SSH key pair thì bạn có thể thêm 2 dòng dưới đâu để đăng nhập bằng mật khẩu.
ansible_ssh_pass: secret_password ansible_ssh_private_key_file: /home/rahul/.ssh/aws.pem
Cấu hình cho groups
Bạn có thể gom các thiết lập chung của các host vào cấu hình nhóm. Tên folder của group phải giống như trên nhé, các file cấu hình của group đặt trong folder group_vars
sudo mkdir /etc/ansible/group_vars sudo vi /etc/ansible/group_vars/webservers
Thêm các thiết lập chung
ansible_ssh_port: 22 ansible_ssh_user: root
Test Ansible Setup
Sau khi cài đặt và cấu hình xong ta tiến hành kiểm tra hoạt động của Ansible:
Kiểm tra kết nối đến tất cả các host
ansible -m ping all
Kiểm tra kết nối đến từng host hoặc groups
ansible -m ping web-host1 ansible -m ping webservers
Bạn cũng có thể thử chạy một lệnh shell. Ví dụ, kiểm tra bộ nhớ trống trên web-host1. Bạn cũng có thể thực hiện nhiệm vụ tương tự cho một nhóm. Chỉ cần sử dụng tên nhóm thay vì tên máy chủ.
ansible -m shell -a 'free -m' web-host1
Xem thêm: Các bài viết liên quan đến hệ điều hành Ubuntu
Nguồn