Ansible là một công cụ quản lý cấu hình rất phổ biến được thiết kế để hợp lý hóa quy trình kiểm soát một số lượng lớn máy chủ. Nó có thể tự động hóa quy trình thiết lập máy chủ mới và cài đặt ứng dụng chỉ bằng một lệnh hoặc tệp. Bạn có thể kiểm soát nhiều máy chủ và chạy các quy trình trên chúng cùng lúc từ một nút duy nhất. Ansible không yêu cầu bất kỳ phần mềm đặc biệt nào được yêu cầu cài đặt trên các nút máy chủ và có thể điều khiển chúng qua SSH.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình Ansible trên máy chủ Ubuntu 22.04.
May mắn thay, Ubuntu tích hợp sẵn Ansible 2.9, đây chính là phiên bản chúng ta sẽ cài đặt. Chạy lệnh sau để cài đặt Ansible.
Kiểm tra cài đặt của bạn bằng cách chạy lệnh sau.
Cài đặt và kích hoạt gói python3-argcomplete để thiết lập hỗ trợ hoàn thành bash của Ansible.
Bây giờ bạn có thể nhấn phím Tab để có danh sách các tùy chọn cho shell bash.
Tùy thuộc vào số lượng máy chủ bạn muốn kiểm soát, tệp Kiểm kê của Ansible cũng cho phép bạn sắp xếp chúng theo nhóm và nhóm con. Bạn cũng có thể đặt các biến tùy chỉnh áp dụng cho các máy chủ hoặc nhóm được chọn có thể được sử dụng thêm trong khi truyền hướng dẫn.
Ansible được cung cấp cùng với tệp Kiểm kê mặc định có tại /etc/ansible/hosts. Mở nó bằng trình soạn thảo Nano.
Dán mã sau vào cuối tệp.
Phần servers xác định danh sách các nút bạn muốn kết nối tới. Bạn có thể tạo nhiều nhóm để sắp xếp các máy chủ thành nhiều nhóm.
Nhóm all:vars đặt tham số ansible_python_interpreter trên tất cả các máy chủ trong kho. Nó đảm bảo rằng Ansible sử dụng tệp thực thi Python 3 thay vì Python 2 đã bị xóa khỏi các phiên bản Ubuntu gần đây.
Khi bạn hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc xác nhận các thay đổi của bạn.
Lưu ý: Bạn cũng có thể tạo tệp Inventory của mình ở bất kỳ vị trí nào bạn chọn, sau đó bạn có thể chuyển qua bằng cách sử dụng tham số -i trong khi chạy các lệnh Ansible.
Bạn có thể kiểm tra danh sách inventory của mình bằng lệnh sau.
Sử dụng các bước sau để tạo và thiết lập khóa SSH cho Ansible và các nút của nó.
Tạo khóa cho Ansible.
Sao chép khóa công khai vào tài khoản của bạn trên máy chủ từ xa. Đối với lệnh này, chúng ta sẽ sử dụng lệnh ssh-copy-id.
Vậy là xong. Bây giờ Ansible có thể giao tiếp với máy chủ của bạn.
Để tạo người dùng ansible, hãy chạy lệnh sau.
Chọn một mật khẩu mạnh và để trống tất cả các trường khác.
Bây giờ, hãy định cấu hình quyền truy cập sudo không cần mật khẩu cho người dùng này thông qua lệnh sau.
Bây giờ, bạn đã thêm và cấu hình người dùng mới, bạn có thể sao chép khóa SSH từ máy chủ ansible của mình sang máy chủ node bằng lệnh sau.
Bạn sẽ được nhắc nhập mật khẩu cho người dùng ansible. Nhập mật khẩu và khóa SSH sẽ được sao chép.
Tiếp theo, vô hiệu hóa đăng nhập dựa trên mật khẩu cho người dùng ansible trên máy chủ node.
Bây giờ, máy chủ node của bạn chỉ có thể truy cập được từ máy chủ Ansible vì chỉ máy chủ đó mới có khóa công khai cho nó và bạn không thể sử dụng nó với các đặc quyền sudo trên máy chủ node trực tiếp vì đăng nhập bằng mật khẩu đã bị vô hiệu hóa.
Bạn sẽ phải lặp lại các bước này cho từng máy chủ node. Ngoài ra, hãy thay thế người dùng root bằng người dùng ansible trong hướng dẫn này.
Nhập lệnh sau để kiểm tra kết nối. Lệnh này sẽ kiểm tra kết nối với tất cả các máy chủ từ tệp inventory.
Lệnh này sử dụng mô-đun ping của Ansible để chạy thử nghiệm kết nối trên tất cả các máy chủ. Bạn sẽ nhận được kết quả như sau.
Nếu đây là lần đầu tiên bạn sử dụng Ansible, bạn sẽ được yêu cầu xác nhận tính xác thực của tất cả các máy chủ. Khi được nhắc, hãy nhập yes và nhấn ENTER để xác nhận.
Lệnh trên kiểm tra thời gian hoạt động trên server1 từ nhóm inventory.
Bạn cũng có thể nhắm mục tiêu nhiều máy chủ bằng định dạng sau.
Bạn cũng có thể nhắm mục tiêu các nhóm hoặc nhóm con trực tiếp từ tệp inventory.
Chạy lệnh sau để cập nhật phần mềm trên tất cả các máy chủ của bạn.
Tham số -m định nghĩa module để Ansible chạy. Tham số -a tham chiếu đến các đối số hoặc lệnh cho module liên quan. Ở đây, chúng ta sử dụng module apt của Ansible để cập nhật máy chủ giống như chúng ta đã sử dụng module ping trong ví dụ trước. update_cache cập nhật bộ đệm APT trên máy chủ và upgrade=yes yêu cầu Ansible chạy lệnh apt upgrade.
Nếu bạn đang sử dụng người dùng ansible như đã ghi chú ở trên, bạn cần sửa đổi lệnh ansible để chạy với quyền sudo nâng cao.
Tại đây, -K yêu cầu mật khẩu leo thang đặc quyền. -b chạy thao tác ansible với become cho phép bạn trở thành một người dùng khác. Cả hai biến kết hợp cho phép ansible chạy với quyền sudo nâng cao. Bạn sẽ cần sử dụng lệnh này cho tất cả các lệnh yêu cầu quyền sudo.
Đôi khi, một số lệnh cập nhật này có thể yêu cầu khởi động lại, vì vậy hãy chạy lệnh sau để khởi động lại tất cả máy chủ của bạn.
Đây chỉ là một số lệnh cơ bản mà bạn có thể chạy bằng Ansible.
Bây giờ chúng ta sẽ tạo một playbook để cài đặt Nginx và thiết lập một trang HTML trên nút Ansible. Tạo một thư mục cho Ansible trong thư mục home của bạn.
Tạo và mở tệp playbook để chỉnh sửa.
Playbook sử dụng định dạng YAML để xác định một hoặc nhiều play. Play là một tập hợp các tác vụ có thứ tự được sắp xếp theo cách tự động hóa một quy trình. Các play được xác định là danh sách YAML.
Bước đầu tiên để xác định play là xác định máy chủ nào là mục tiêu bằng cách sử dụng lệnh hosts: all. Lệnh become được sử dụng để chỉ ra rằng các tác vụ sau phải được thực hiện bởi siêu người dùng.
Chúng ta sẽ xác định ba tác vụ: một để thêm người dùng, một để nâng cấp tất cả các gói và tác vụ cuối cùng để cài đặt máy chủ Nginx. Phần vars của playbook được sử dụng để xác định các biến tùy chỉnh. Chúng tôi định nghĩa hai biến, một cho người dùng mà chúng tôi cần thêm và biến thứ hai để định nghĩa trạng thái của gói mà chúng tôi cần cài đặt. Để sử dụng biến, chúng tôi cần đặt tên biến giữa hai dấu ngoặc nhọn.
Mô-đun ansible.builtin.user được sử dụng để thêm người dùng mới có quyền sudo. Để thêm người dùng, chúng tôi sử dụng các biến name, password và group. Biến group được đặt thành sudo để cấp quyền siêu người dùng cho người dùng. Bạn không thể đặt plaintext-password trong tệp playbook, do đó, chúng tôi sẽ thêm bí mật băm SHA. Chúng tôi sẽ sử dụng tiện ích mkpasswd cho mục đích đó. Để cài đặt, hãy chạy lệnh sau để cài đặt gói whois.
Tạo mật khẩu băm. Bạn sẽ được yêu cầu nhập mật khẩu thông thường và sẽ được cung cấp một chuỗi băm cho mật khẩu đó. Ghi lại khóa băm để sử dụng trong tệp playbook.
Chỉ thị update_cache là để cập nhật danh sách kho lưu trữ của hệ thống giống như lệnh apt update và chỉ thị upgrade: dist yêu cầu Ansible thực hiện nâng cấp hệ thống. Nhiệm vụ thứ ba khá dễ hiểu, đó là cài đặt phiên bản mới nhất của máy chủ Nginx.
Dựa trên thông tin chúng ta đã thảo luận, hãy dán đoạn mã sau vào tệp. Dán khóa băm mà bạn nhận được làm giá trị cho biến password.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc xác nhận thay đổi của bạn.
Để thực thi sổ tay hướng dẫn, hãy chạy lệnh sau. Cờ --ask-become-pass sẽ yêu cầu mật khẩu gốc của bạn để thực hiện một hoạt động nâng cao.
Bạn sẽ nhận được kết quả sau.
Điều này xác nhận rằng playbook của bạn đã chạy thành công.
Nếu bạn đang sử dụng tệp inventory tùy chỉnh, bạn cần bao gồm vị trí của tệp trong lệnh như sau.
Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và cấu hình Ansible trên máy chủ Ubuntu 22.04.
Điều kiện tiên quyết
- Hai hoặc nhiều hệ thống máy chủ chạy Ubuntu 22.04 với máy chủ OpenSSH được cài đặt.
- Cả máy chủ và các nút đều có thể truy cập thông qua địa chỉ IP công khai.
- Một người dùng không phải root có đặc quyền sudo được thiết lập trên máy chủ Ansible và một người dùng root có mật khẩu được thiết lập trên máy khách Ansible.
Bước 1 - Cài đặt Ansible
Chúng tôi sẽ sử dụng kho lưu trữ chính thức của Ansible để cài đặt phiên bản mới nhất của nó. Thêm kho lưu trữ chính thức của Ansible vào máy chủ.
Mã:
$ sudo add-apt-repository ppa:ansible/ansible
Mã:
$ sudo apt install ansible -y
Mã:
$ ansible --versionansible [core 2.13.3rc1] tệp cấu hình = /etc/ansible/ansible.cfg đường dẫn tìm kiếm mô-đun đã định cấu hình = ['/home/navjot/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] vị trí mô-đun python ansible = /usr/lib/python3/dist-packages/ansible ansible collection location = /home/navjot/.ansible/collections:/usr/share/ansible/collections executable location = /usr/bin/ansible python version = 3.10.4 (main, 29 tháng 6 năm 2022, 12:14:53) [GCC 11.2.0] jinja version = 3.0.3 libyaml = True
Mã:
$ sudo apt install python3-argcomplete$ sudo activate-global-python-argcomplete3
Bước 2 - Thiết lập Tệp Kiểm kê
Để có thể kết nối với nhiều máy chủ, bạn cần một tệp sẽ ghi lại thông tin chi tiết về các nút. Tệp này được gọi là Tệp Kiểm kê.Tùy thuộc vào số lượng máy chủ bạn muốn kiểm soát, tệp Kiểm kê của Ansible cũng cho phép bạn sắp xếp chúng theo nhóm và nhóm con. Bạn cũng có thể đặt các biến tùy chỉnh áp dụng cho các máy chủ hoặc nhóm được chọn có thể được sử dụng thêm trong khi truyền hướng dẫn.
Ansible được cung cấp cùng với tệp Kiểm kê mặc định có tại /etc/ansible/hosts. Mở nó bằng trình soạn thảo Nano.
Mã:
$ sudo nano /etc/ansible/hosts
Mã:
[servers]server1 ansible_host=203.0.113.111server2 ansible_host=203.0.113.112server3 ansible_host=203.0.113.113[all:vars]ansible_python_interpreter=/usr/bin/python3
Nhóm all:vars đặt tham số ansible_python_interpreter trên tất cả các máy chủ trong kho. Nó đảm bảo rằng Ansible sử dụng tệp thực thi Python 3 thay vì Python 2 đã bị xóa khỏi các phiên bản Ubuntu gần đây.
Khi bạn hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc xác nhận các thay đổi của bạn.
Lưu ý: Bạn cũng có thể tạo tệp Inventory của mình ở bất kỳ vị trí nào bạn chọn, sau đó bạn có thể chuyển qua bằng cách sử dụng tham số -i trong khi chạy các lệnh Ansible.
Bạn có thể kiểm tra danh sách inventory của mình bằng lệnh sau.
Mã:
$ ansible-inventory --list -yall: 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_interpreter: /usr/bin/python3 ungrouped: {}
Tổ chức máy chủ thành nhóm và nhóm con
Đây là một mẹo hữu ích nếu bạn có nhiều máy chủ với một số máy chủ thực hiện các chức năng cụ thể. Ví dụ, bạn có thể sử dụng phương pháp này để nhóm riêng các máy chủ web và máy chủ cơ sở dữ liệu. Bạn thậm chí có thể tạo một máy chủ thành một phần của nhiều nhóm. Để đạt được điều đó, tệp inventory của bạn sẽ trông giống như sau.
Mã:
[webservers]203.0.113.111203.0.113.112[dbservers]203.0.113.113server_hostname[development]203.0.113.111203.0.113.113[production]203.0.113.112server_hostname
Bước 3 - Thiết lập Khóa SSH
Để Ansible có thể kết nối với các máy chủ, bạn phải cấu hình khóa SSH giữa máy chủ Ansible và các máy chủ được chỉ định trong tệp inventory. Điều này chỉ có hiệu lực nếu máy khách Ansible không bật khóa công khai và bật tài khoản root có mật khẩu.Sử dụng các bước sau để tạo và thiết lập khóa SSH cho Ansible và các nút của nó.
Tạo khóa cho Ansible.
Mã:
$ ssh-keygen -t rsa -b 4096 -C "Ansible key"
Mã:
$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub [emailprotected]$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub [emailprotected]$ ssh-copy-id -i $HOME/.ssh/id_rsa.pub [emailprotected]
Thiết lập Khóa SSH trên các Nút có Khóa công khai hiện có
Nếu máy khách đã bật khóa công khai, thì bạn sẽ phải thực hiện một số bước bổ sung. Để thực hiện, bạn cần tạo một người dùng mới chỉ có thể truy cập được bằng Ansible trên mọi máy chủ nút. Người dùng đó sẽ có quyền sudo có thể truy cập mà không cần mật khẩu và chỉ có thể truy cập được từ máy chủ ansible của bạn.Để tạo người dùng ansible, hãy chạy lệnh sau.
Mã:
$ sudo adduser ansible
Bây giờ, hãy định cấu hình quyền truy cập sudo không cần mật khẩu cho người dùng này thông qua lệnh sau.
Mã:
$ echo "ansible ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ansible
Mã:
$ ssh-copy-id [emailprotected]
Tiếp theo, vô hiệu hóa đăng nhập dựa trên mật khẩu cho người dùng ansible trên máy chủ node.
Mã:
$ sudo usermod -L ansible
Bạn sẽ phải lặp lại các bước này cho từng máy chủ node. Ngoài ra, hãy thay thế người dùng root bằng người dùng ansible trong hướng dẫn này.
Bước 4 - Kiểm tra kết nối
Sau khi thiết lập tệp inventory và khóa SSH, chúng ta nên kiểm tra xem Ansible có thể kết nối với máy chủ hay không.Nhập lệnh sau để kiểm tra kết nối. Lệnh này sẽ kiểm tra kết nối với tất cả các máy chủ từ tệp inventory.
Mã:
$ ansible all -m ping -u root
Mã:
server1 | SUCCESS => { "changed": false, "ping": "pong"}server2 | SUCCESS => { "changed": false, "ping": "pong"}server3 | THÀNH CÔNG => { "changed": false, "ping": "pong"}
Bước 5 - Chạy một số lệnh cơ bản
Chúng ta hãy chạy một số lệnh cơ bản trên các máy chủ bằng Ansible. Để chạy bất kỳ lệnh nào trên máy chủ, định dạng sau được sử dụng.
Mã:
$ ansible all -a "command" -u
Kiểm tra mức sử dụng đĩa
Trước tiên, chúng ta hãy kiểm tra mức sử dụng đĩa trên tất cả các máy chủ của mình.
Mã:
$ ansible all -a "df -h" -u rootserver1 | ĐÃ THAY ĐỔI | rc=0 >>Kích thước hệ thống tệp Đã sử dụng Có sẵn Sử dụng% Đã gắn kết trêntmpfs 198M 972K 197M 1% /run/dev/sda2 50G 3,9G 44G 9% /tmpfs 989M 0 989M 0% /dev/shmtmpfs 5,0M 0 5,0M 0% /run/locktmpfs 198M 4,0K 198M 1% /run/user/1000server2 | ĐÃ THAY ĐỔI | rc=0 >>Kích thước hệ thống tệp Đã sử dụng Có sẵn Sử dụng% Đã gắn kết trêntmpfs 198M 922K 197M 1% /run/dev/sda2 50G 4.9G 43G 10% /tmpfs 989M 0 989M 0% /dev/shmtmpfs 5.0M 0 5.0M 0% /run/locktmpfs 198M 4.0K 198M 1% /run/user/1000
Nhắm mục tiêu vào từng máy chủ và nhóm riêng lẻ
Cho đến nay, chúng tôi đã chạy lệnh trên tất cả các máy chủ từ xa cùng một lúc. Nhưng không phải lúc nào cũng vậy. Để chạy lệnh trên một máy chủ, bạn nên sử dụng định dạng sau.
Mã:
$ ansible server1 -a "uptime" -u rootserver1 | CHANGED | rc=0 >> 21:38:26 hoạt động 11 phút, 2 người dùng, tải trung bình: 0,00, 0,20, 0,19
Bạn cũng có thể nhắm mục tiêu nhiều máy chủ bằng định dạng sau.
Mã:
$ ansible server1:server2 -m ping -u root
Mã:
$ ansible groupname -m ping -u
Cập nhật tất cả các máy chủ
Đối với hướng dẫn này, chúng tôi giả định rằng tất cả các máy chủ từ xa đều chạy hệ điều hành Debian hoặc Ubuntu.Chạy lệnh sau để cập nhật phần mềm trên tất cả các máy chủ của bạn.
Mã:
$ ansible all -m apt -a "update_cache=yes upgrade=yes" -u root
Nếu bạn đang sử dụng người dùng ansible như đã ghi chú ở trên, bạn cần sửa đổi lệnh ansible để chạy với quyền sudo nâng cao.
Mã:
$ ansible server2 -m apt -a "update_cache=yes upgrade=yes" -K -b -u ansible
Đôi khi, một số lệnh cập nhật này có thể yêu cầu khởi động lại, vì vậy hãy chạy lệnh sau để khởi động lại tất cả máy chủ của bạn.
Mã:
$ ansible all -a "reboot" -u root
Bước 6 - Giới thiệu về Playbook
Các lệnh trên cho phép bạn chạy các tác vụ một lần nhưng nếu bạn muốn thiết lập nhiều máy chủ hoặc chạy cùng một chuỗi lệnh trên nhiều máy chủ, bạn cần thiết lập playbook. Playbook là các tệp được viết bằng YAML và chứa các hướng dẫn để tự động hóa một chuỗi tác vụ để thiết lập các ứng dụng và dịch vụ.Bây giờ chúng ta sẽ tạo một playbook để cài đặt Nginx và thiết lập một trang HTML trên nút Ansible. Tạo một thư mục cho Ansible trong thư mục home của bạn.
Mã:
$ mkdir ~/ansible
Mã:
$ cd ~/ansible$ nano testplaybook.yml
Bước đầu tiên để xác định play là xác định máy chủ nào là mục tiêu bằng cách sử dụng lệnh hosts: all. Lệnh become được sử dụng để chỉ ra rằng các tác vụ sau phải được thực hiện bởi siêu người dùng.
Chúng ta sẽ xác định ba tác vụ: một để thêm người dùng, một để nâng cấp tất cả các gói và tác vụ cuối cùng để cài đặt máy chủ Nginx. Phần vars của playbook được sử dụng để xác định các biến tùy chỉnh. Chúng tôi định nghĩa hai biến, một cho người dùng mà chúng tôi cần thêm và biến thứ hai để định nghĩa trạng thái của gói mà chúng tôi cần cài đặt. Để sử dụng biến, chúng tôi cần đặt tên biến giữa hai dấu ngoặc nhọn.
Mô-đun ansible.builtin.user được sử dụng để thêm người dùng mới có quyền sudo. Để thêm người dùng, chúng tôi sử dụng các biến name, password và group. Biến group được đặt thành sudo để cấp quyền siêu người dùng cho người dùng. Bạn không thể đặt plaintext-password trong tệp playbook, do đó, chúng tôi sẽ thêm bí mật băm SHA. Chúng tôi sẽ sử dụng tiện ích mkpasswd cho mục đích đó. Để cài đặt, hãy chạy lệnh sau để cài đặt gói whois.
Mã:
$ sudo apt install whois
Mã:
$ mkpasswd --method=sha-512Mật khẩu:$6$dGbprm2oVqClDDDh$Epk6r5eXYkYBaQpQpP.H7VCdz0g9Aj0aO8hjy/WXq4WmfQ7GvQP2/cl/cNhd7.LRFuCKix9uCF2t8X5/Pv0Lk1
Dựa trên thông tin chúng ta đã thảo luận, hãy dán đoạn mã sau vào tệp. Dán khóa băm mà bạn nhận được làm giá trị cho biến password.
Mã:
---- name: Sổ tay kiểm tra hosts: all become: true vars: state: latest user: navjot task: - name: Thêm người dùng {{ user }} ansible.builtin.user: name: "{{ user }}" password: '$6$dGbprm2oVqClDDDh$Epk6r5eXYkYBaQpQpP.H7VCdz0g9Aj0aO8hjy/WXq4WmfQ7GvQP2/cl/cNhd7.LRFuCKix9uCF2t8X5/Pv0Lk1' group: sudo - name: Nâng cấp tất cả các gói apt apt: update_cache: yes upgrade: dist - name: Cài đặt {{ state }} của gói "nginx" apt: name: "nginx" state: "{{ state }}"
Để thực thi sổ tay hướng dẫn, hãy chạy lệnh sau. Cờ --ask-become-pass sẽ yêu cầu mật khẩu gốc của bạn để thực hiện một hoạt động nâng cao.
Mã:
$ ansible-playbook testplaybook.yml --ask-become-pass
Mã:
Mật khẩu BECOME:PLAY [Test playbook] ******************************************************************************************************NHIỆM VỤ [Thu thập thông tin] **********************************************************************************************ok: [server1]ok: [server2]ok: [server3]NHIỆM VỤ [Thêm người dùng casablanca] ****************************************************************************************************đã thay đổi: [server3]đã thay đổi: [server2]đã thay đổi: [server1]NHIỆM VỤ [Nâng cấp tất cả các gói apt] ****************************************************************************************đã thay đổi: [server1]đã thay đổi: [server2]đã thay đổi: [server3]NHIỆM VỤ [Cài đặt gói "nginx" mới nhất] *********************************************************************************đã thay đổi: [server3]đã thay đổi: [server2]đã thay đổi: [server1]TÓM TẮT TRÒ CHƠI ****************************************************************************************************************server1 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 solved=0 escaped=0 ignored=0server2 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescue=0 ignored=0server3 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescue=0 ignored=0
Nếu bạn đang sử dụng tệp inventory tùy chỉnh, bạn cần bao gồm vị trí của tệp trong lệnh như sau.
Mã:
$ ansible-playbook -i /etc/ansible/custominventory testplaybook.yml --ask-become-pass