Nghĩa là gì

(Phần 1) Tìm hiểu về Ansible.

21

Ansible là gì: Việc cài đặt và cấu hình các máy chủ thường được ghi chép lại trong tài liệu dưới dạng các câu lệnh đã chạy, với giải thích kèm theo. Cách thức này gây mệt mỏi cho quản trị viên vì phải làm theo từng bước ở mỗi máy khi thiết lập mới, và có thể dẫn đến sai lầm, thiếu sót. (trích: bachkhoa-aptech)

Ansible giúp cấu hình server theo tùy biến rất đa dạng, giảm thiểu thời gian thao tác trên từng server được cài đặt

Bạn đang xem: ansible la gi

Step 1.Cài đặt ansible:

# Cài đặt trên Ubuntu apt-add-repository -y ppa:ansible/ansible apt-get update apt-get install -y ansible # Cài đặt trên centos yum install epel-release yum install git python python-devel python-pip openssl ansible

2: Inventory Host – Bước đi đầu tiên

Đầu tiên cần khai báo host_group để dễ gọi các khối server. Ví dụ ta muốn cài apache2/nginx lên khối server API, cài mysql lên khối server db, cài java + deploy process lên khối Job… Ở đây cần quy hoạch từng khối để dễ gọi lệnh ansible về sau.

Xem thêm: Giới thiệu về JHipster stack

vim /etc/ansible/hosts [local] 127.0.0.1 [api] 192.168.88.2 [job] 192.168.89.100 192.168.89.101 [dbservers] 192.168.90.200 192.168.89.201

Cấu trúc lệnh gọi ansible sẽ như sau:

# ansible [tên host] -m [tên module] -a [tham số truyền vào module]

Lệnh thứ 1. Basic nhất có thể: ( -m là loại module, -k là nhập password, , -u là user, -i là đường dẫn host define)

Tình huống: Tôi muốn ping đến host API xem có thể kết nối để cài đặt hay không $$ ansible api -m ping -u tuanda -k SSH password: (nhập pass của host api) 192.168.88.2 | SUCCESS => { “changed”: false, “ping”: “pong” } Nếu chạy lỗi như sau: “**bash: /usr/bin/python: No such file or directory”** thì bạn cần phải cài thêm python trên client

  • Lệnh thứ 2. Giờ chúng ta muốn chạy quyền root trên api thì sao. Ta sẽ thêm option -s là chạy sudo, -K để nhập sudo pass.

$$ ansible api -m shell -a “whoami” -u tuanda -k -K -s SSH password: SUDO password[defaults to SSH password]: 192.168.88.2 | SUCCESS | rc=0 >> root

  • Cả 2 bước trên chỉ là demo cơ bản. Chứ hơi đéo đâu mà nhớ các option kia. Giờ các server gọi bằng sshkey hết rồi. Ta có thể đặt trong file /etc/ansible/hosts (về sau nên sử dụng sshkey, sẽ rất thuận tiện)

vim /etc/ansible/hosts [api] 192.168.88.2 ansible_ssh_user=tuanda ansible_ssh_private_key_file=/etc/ansible/key_ssh_server/id_rsa Chạy: $$ ansible api -m shell -a “whoami” 192.168.88.2 | SUCCESS | rc=0 >> tuanda

Xem thêm: Ý nghĩa của tên My là gì? Những tên đệm với My đẹp nhất

Một số câu lệnh cơ bản.

*# ansible [tên host cần gọi] -m [tên module] -a [tham số truyền vào module]* -i : inventory host. Load thư viện host -m : gọi module của ansible -a : command_argument gửi kèm theo module mà ta đang gọi -u : user -vvvv : debug option $$ ansible all -m ping (giải thích: gọi ping toàn bộ các hosts trong /etc/ansible/hosts) $$ ansible all -m command -a uptime $$ ansible all -a uptime (Default, ansible sẽ cho module = “command”. Nên ta ko cần -m command thêm vào cũng được.) $$ ansible -m shell -a ‘top -bcn1 | head’ (giải thích: chạy lệnh shell ở remote client![](https://images.viblo.asia/8335ed0c-7cfe-41b6-b7cf-bd37e05979a7.png) ) – restart mysql $$ ansible dbserver -m service -a “name=mysql state=restarted” -key-file=~/.ssh/db.pem -u ubuntu -sudo Tất cả module của ansible bạn có thể tham khảo ở đây aloteen.vn/ansible/aloteen.vn . Được chia các module chính như: db, file, monitor, network, package, storage, web, cloud…. Phần 2: Ansible playbook

Chúng ta ko rảnh để gõ lại từng lệnh phía trên phải không. Ansible rất linh hoạt khi hỗ trợ playbook bằng ngôn ngữ YAML (file .yml). Từ đó, khi admin cần setup server/service nào. Chỉ cần gọi file yml này ra, tất cả sẽ được thực thi một cách tự động. Playbook đơn giản có mẫu như sau (check ping và cài đặt trên ubuntu client)

– – hosts: local tasks: – name: Ping check host ping: ~ – name: Install Apache2 apt: name=apache2 update_cache=yes

  • Với CentOS, ta chỉ cần đổi apt thành yum. Bài toán nâng cao hơn 1 chút là cài Apache2 + deploy đơn giản .config file , deploy .html file. Ở phần sau tôi sẽ hướng dẫn các bạn config cho ansible tự detect OS và chọn apt/yum riêng.

– hosts: servertest remote_user: root tasks: ########## Cài đặt gói tin httpd và start . – name: Install HTTP yum: name=httpd state=latest – name: Start HTTPD after install service: name=httpd state=started ########### Deploy config #backup – name: Backup config HTTP (backup from client) command: cp /etc/httpd/conf/aloteen.vn /etc/httpd/conf/httpd.conf.backup1 #Deploy – name: Deploy config httpd template: src: “/etc/ansible/config/httpd.conf” dest: “/etc/httpd/conf/httpd.conf” owner: root group: root mode: 0644 ########### Đẩy code về client – name: Deploy web file template: src: “/etc/ansible/config/index.html” dest: “/var/www/html/index.html” ########### Khởi động lại apache để áp dụng config – name: Start HTTPD after install service: name=httpd state=restarted

Dưới task sẽ là các module để chạy. Module yum : để install gói tin http. Module service: để chạy lệnh “service httpd start”. Module command: để chạy lệnh trên client. Modudle Template: là copy file từ ansible server tới client. Ngoài ra còn gán biến cho các file được copy.

Ta sẽ được kết quả như sau:

[email protected]:/etc/ansible/playbook-test# ansible-playbook aloteen.vn PLAY *************************************************************************** TASK [setup] ******************************************************************* changed: [192.168.88.2] TASK [Install HTTP] ************************************************************ changed: [192.168.88.2] TASK [Start HTTPD after install] *********************************************** changed: [192.168.88.2] TASK [Backup config HTTP (backup from client)] ********************************* changed: [192.168.88.2] TASK [Deploy new config] ******************************************************* changed: [192.168.88.2] TASK [Deploy web file] ********************************************************* changed: [192.168.88.2] PLAY RECAP ********************************************************************* 192.168.88.2 : ok=6 changed=3 unreachable=0 failed=0

Xem thêm: Phương thức thanh toán LC | Aloteen

Phần tiếp theo: Tìm hiểu về variable, investory và role. aloteen.vn/p/phan-2-tim-hieu-ve-ansible-YWOZry8rKQ0

0 ( 0 bình chọn )

Ý kiến bạn đọc (0)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Kết nối với chúng tôi

Xem nhiều

Chủ đề

Bài viết mới

Xem thêm