Cài đặt Ansible trên Ubuntu 18.04 (Bionic)

Cài đặt Ansible trên Ubuntu 18.04 (Bionic)

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