Điểm:0

Ansible không kết nối được ssh với máy chủ EC2 được tạo động

lá cờ cn
TSG

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
flowerysong avatar
lá cờ th
Một vài lưu ý: "không gặp nhiều may mắn" không phải là mô tả hay về vấn đề bạn đang gặp phải với `add_host`. Nếu có thể, bạn nên chuyển sang `ec2_instance` thay vì sử dụng `ec2`; mô-đun này không được dùng nữa vì thư viện được xây dựng trên đó (boto) đã không được duy trì kể từ năm 2018. Cuối cùng, sử dụng `delegate_to: localhost` thay vì `local_action` thường được ưu tiên hơn, vì mô-đun này yêu cầu người bảo trì tìm hiểu ít đoạn cú pháp hơn và tạo ra mô-đun này rõ ràng rằng điều này hoạt động giống như cách ủy quyền cho bất kỳ mục tiêu nào khác.
Điểm:0
lá cờ th

Bạn có thể đặt các biến cho bất kỳ tác vụ, khối hoặc phát nào bằng cách sử dụng lọ từ khóa.

- 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
  lọ:
    ansible_user: centos

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.