O subsistema SSH SFTP é necessário nos nós gerenciados para que o Ansible funcione?

5

Quando eu corro:

ansible all -a "/bin/echo hello" -u myuser

Eu volto:

mydomain.myhost.com | FAILED => failed to open a SFTP connection (Channel closed.)

O subsistema SFTP está desabilitado no nó gerenciado que estou tentando conectar.

O SFTP é necessário nos nós gerenciados? Os documentos Ansible não mencionam especificamente o SFTP: link

Eu tentei definir este valor em ansible.cfg:

scp_if_ssh=True

... mas não teve efeito. (Obrigado ao Fred the Magic Wonder Dog pela sugestão .)

Também assegurei que meu shell não interativo não produzia nenhuma saída como sugerido aqui .

    
por braveterry 14.03.2014 / 18:42

2 respostas

4

Veja o que acabei fazendo:

  1. Copied /etc/ansible/ansible.cfg to ~/.ansible.cfg
  2. Editado ~/.ansible.cfg .
  3. #scp_if_ssh = False alterado para scp_if_ssh = True
  4. Adicionada ssh_args = a [ssh_connection] seção.
  5. Ran meu comando com -c SSH flag

Obrigado ao Fred the Magic Wonder Dog por me apontar na direção certa.

    
por 15.04.2014 / 21:05
4

Sim, ansible depende de poder transferir arquivos para a máquina remota. Ele usa o sftp para fazer isso por padrão. Você pode sobrescrever isto para usar o scp usando

scp_if_ssh
Occasionally users may be managing a remote system that doesn’t have SFTP enabled. If set to True, we can cause scp to be used to transfer remote files instead:

scp_if_ssh=False
There’s really no reason to change this unless problems are encountered, and then there’s also no real drawback to managing the switch. Most environments support SFTP by default and this doesn’t usually need to be changed.

As informações acima foram tiradas desta página:

link

    
por 14.03.2014 / 19:14