Tôi muốn sử dụng ansible để quản lý một nhóm các máy chủ hiện có. Tôi đã tạo một ansible_hosts
tệp và đã thử nghiệm thành công (với -K
tùy chọn) với các lệnh chỉ nhắm mục tiêu đến một máy chủ duy nhất
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Vấn đề của tôi bây giờ là mật khẩu người dùng trên mỗi máy chủ khác nhau, nhưng tôi không thể tìm ra cách xử lý vấn đề này trong Ansible.
Khi sử dụng -K
, tôi chỉ được nhắc nhập một mật khẩu sudo duy nhất, mà sau đó dường như sẽ được thử cho tất cả các máy chủ tiếp theo mà không cần nhắc:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Nghiên cứu cho đến nay:
một câu hỏi StackOverflow với một câu trả lời không chính xác ("sử dụng
-K
") và một câu trả lời của tác giả nói rằng "Phát hiện ra tôi cần mật khẩu sudo"các tài liệu Ansible , có nội dung "Sử dụng sudo không mật khẩu giúp mọi thứ dễ dàng tự động hóa hơn, nhưng không bắt buộc ." (nhấn mạnh của tôi)
bảo mật này StackExchange câu hỏi mà mất nó như đọc rằng
NOPASSWD
là cần thiếtbài viết "Cung cấp có thể mở rộng và có thể hiểu được ..." có nội dung:
"chạy sudo có thể yêu cầu nhập mật khẩu, đó là cách chắc chắn để chặn Ansible mãi mãi. Cách khắc phục đơn giản là chạy visudo trên máy chủ đích và đảm bảo rằng người dùng Ansible sẽ sử dụng để đăng nhập không phải nhập mật khẩu"
bài viết "Playbook Ansible cơ bản" , trong đó nói
"Ansible có thể đăng nhập vào máy chủ mục tiêu với quyền root và tránh sự cần thiết của sudo, hoặc để người dùng ansible không có mật khẩu, nhưng ý nghĩ về việc làm cho lá lách của tôi bị đe dọa sẽ nhảy lên ống thông hơi của tôi và chặn khí quản của tôi, vì vậy tôi không "
Suy nghĩ của tôi chính xác, nhưng sau đó làm thế nào để mở rộng ra ngoài một máy chủ?
vấn đề ansible # 1227 , "Ansible nên yêu cầu mật khẩu sudo cho tất cả người dùng trong một cuốn sách", đã bị đóng cửa một năm trước bởi mpdehaan với nhận xét "Không thấy nhiều nhu cầu về điều này, tôi nghĩ rằng hầu hết mọi người đang sudo từ chỉ một tài khoản người dùng hoặc sử dụng khóa hầu hết thời gian. "
Vậy ... mọi người sử dụng Ansible như thế nào trong những tình huống như thế này? Thiết NOPASSWD
trong /etc/sudoers
, tái sử dụng mật khẩu trên host hoặc cho phép SSH gốc đăng nhập tất cả dường như giảm khá mạnh mẽ trong an ninh.
sudo
(vẫn cần mật khẩu).
ansible_ssh_password
thiết lập chỉ áp dụng cho mật khẩu SSH (đầu mối là trong tên ...). & Tôi đã sử dụng đăng nhập SSH dựa trên khóa.