Good evening everyone, I'm looking for an automated way to create user
accounts with random passwords and re-using them for the
`ansible_sudo_pass` variable.
Is there an official position on how to do/accomplish this?
My current solution broke after an update from Ansible 1.9 to Ansible 2
and I struggle to make it work under Ansible 2.
For more details let me explain my solution and how it breaks with Ansible
2.
I create a new user and store its password with this task:
---
- name: Create user
user: name=deployer group=deployer password={{item}} state=present
with_password: "./passwords/my-server/users/deployer encrypt=sha256_crypt"
In a different playbook I use the previously created user and its password like
this:
---
- hosts: all
remote_user: deployer
vars:
- ansible_sudo_pass: "{{ lookup('password',
'./passwords/my-server/users/deployer') }}"
Creating the user creates the `./passwords/my-server/users/deployer` file
containing the password and a salt. The salt comes from the `encrypted`
parameter which in turn is needed by the `user` module because it requires an
encrypted password. Without this parameter you will set the users password to
an unknown one.
Different to the `user` module Ansible expects the `ansible_sudo_pass` variable
to be in plaintext. Therefore we use the lookup method without an encrypted
parameter. With Ansible 1.9 this resulted in a password file where the salt
part was removed. (I assume this was not intended, but for my use case it was
not a problem.)
Nonetheless this procedure worked with Ansible 1.9.
After updating to Ansible 2 my server provisioning process started to fail due
to a wrong sudo password. The first thing I noticed was that the lookup
function no longer removed the salt part of the password file. Secondly it
seems that compared to 1.9 it now reads the entire file instead of only the
password. This in turn means the `ansible_sudo_pass` also contains the salt
part of the file which results in an obviously wrong password.
Thank you for reading. I appreciate any pointers and tips on how to accomplish
my goal under Ansible 2.
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/f594c0ec-a302-45ec-b8f8-20b6cf96c23c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.