# Password change automation

**URL:** <https://forum.ansible.com/t/password-change-automation/29532>\
**Category:** Ansible Project\
**Created:** [January 25, 2019, 6:56pm UTC](https://forum.ansible.com/t/password-change-automation/29532 "2019-01-25T18:56:52Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mboncalo](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mboncalo](https://forum.ansible.com/u/mboncalo)\
**Post date:** [January 25, 2019, 6:56pm UTC](https://forum.ansible.com/t/password-change-automation/29532/1 "2019-01-25T18:56:52Z")

</div>

Hi,  
I know there are lots of examples on the internet but I can't make it work

ansible-playbook --private-key=/root/docker/aatool/ky.pem --extra-vars  
admin\_password=T3est@ chpass.yml  
[WARNING]: provided hosts list is empty, only localhost is available.  
Note that the implicit localhost does not match 'all'

[WARNING]: Could not match supplied host pattern, ignoring: ansible2

PLAY [User configuration]

---

<div class="post-metadata">

**Author:** ![hugonz](https://sea1.discourse-cdn.com/ansible/user_avatar/forum.ansible.com/hugonz/32/503_2.png) [@hugonz](https://forum.ansible.com/u/hugonz)\
**Post date:** [January 25, 2019, 7:24pm UTC](https://forum.ansible.com/t/password-change-automation/29532/2 "2019-01-25T19:24:20Z")

</div>

The password field must be hashed for all unices. You’re using plaintext for that. The ansible docs:

```auto
Optionally set the user's password to this crypted value.
On macOS systems, this value has to be cleartext. Beware of security issues.
To create a disabled account or Linux systems, set this to '!' or '*'.
See [https://docs.ansible.com/ansible/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module](https://docs.ansible.com/ansible/faq.html#how-do-i-generate-crypted-passwords-for-the-user-module) for details on various ways to generate these password values.

```

Hugo

---

<div class="post-metadata">

**Author:** ![mboncalo](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mboncalo](https://forum.ansible.com/u/mboncalo)\
**Post date:** [January 25, 2019, 9:51pm UTC](https://forum.ansible.com/t/password-change-automation/29532/3 "2019-01-25T21:51:16Z")

</div>

But I'm using a hashing filter inside the platbook for that -  
password\_hash('sha512')

> From your link - "Use the integrated Hashing filters to generate a

hashed version of a password. You shouldn’t put plaintext passwords in  
your playbook or host\_vars; instead, use Using Vault in playbooks to  
encrypt sensitive data."

I don't know Ansible too much but the error "skipping: no hosts  
matched" doesn't seem related to the hashing issue

What intrigues me is that I specified the hostname ansible2, which can  
be found in /etc/hosts

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [January 25, 2019, 10:28pm UTC](https://forum.ansible.com/t/password-change-automation/29532/4 "2019-01-25T22:28:57Z")

</div>

Ansible doesn't use /etc/hosts, you should read up on basic Ansible usage.  
[https://docs.ansible.com/ansible/latest/user\_guide/intro\_getting\_started.html](https://docs.ansible.com/ansible/latest/user_guide/intro_getting_started.html)  
[https://docs.ansible.com/ansible/latest/user\_guide/intro\_inventory.html](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)

---

<div class="post-metadata">

**Author:** ![mboncalo](https://avatars.discourse-cdn.com/v4/letter/m/8dc957/32.png) [@mboncalo](https://forum.ansible.com/u/mboncalo)\
**Post date:** [January 26, 2019, 12:37am UTC](https://forum.ansible.com/t/password-change-automation/29532/5 "2019-01-26T00:37:15Z")

</div>

Hi Kai,

Thanks, it worked like a charm 🙂

I already worked with inventory files but since I did it only few  
times i missed it. The thing is that Ansible uses /etc/hosts file in a  
way, because the hostname you place into inventory file, or in  
ansible hosts file must be found in /etc/hosts file in order to be  
associated to a IP Address if I'm not mistaken.

Thanks,  
Mihai.

---

<div class="post-metadata">

**Author:** ![Kai\_Stian\_Olstad](https://avatars.discourse-cdn.com/v4/letter/k/e19adc/32.png) [@Kai\_Stian\_Olstad](https://forum.ansible.com/u/Kai_Stian_Olstad)\
**Post date:** [January 26, 2019, 1:26pm UTC](https://forum.ansible.com/t/password-change-automation/29532/6 "2019-01-26T13:26:36Z")

</div>

Actually Ansible doesn't use /etc/hosts, but your operation system usually does.  
Ansible just send the request to the OS and get an IP in response.

The name doesn't need to be in /etc/hosts, it could be in DNS as well.  
The OS searches /etc/hosts first, it it doesn't find it will try DNS.
