Puncte:0

Ansible nu reușește să se conecteze ssh la gazda EC2 creată dinamic

drapel cn
TSG

Scriptul meu Ansible creează o mașină AWS, apoi încearcă să se conecteze la ea. În funcție de imaginea pe care o creez, numele de utilizator implicit pentru autentificare SSH este fie „centos”, fie „ubuntu”, etc.

Scriptul meu de mai jos eșuează la wait_for_connection cu o eroare „permisiune refuzată”. eu presupune acest lucru se datorează faptului că ssh folosește un nume de utilizator greșit; nodul de control rulează scriptul ca „userx”. (Am confirmat că cheia mea publică este pe mașina de la distanță și cheia mea privată corespunzătoare este disponibilă pe nodul de control).

Cum îmi ajustez scriptul pentru ca ansible să folosească numele de utilizator corect? Nu îl pot specifica în inventar, deoarece gazda tocmai a fost creată, iar numele de utilizator depinde de tipul instanței. Nu există opțiunea „nume de utilizator” pentru wait_for_connection

Scenariul meu:

- nume: creați o mașină AWS
  local_action:
    modul: 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 }}”
    imagine: „{{ ami_id }}”
    așteaptă: adevărat
    regiune: „{{ aws_region }}”
    zona: „{{ aws_zone}}”
    vpc_subnet_id: „{{ aws_vpc_subnet }}”
    assign_public_ip: da
  registru: ec2

- nume: așteptați să apară SSH
  delegate_to: „{{ ec2.instances[0].public_dns_name }}”
  wait_for_connection:
    întârziere: 60
    somn: 15
    timeout: 40

Am încercat să setez utilizatorul și fișierul cheie chiar înainte de wait_for_connection, așa cum se arată mai jos, dar ansible încă raportează ca utilizator NIMIC, iar fișierele cheie încercate nu listează fișierul meu cheie (/root/.ssh/mykey):

- nume: pregătiți-vă pentru a vă conecta la noul nod
  set_fact:
    ansible_user: „centos”
    ansible_ssh_private_key_file: „{{ private_key_file }}”        

și o parte a ieșirii ansible:

<ec2-34-27-194-74.compute-1.amazonaws.com> ESTABILIȚI CONEXIUNEA SSH PENTRU UTILIZATOR: Niciuna
debug1: fișier de identitate /root/.ssh/id_ecdsa tip -1
flowerysong avatar
drapel th
Câteva note: „a nu avea prea mult noroc” nu este o descriere bună a problemei pe care o întâmpinați cu `add_host`. Dacă este posibil, ar trebui să comutați la `ec2_instance` în loc să utilizați `ec2`; acest modul este depreciat deoarece biblioteca pe care este construit (boto) nu a fost întreținută din 2018. În cele din urmă, folosirea „delegate_to: localhost” în loc de „local_action” este în general de preferat, deoarece necesită întreținerii să învețe mai puține părți de sintaxă și o face evident că aceasta funcționează în același mod ca și delegarea către orice altă țintă.
Puncte:0
drapel th

Puteți seta variabile pentru orice sarcină, bloc sau joc folosind vars cuvânt cheie.

- nume: așteptați să apară SSH
  delegate_to: „{{ ec2.instances[0].public_dns_name }}”
  wait_for_connection:
    întârziere: 60
    somn: 15
    timeout: 40
  vars:
    utilizator_ansible: centos

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.