Danh mục bài viết
Ansible là gì?
Ansible là một công cụ nguồn mở để tự động hóa các tác vụ. Nó quản lý cấu hình của máy chủ Linux và Windows của bạn. Nó hoạt động mà không cần một tác nhân, điều đó có nghĩa là Ansible sử dụng SSH và ủy quyền SSH của người dùng hiện tại.
Bạn có thể sử dụng Ansible để tự động hóa ba loại tác vụ:
- Cấp phép : Thiết lập một số máy chủ bạn cần trong cơ sở hạ tầng của mình.
- Quản lý cấu hình : Thay đổi cấu hình của ứng dụng, HĐH hoặc thiết bị; bắt đầu và dừng dịch vụ; cài đặt hoặc cập nhật ứng dụng; thực hiện chính sách bảo mật hoặc thực hiện nhiều nhiệm vụ cấu hình khác.
- Triển khai ứng dụng : Làm cho DevOps dễ dàng hơn bằng cách tự động triển khai các ứng dụng được phát triển nội bộ vào các hệ thống sản xuất của bạn.
Bài viết này sẽ hướng dẫn bạn qua quy trình cài đặt và thiết lập cho Ansible trên CentOS 7, cũng như cấu hình để quản trị một máy đang chạy trên Windows Server.
Mô hình
Trong mô hình này nếu dựng đầy đủ sẽ cần có các môi trường với các hệ điều hành Linux phổ biến hiện nay, do vậy BKNET sẽ sử dụng các client gồm các hệ điều hành CentOS7, CentOS8, Ubuntu 18.04, Ubuntu 20.04 để phát huy trong các bài LAB tiếp theo.
Đối với hạ tầng LAB hạn chế, bạn chỉ cần có 03 máy chủ với hệ điều hành CentOS7 là đủ (gồm AnsibleServer, Server01 và Server02), sau đó mở rộng ra các client tiếp theo là được. Trong phần 2 này chúng tôi cũng chỉ sử dụng 03 máy kể tên ở trên để thực hành trước, các phần tiếp theo sẽ thêm các máy tiếp theo.
IP Planning
Hostname | OS | IP |
Ansible Server | CentOS7 | 192.168.10.100 |
Server01 | CentOS7 | 192.168.10.101 |
Server02 | CentOS7 | 192.168.10.102 |
Server03 | Ubuntu 16.04 | 192.168.10.103 |
Hướng dẫn Cài đặt Ansible
Bước 1: Cài đặt Ansible
Để bắt đầu khám phá Ansible như một phương tiện quản lý các server khác nhau của ta , ta cần cài đặt phần mềm Ansible trên ít nhất một máy.
Để có được Ansible cho CentOS 7, trước tiên hãy đảm bảo repository CentOS 7 EPEL đã được cài đặt:
Khi repository được cài đặt, hãy cài đặt Ansible với yum
Bây giờ ta có tất cả các phần mềm cần thiết để quản trị các server của ta thông qua Ansible.
Sau khi cài đặt xong, chúng ta có thể kiểm phiên bản Ansible đã cài đặt là bao nhiêu dùng lệnh:
Kết quả
Bước 2: Cấu hình SSH Key
Ansible hoạt động theo cơ chế agentless, có nghĩa là không cần cài agent vào các máy client để điều khiển, thay vào đó ansible sẽ sử dụng việc điều khiển các client thông qua SSH. Do vậy, tới bước này ta có thể dùng 2 cách để ansible có thể điều khiển được các máy client.
- Cách 1: Sử dụng usename, port của ssh để khai báo trong inventory. Các này không được khuyến cáo khi dùng trong thực tế vì việc password dạng clear text sẽ hiện thị, hoặc nếu dùng cách này thì cần phải secure cho file inventory này bằng ansible-vault
- Cách 2: Sử dụng ssh keypair. Có nghĩa là ta sẽ tạo ra private key và public key trên node AnisbleServer và copy chúng sang các node client (hay còn gọi là các host).
Tạo SSH key cho các node
Đứng tại node Ansible Server tạo SSH Key, sau đó copy các sang node còn lại. Mục tiêu là sử dụng keypair để không phải nhập password mỗi khi đăng nhập vào các client.
Đứng tại user root của node Ansible Server và thực hiện bước tạo key:
Thực hiện các thao tác Enter
và để mặc định các tùy chọn khi lab.
Thực hiện copy file key sang các node còn lại
Ấn Yes
và nhập mật khẩu root của node server01
Làm tương tự với node server02 và server03
Sau đó đứng từ node Ansible Server, thử ssh sang các node Server01 & Server2, nếu không bị hỏi mật khẩu thì ta đã sử dụng ssh key thành công.
Lưu ý nhớ dùng lệnh exit sau khi đăng nhập ở từng node. Tiếp tục chuyển sang bước khai báo file inventory để chứa danh sách các host cần thiết.
Bước 3: Cấu hình Ansible Server
Thực hiện việc này trên node Ansible Server
Mặc định thì danh sách các host mà Ansible Server điều khiển sẽ nằm ở file /etc/ansible/host
. File mặc định này sẽ chứa các khai báo mẫu, ta sẽ thực hiện sao lưu lại và khai báo file theo bài LAB này.
Sau đó mở file /etc/ansible/host để khai báo
Nội dung của file sẽ có dạng như sau
Sau khi thêm các dòng trên, ta lưu file trên lại. Chú ý rằng ta có thể sử dụng cặp thẻ
[ ] để khai báo các group. Các group này sẽ do ta quy hoạch sao cho phù hợp với hệ thống, với ứng dụng của chúng ta. Ở đây tôi tạm tạo group là[centos]
và [ubuntu]
Thực hiện kiểm tra danh sách host đã đươc khai báo trong file inventory ở trên bằng lệnh ansible all --list-hosts
. Trong đó all là một tùy chọn của lệnh trên, mục tiêu là liệt kê tất cả các hosts nằm trong file inventory, bất kể các host đó nằm ở group nào.
Kết quả:
Nếu chúng ta chỉ muốn kiểm tra các host trong group [centos] ta thực hiện với tùy chọn lệnh như sau ansible centos --list-host
, kết quả sẽ như bên dưới.
Tới bước này chúng ta mới dừng lại việc khai báo danh sách các host. Trong thực tế các ta cần khai báo thêm các tùy chọn về mật khẩu, về port thậm chí cả về user mà Ansible Server được phép sử dụng để điều khiển các host.
Một file inventory tương đối hoàn chỉnh sẽ có định đạng như sau. Đây cũng là cú pháp của file inventory từ bản Ansible 2.0 trở lên. Hãy sửa lại file inventory của bạn để có định dạng như bên dưới, sẽ bổ sung thêm các tùy chọn
Sửa file /etc/ansible/host
với nội dung như bên dưới
- server01, serrver02,server03: Tương ứng là các hostname của các node
- ansible_host: Địa chỉ IP của node client tương ứng
- ansible_port: Port của SSH phía client, nếu ta thay đổi thì sẽ chỉnh lại cho đúng.
- ansible_user: Là username của client mà AnsibleServer sẽ dùng để tương tác, trong bước trên tôi sử dụng là user root và thông qua SSH Key.
Bước 4: Sử dụng một số lệnh kiểm tra cơ bản
Để kiểm tra xem việc khai báo này đã đúng và bắt đầu tiếp các bài lab tiếp theo hay chưa, hãy sử dụng tùy chọn -m trong lệnh dưới, đây là dấu hiệu nhận biết về việc sẽ sử dụng module có tên là ping (-m là viết tắt của module). Trong bài này sẽ giới thiệu thêm một số moudle khác ngoài module ping này.
Như ở trên đã nói hoặc trong các tài liệu khác có đề cập, ansible có khái niệm sử dụng các module được cung cấp sẵn để người quản trị làm các công việc cấu hình, sử dụng ansible cho hợp lý. Việc sử dụng module trong ansible rất linh hoạt và có rất nhiều module, ta cần đọc hoặc tra cứu từ trang chủ về các module mà ansible hỗ trợ.
Kết quả của lệnh trên như bên dưới:
Kết quả trên cho thấy server02 phản hồi về trạng thái màu xanh. Có nghĩa là đứng từ Ansible Server ta đã ping thành công tới server02, còn màu đỏ chỉ ra rằng Ansible Server không tìm thấy server1 và server03
Sở dĩ có kết quả như trên là vì trong phần này của bài LAB, tôi đã khai báo đủ 03 node server nhưng mới có node server02 là được bật khi tôi thực hiện lab.
Ta có thể lựa chọn các group để thực hiện tương tác thông qua Ansible, ví dụ tôi sẽ thực hiện module ping với group là centos6 đã khai bào ở trên bằng lệnh ansible centos -m ping. Kết quả là
Các shell module cho phép chúng tôi gửi một lệnh terminal đến máy chủ từ xa và lấy kết quả. Ví dụ, để tìm hiểu mức sử dụng bộ nhớ trên máy server01 của chúng tôi, chúng tôi có thể sử dụng:
Module setup
trong ansible
Ta có thể sử dụng module setup
để kiểm tra các thông tin tổng quát về hệ điều hành của các node, ví dụ kiểm tra phiên bản, kiểm tra thông tin card mạng, tên host, thông số về phần cứng ….
Ví dụ ta có thể sử dụng lệnh sau để kiểm tra xem distro của các host là gì ansible all -m setup -a 'filter=ansible_distribution'
. Kết quả ta sẽ nhìn thấy như sau:
Kết quả:
Hoặc ta có thể sử dụng lệnh ansible all -m setup -a 'filter=ansible_default_ipv4'
để liệt kê ra các địa chỉ IPv4 trên các node. Kết quả sẽ trả về
Tới đây, việc setup cở bản LAB ansible này đã hoàn tất, nếu muốn khám phá thêm các module khác thì bạn có thể chủ động tìm kiếm từ trang chủ của Ansible hoặc các blog khác hoặc ngay tại các bài viết sau này từ Website này.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: http://bit.ly/ytb_binhoraclemaster
👨 Tiktok: https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
[Ansible] Phần 2 – Cài đặt và cấu hình Ansible trên CentOS 7, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, securecrt, xshell, mobaxterm, putty