Ansible: como executar uma peça com hosts com senhas diferentes?

Atualmente, estou aprendendo a usar o Ansible. No momento, tenho vários servidores, novos e antigos, que têm logons ou senhas diferentes ou ambos. Todos têm acesso chave para executar as peças.

Aqui está o que eu comecei. Exemploanfitriões Arquivo:

# legacy and new have different logins (like root and deploy)
[legacy]
serv1
serv2

[new]
serv3
serv4

# different has a different login and password altogether
[different]
serv5

Então, para manter as coisas simples, eu originalmente tinha um manual rodando o equivalente asudo apt-get update && sudo apt-get upgrade em todas as máquinas, mas por causa dos diferentes login / senha, eu criei vários playbooks para cada host. Mas agora eu quero SECAR e estou olhando para os Papéis, de acordo com os documentos deles.

Agora eu tenho algo parecido com isto. O arquivo test / functions / common / tasks / main.yml:

---
- name: run apt-get update
  apt: update_cache=yes
- name: run apt-get upgrade
  apt: upgrade=yes

O arquivo site.yml:

- name: apply common configuration to all nodes
  hosts: all

  roles:
  - common

Entendo que posso realmente definir os diferentes logins comansible_ssh_user=root ou...=deploy no meu arquivo hosts. Ou coloque-os em grupos de grupo. Mas o que faço sobre as diferentes senhas do sudo?[legacy] é raiz, então eu não precisosudo, mas[novo] e[different] precisa e tem senhas diferentes. Como eu faço isso? Vars de grupo? Crio estes: test / group_vars / new / some_file_with_a_passwd.yml e test / group_vars / different / some_other_passwd.yml (ignorando problemas de segurança)?

Como o site.yml reconhece que existem hosts com senhas diferentes ou alguns hosts sem senhas?

Edite por uma questão de clareza: tenho acesso SSH, portanto, a etapa de 'pré-tarefas' durante a peça sempre funciona (eu me conecto por meio do acesso à chave e nunca por uma senha). Não estou preocupado com segurança, pois esse é o próximo passo. Por enquanto, eu quero acertar a coisa group_vars .... É osudo escalação em que tenho problemas. Por exemplo. serv1 sudo pode ser root / password1, serv3 sudo: deploy / password2, serv5: anotherdeploy / password3

questionAnswers(3)

yourAnswerToTheQuestion