---
tags: Ansible, Playbook
---
# Playbook Ansible para alterar a senha de root com prompts.
A ideia original deste lab é demonstrar o uso de variáveis e prompts em um playbook Ansible.
## Playbook
changerootpass.yaml
```
---
- name: Alterar a senha do usuário root do Linux
hosts: '{{ target }}'
remote_user: root
become: yes
become_method: sudo
gather_facts: false
vars_prompt:
- name: target
prompt: Insira o FQDN alvo ou grupo de hosts Ansible
private: no
- name: passwd
prompt: NOVA SENHA DE ROOT
unsafe: yes
private: yes
confirm: yes
salt_size: 10
tasks:
- name: A T E N Ç Ã O
pause:
prompt: "Este playbook não armazena senhas - (Enter para continuar)"
- name: Alterando a senha de root
user:
name: root
password: "{{ passwd | password_hash('sha512') }}"
```
## Inventário
Um inventário ansible é qualquer arquivo de texto contendo o FQDN ou IP do host a ser tocado, um grupo de hosts é o valor colocado entre [chaves]. Exemplo:
hosts.lab
```
[likeRhel]
rocky9-kvm
rocky8-vps
[likeDebian]
kali.lab.int
```
## Play the Game
Neste lab, a chave ssh do root local já foi trocada com os hosts alvo, então executamos o playbook com *sudo*;
Outro detalhe é que quero trocar a senha de todos os hosts do inventátio, então informo no prompt *"Insira o FQDN alvo ou grupo de hosts Ansible:"* **all**, isto é, todos os hosts do inventário serão tocados; mas poderia informar por exemplo *likeRhel* para alterar apenas os hosts *rocky* e/ou apenas o nome do host como *kali.lab.int*
```
┌──(francisco [👻] debian)-[~/…/lab/playbooks/security/rootpasswd]
└─$ sudo ansible-playbook changerootpass.yaml -i hosts.lab
Insira o FQDN alvo ou grupo de hosts Ansible: all
NOVA SENHA DE ROOT:
confirm NOVA SENHA DE ROOT:
PLAY [Alterar a senha do usuário root do Linux] ****************************************************************************
TASK [A T E N Ç Ã O] *******************************************************************************************************
[A T E N Ç Ã O]
Este playbook não armazena senhas - (Enter para continuar):
TASK [Alterando a senha de root] *******************************************************************************************
changed: [kali.lab.int]
changed: [rocky9-kvm]
changed: [rocky8-vps]
PLAY RECAP *****************************************************************************************************************
kali.lab.int : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
rocky8-vps : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
rocky9-kvm : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
```