Tập lệnh Ansible của tôi tạo một máy AWS, sau đó thử kết nối với máy đó. Tùy thuộc vào hình ảnh tôi đang tạo, tên người dùng mặc định để đăng nhập SSH là 'centos' hoặc 'ubuntu', v.v.
Tập lệnh bên dưới của tôi không thành công trên Wait_for_connection với lỗi 'quyền bị từ chối'. Tôi cho rằng điều này là do ssh đang sử dụng sai tên người dùng; nút điều khiển đang chạy tập lệnh là 'userx'. (Tôi đã xác nhận rằng khóa chung của mình có trên máy từ xa và khóa riêng phù hợp của tôi có sẵn trên nút điều khiển).
Làm cách nào để điều chỉnh tập lệnh của tôi để khiến ansible sử dụng đúng tên người dùng? Tôi không thể chỉ định nó trong kho vì máy chủ vừa được tạo và tên người dùng phụ thuộc vào loại phiên bản. Không có tùy chọn 'tên người dùng' cho wait_for_connection
Kịch bản của tôi:
- tên: Tạo một máy AWS
local_action:
mô-đun: ec2
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
key_name: "{{key_name }}"
group_id: "{{ security_group_id }}"
instance_type: "{{ instance_type }}"
ảnh: "{{ami_id }}"
chờ đợi: đúng
khu vực: "{{ aws_region }}"
vùng: "{{ aws_zone}}"
vpc_subnet_id: "{{ aws_vpc_subnet }}"
gán_public_ip: có
đăng ký: ec2
- name: Đợi SSH hiện lên
delegate_to: "{{ ec2.instance[0].public_dns_name }}"
wait_for_connection:
chậm trễ: 60
ngủ: 15
thời gian chờ: 40
Tôi đã thử đặt người dùng và tệp khóa ngay trước wait_for_connection như được hiển thị bên dưới, nhưng ansible vẫn báo cáo là kết nối với tư cách là người dùng KHÔNG CÓ và các tệp khóa đã thử không liệt kê tệp khóa của tôi (/root/.ssh/mykey):
- name: Chuẩn bị kết nối với nút mới
set_fact:
ansible_user: 'centos'
ansible_ssh_private_key_file: "{{ private_key_file }}"
và một phần của đầu ra ansible:
<ec2-34-27-194-74.compute-1.amazonaws.com> THIẾT LẬP KẾT NỐI SSH CHO NGƯỜI DÙNG: Không
debug1: tệp nhận dạng /root/.ssh/id_ecdsa gõ -1