Eu gostaria de usar o ansible para gerenciar um grupo de servidores existentes. Criei um ansible_hosts
arquivo e testei com sucesso (com a -K
opção) com comandos que segmentam apenas um único host
ansible -i ansible_hosts host1 --sudo -K # + commands ...
Meu problema agora é que as senhas de usuário em cada host são diferentes, mas não consigo encontrar uma maneira de lidar com isso no Ansible.
Usando -K
, sou solicitada apenas uma única senha sudo antecipadamente, que parece ser tentada para todos os hosts subseqüentes sem avisar:
host1 | ...
host2 | FAILED => Incorrect sudo password
host3 | FAILED => Incorrect sudo password
host4 | FAILED => Incorrect sudo password
host5 | FAILED => Incorrect sudo password
Pesquisa até agora:
uma pergunta StackOverflow com uma resposta incorreta ("use
-K
") e uma resposta do autor dizendo "Descobri que precisava de sudo sem senha"os documentos Ansible , que dizem "O uso do sudo sem senha facilita a automatização das coisas, mas não é necessário ". (ênfase minha)
esta questão de segurança StackExchange, que aceita a leitura
NOPASSWD
necessáriaartigo "Provisionamento escalável e compreensível ...", que diz:
"executar o sudo pode exigir a digitação de uma senha, o que é uma maneira segura de bloquear o Ansible para sempre. Uma solução simples é executar o visudo no host de destino e garantir que o usuário que o Ansible usará para efetuar o login não precise digitar uma senha"
artigo "Manual básico de instruções" , que diz
"O Ansible pode fazer login no servidor de destino como root e evitar a necessidade de sudo, ou permitir que o usuário ansible o sudo sem uma senha, mas o pensamento de fazer isso faz com que meu baço ameace saltar meu esófago e bloquear minha traqueia, então eu não "
Meus pensamentos exatamente, mas como estender além de um único servidor?
questão # 1227 , "Ansible deve solicitar a senha do sudo para todos os usuários em um manual", que foi encerrada há um ano por mpdehaan com o comentário "Não vi muita demanda por isso, acho que a maioria das pessoas está usando apenas um conta de usuário ou usando chaves na maioria das vezes. "
Então ... como as pessoas estão usando o Ansible em situações como essas? Definir NOPASSWD
em /etc/sudoers
, reutilização de senha em hosts ou ativar o login SSH raiz todos parecem reduções bastante drásticas em segurança.
sudo
(o que ainda deve exigir uma senha).
ansible_ssh_password
configuração se aplica apenas à senha SSH (a pista está no nome ...). Já estou usando o login SSH baseado em chave.