Problemas com ssh e Ansible

4

Ao executar uma tarefa ansible (com uma ação script ), recebo esta mensagem de erro:

stderr: OpenSSH_6.0p1 Debian-4+deb7u2, OpenSSL 1.0.1e 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 2
Shared connection to 10.0.2.222 closed.

Agora, há várias tarefas que visam o mesmo host antes deste, e todas elas funcionam bem. Eu sei que é o cliente, porque o cliente é o Debian; a coisa que está sendo provisionada é Centos.

Quando tentei procurar essa mensagem de erro, descobri (para minha decepção) que o que obtive geralmente é a primeira parte de uma mensagem mais longa para algum outro problema. Eu tentei adicionar

Host 10.0.2.222
  ControlMaster no

para o início do meu /etc/ssh/ssh_config devido a esta pergunta de puro desespero, mas não funcionou e eu realmente não sei o que poderia ter dado errado; Eu não sei o suficiente sobre como o SSH funciona para descobrir qual seria o culpado mais provável.

    
por Parthian Shot 14.07.2015 / 17:19

1 resposta

4

Isso corrigiu o problema mencionado na questão (ainda existem problemas com a conexão ssh, mas isso é para outra pergunta).

Por padrão, o ansible adiciona algumas opções que sobrescrevem as opções ssh_config . Especificamente, adiciona:

-o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/home/devel/.ansible/cp/ansible-ssh-%h-%p-%r"

Descobri isso usando -vvv com ansible-playbook .

Você pode corrigir / substituir essas opções especificando ssh_args na seção [ssh_connection] do seu .ansible.cfg conforme especificado aqui . Também vale a pena notar que, em contraposição ao que você pode inferir do nome, alterar ssh_args não altera realmente todos os argumentos. O Ansible também passa -C -tt -v -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o ConnectTimeout=10 e outras opções (por exemplo, -o PasswordAuthentication=no -o User=root ), algumas das quais são simplesmente padrões imutáveis, e algumas delas dependem de variáveis especificadas no manual.

    
por 17.07.2015 / 15:32

Tags