AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 1077701
Accepted
TSG
TSG
Asked: 2021-09-16 15:31:05 +0800 CST2021-09-16 15:31:05 +0800 CST 2021-09-16 15:31:05 +0800 CST

Ansible falha ao conectar ssh ao host EC2 criado dinamicamente

  • 772

Meu script Ansible cria uma máquina da AWS e tenta se conectar a ela. Dependendo da imagem que estou criando, o nome de usuário padrão para login SSH é 'centos' ou 'ubuntu' etc.

Meu script abaixo falha no wait_for_connection com um erro de 'permissão negada'. Presumo que seja porque o ssh está usando o nome de usuário errado; o nó de controle está executando o script como 'userx'. (Confirmei que minha chave pública está na máquina remota e minha chave privada correspondente está disponível no nó de controle).

Como ajusto meu script para fazer com que o ansible use o nome de usuário correto? Não posso especificá-lo no inventário, pois o host acabou de ser criado e o nome de usuário depende do tipo de instância. Não há opção 'username' para wait_for_connection

Meu roteiro:

- name: Create one AWS machine
  local_action:
    module: 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 }}"
    image: "{{ ami_id }}"
    wait: true
    region: "{{ aws_region }}"
    zone: "{{ aws_zone}}"
    vpc_subnet_id: "{{ aws_vpc_subnet }}"
    assign_public_ip: yes
  register: ec2

- name: Wait for SSH to come up
  delegate_to: "{{ ec2.instances[0].public_dns_name }}"
  wait_for_connection:
    delay: 60
    sleep: 15
    timeout: 40

Eu tentei definir o usuário e o arquivo de chave logo antes do wait_for_connection, como mostrado abaixo, mas o ansible ainda relata como se conectando como usuário NONE, e os arquivos de chave tentaram não listar meu arquivo de chave (/root/.ssh/mykey):

- name: Prepare to connect to new node
  set_fact:
    ansible_user: 'centos'
    ansible_ssh_private_key_file: "{{ private_key_file }}"        

e parte da saída ansible:

<ec2-34-27-194-74.compute-1.amazonaws.com> ESTABLISH SSH CONNECTION FOR USER: None
debug1: identity file /root/.ssh/id_ecdsa type -1
ssh amazon-web-services ansible
  • 1 1 respostas
  • 167 Views

1 respostas

  • Voted
  1. Best Answer
    flowerysong
    2021-09-16T17:19:25+08:002021-09-16T17:19:25+08:00

    Você pode definir variáveis ​​em qualquer tarefa, bloco ou jogo usando a palavra- varschave.

    - name: Wait for SSH to come up
      delegate_to: "{{ ec2.instances[0].public_dns_name }}"
      wait_for_connection:
        delay: 60
        sleep: 15
        timeout: 40
      vars:
        ansible_user: centos
    
    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve