Tôi gặp một số khó khăn trong việc điều chỉnh cấu hình Ansible cho môi trường của mình.Ansible SSH là một người dùng và Sudo là một người khác
môi trường thử nghiệm của tôi:
- PermitRootLogin không
- Chỉ một người dùng được phép kết nối thông qua SSH (foo, mà không cần bất kỳ đặc quyền)
- Người dùng với đặc quyền sudo (bar ALL = (ALL) ALL)
hàng tồn kho chủ ansible của tôi trông như thế này:
[servers]
server1 ansible_ssh_host=192.168.0.1 ansible_sudo=true ansible_ssh_user=foo ansible_sudo_user=bar
Tôi có khóa SSH cho người dùng foo.
Khi tôi cố gắng quảng cáo hoc lệnh này (hoặc bất kỳ khác) với mật khẩu thanh:
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
server1 | FAILED => Incorrect sudo password
Sau đó, nếu tôi làm lệnh cùng với mật khẩu foo:
ansible server1 -m raw -a "echo test > /etc/testfile" --ask-sudo-pass
Sorry, user foo is not allowed to execute '/bin/bash -c echo SUDO-SUCCESS-rlpfhamukjnsfyokqbjpbttviiuildif; echo test > /etc/testfile' as bar on server1.
Vì vậy Ansible chắc chắn sử dụng foo như sudo người dùng và không thanh như tôi đã chỉ định. Có cách nào để buộc sử dụng thanh thay vì foo? Tôi thực sự không hiểu các chức năng sudo trên Ansible, thậm chí nếu tôi sử dụng cùng một người dùng cho tất cả mọi thứ (thanh cho SSH và mật khẩu thanh) đưa ra ansible trả tôi:
server1 | FAILED | rc=1 >>
echo test > /etc/testfile : Permission denied
Khi tôi đăng nhập như vạch trên của tôi lưu trữ và thực hiện "kiểm tra echo sudo>/etc/testfile" nó hỏi tôi mật khẩu thanh và thực hiện lệnh một cách chính xác. Tôi đang sai với hành vi Ansible ở đâu?