Hai tùy chọn - đầu tiên, như bạn đã nói trong câu trả lời của riêng mình, là đặt biến môi trường ANSIBLE_HOST_KEY_CHECKING
thành Sai.
Cách thứ hai để đặt nó là đặt nó trong tệp ansible.cfg và đó là một tùy chọn thực sự hữu ích vì bạn có thể đặt nó trên toàn cầu (ở cấp hệ thống hoặc người dùng, trong /etc/ansible/ansible.cfg
hoặc ~/.ansible.cfg
) hoặc trong tệp cấu hình trong cùng thư mục như cuốn sách bạn đang chạy
Để làm điều đó, tạo một ansible.cfg
tệp ở một trong những vị trí đó và bao gồm:
[defaults]
host_key_checking = False
Bạn cũng có thể đặt nhiều mặc định tiện dụng khác ở đó, như có thu thập sự kiện khi bắt đầu chơi hay không, có nên hợp nhất các giá trị băm được khai báo ở nhiều nơi hoặc thay thế bằng một vị trí khác, v.v. Có một danh sách lớn các tùy chọn ở đây trong các tài liệu Ansible.
Chỉnh sửa: một lưu ý về bảo mật.
Xác thực khóa máy chủ SSH là lớp bảo mật có ý nghĩa đối với các máy chủ lưu trữ liên tục - nếu bạn đang kết nối với cùng một máy nhiều lần, việc chấp nhận khóa máy chủ cục bộ là rất có giá trị.
Đối với các phiên bản EC2 tồn tại lâu hơn, sẽ hợp lý khi chấp nhận khóa máy chủ với một tác vụ chỉ chạy một lần khi tạo cá thể ban đầu:
- name: Write the new ec2 instance host key to known hosts
connection: local
shell: "ssh-keyscan -H {{ inventory_hostname }} >> ~/.ssh/known_hosts"
Không có giá trị bảo mật để kiểm tra khóa máy chủ trong các trường hợp bạn tự động đứng lên và xóa ngay sau khi thực hiện Playbook, nhưng có giá trị bảo mật trong việc kiểm tra khóa máy chủ cho các máy liên tục. Vì vậy, bạn nên quản lý kiểm tra khóa máy chủ khác nhau trên mỗi môi trường logic.
- Để lại kiểm tra được bật theo mặc định (trong
~/.ansible.cfg
)
- Vô hiệu hóa kiểm tra khóa máy chủ trong thư mục làm việc cho các playbook bạn chạy với các trường hợp phù du (
./ansible.cfg
bên cạnh playbook để kiểm tra đơn vị chống lại các VM mơ hồ, tự động hóa cho các trường hợp ec2 tồn tại trong thời gian ngắn)