Truyền host trực tiếp.
Bạn có thể truyền host trực tiếp vào khi chạy playbook bằng cách sử dụng tùy chọn -i
(inventory) như sau:
ansible-playbook -i "192.168.1.10," playbook.yml
Trong đó 192.168.1.10
là địa chỉ IP của host bạn muốn thực hiện playbook. Chú ý dấu phẩy ,
sau địa chỉ IP để đánh dấu rằng chỉ có 1 host được truyền vào. Nếu bạn muốn truyền nhiều host, chỉ cần thêm các địa chỉ IP cách nhau bằng dấu phẩy và không có khoảng trắng. Ví dụ:
ansible-playbook -i "192.168.1.10,192.168.1.20,192.168.1.30" playbook.yml
Ngoài ra, bạn cũng có thể sử dụng tùy chọn -l
(limit) để chỉ định một hoặc nhiều host muốn thực hiện playbook. Ví dụ:
ansible-playbook -i inventory.yml -l webserver playbook.yml
Trong đó inventory.yml
là file mô tả các host trong inventory, webserver
là tên của group hoặc tên của host muốn thực hiện playbook.
Truyền tham số remote server, username và mật khẩu của remote server.
Để chạy playbook Ansible với tham số remote server, username và mật khẩu của remote server, bạn có thể sử dụng cú pháp như sau:
ansible-playbook -i <inventory file> <playbook file> --extra-vars "ansible_user=<remote user> ansible_ssh_pass=<remote password>"
Trong đó:
<inventory file>
là file chứa danh sách các máy chủ mà playbook sẽ chạy lên.<playbook file>
là tên của playbook mà bạn muốn chạy.<remote user>
là tên người dùng của máy chủ từ xa mà bạn muốn kết nối.<remote password>
là mật khẩu người dùng của máy chủ từ xa mà bạn muốn kết nối.
Ví dụ, nếu bạn muốn chạy playbook setup.yml
trên máy chủ webserver
với người dùng ubuntu
và mật khẩu password123
, bạn có thể sử dụng cú pháp sau:
ansible-playbook -i inventory.ini setup.yml --extra-vars "ansible_user=ubuntu ansible_ssh_pass=password123"
Lưu ý rằng, cách này không được khuyến khích vì nó có thể gây lỗ hổng bảo mật. Thay vào đó, bạn nên sử dụng SSH Key-based authentication hoặc các phương pháp xác thực bảo mật khác để kết nối đến các máy chủ từ xa.
Truyền tham số ssh port.
Để thêm thông tin cổng SSH khi chạy Ansible playbook, bạn có thể sử dụng option -e
(hoặc --extra-vars
) để chỉ định biến môi trường ansible_ssh_common_args
. Biến môi trường này cho phép bạn thêm các thông số tùy chỉnh cho lệnh SSH được sử dụng bởi Ansible.
Ví dụ, nếu bạn muốn sử dụng cổng SSH là 2222, bạn có thể sử dụng câu lệnh sau:
ansible-playbook -i inventory.ini playbook.yml -e "ansible_ssh_common_args='-p 2222'"
Trong đó:
inventory.ini
là file chứa danh sách các máy chủ mà playbook sẽ chạy lên.playbook.yml
là tên của playbook mà bạn muốn chạy.-e
hoặc--extra-vars
cho phép bạn chỉ định các biến môi trường tùy chỉnh cho Ansible.ansible_ssh_common_args
là biến môi trường để chỉ định các tham số tùy chỉnh cho lệnh SSH được sử dụng bởi Ansible.'-p 2222'
là tham số để chỉ định cổng SSH là 2222.
Lưu ý rằng, để sử dụng cổng SSH tùy chỉnh này, bạn cần đảm bảo rằng cổng này đã được mở trên máy chủ từ xa và được phép truy cập từ máy chủ Ansible.
Ví dụ sau đây sẽ có đủ thông tin port ssh, username, password.
ansible-playbook playbook.yml -i "192.168.13.213," --extra-vars "ansible_user=root ansible_ssh_pass=hoanghd" -e "ansible_ssh_common_args='-p 8022'"
Đây là một câu lệnh chạy playbook của Ansible với các thông số sau:
playbook.yml
là tên của playbook mà bạn muốn chạy.-i "192.168.13.213,"
khai báo địa chỉ IP của máy chủ mà playbook sẽ chạy, trong trường hợp này là192.168.13.213
. Dấu phẩy ở cuối chỉ ra rằng đây là một danh sách máy chủ, dù trong trường hợp này chỉ có một máy chủ duy nhất.--extra-vars "ansible_user=root ansible_ssh_pass=hoanghd"
khai báo các biến môi trường (environment variables) bổ sung để sử dụng trong playbook. Trong trường hợp này,ansible_user
được đặt làroot
, tức là sử dụng tài khoảnroot
để đăng nhập vào máy chủ, vàansible_ssh_pass
được đặt làhoanghd
, tức là sử dụng mật khẩuhoanghd
để đăng nhập.-e "ansible_ssh_common_args='-p 8022'"
khai báo các biến môi trường bổ sung khác. Trong trường hợp này,ansible_ssh_common_args
được đặt là-p 8022
, tức là sử dụng cổng8022
để kết nối SSH đến máy chủ.
Với các thông số trên, Ansible sẽ thực thi playbook playbook.yml
trên máy chủ có địa chỉ IP là 192.168.13.213
, sử dụng tài khoản root
và mật khẩu hoanghd
, kết nối SSH đến cổng 8022
.
Bạn có thể khai báo các thông tin remote server, SSH port, tên đăng nhập và mật khẩu trong file inventory của Ansible.
Cú pháp để khai báo một máy chủ trong file inventory như sau:
[group_name]
host1 ansible_ssh_host=remote_server ansible_ssh_port=ssh_port ansible_ssh_user=remote_user ansible_ssh_pass=remote_pass
Trong đó:
group_name
là tên nhóm máy chủ của bạn.host1
là tên của máy chủ trong nhóm đó.ansible_ssh_host
là địa chỉ IP hoặc tên miền của máy chủ.ansible_ssh_port
là cổng SSH để kết nối đến máy chủ.ansible_ssh_user
là tên đăng nhập để đăng nhập vào máy chủ.ansible_ssh_pass
là mật khẩu để đăng nhập vào máy chủ.
Ví dụ, nếu bạn muốn khai báo máy chủ có địa chỉ IP là 192.168.1.100
, cổng SSH là 2222
, tên đăng nhập là remote_user
và mật khẩu là remote_pass
, bạn có thể thêm dòng sau vào file inventory:
[web_servers]
web1 ansible_ssh_host=192.168.1.100 ansible_ssh_port=2222 ansible_ssh_user=remote_user ansible_ssh_pass=remote_pass
Sau đó, trong playbook của bạn, bạn có thể sử dụng tên nhóm web_servers
và tên máy chủ web1
để thực hiện các tác vụ trên máy chủ đó.