Insira a resposta quando o prompt retornar?

0

Não é uma ideia segura nem uma que eu recomendaria em outro lugar, mas tenho uma situação em que ocasionalmente demora um pouco para que meu comando ad-hoc Ansible responda. Eu adoraria canalizar ou args ou o que for necessário para empurrar o texto necessário para o prompt para que eu possa ir embora e saber que vai terminar.

Ex:

$ ansible all -m shell -a "reboot" --ask-pass
Password:
blah blah blah it worked

Adoraria enviar um argumento ou << ou algo para obter a senha. Isso é possível?

    
por mbb 19.08.2014 / 22:10

2 respostas

1

Você pode usar Esperar para essas tarefas.

Aqui está um ponto de partida:

spawn ansible all -m shell -a "reboot" --ask-pass
expect "Password:"
send "secret\r"
expect eof # from this point it depends on the behavior of Ansible...

Salve este snippet em um arquivo, diga reboot-ansimble.sh e execute-o com:

expect reboot-ansimble.sh

PS: Se a Espera não estiver instalada, você poderá buscá-la nos repositórios padrão:

sudo apt-get install expect
    
por 19.08.2014 / 23:57
0

Posso sugerir alternar para a autenticação baseada em chave? link

A autenticação baseada em chave permite que você faça login em um servidor sem uma senha e é muito mais seguro que as senhas. Eu tenho um papel no Ansible Galaxy para gerenciar usuários e chaves aqui: link

    
por 23.08.2015 / 17:36