Я пытаюсь решить небольшую проблему, с которой я сталкиваюсь в данный момент.
Я создаю небольшую пьесу для создания пользователей на нескольких машинах с одинаковыми UID и группами.
но когда я пытаюсь передать пароль как дополнительную переменную ansible ответ:
[ПРЕДУПРЕЖДЕНИЕ]: пароль ввода не был хеширован. Аргумент «пароль» должен быть зашифрован для правильной работы этого модуля.
В данный момент я использую ansible с Дженкинсом.
Это книга воспроизведения (отладка)
---
- name: Create New Users
hosts: "{{svr}}"
vars:
gen_passwd: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
private: yes
encrypt: "md5_crypt"
tasks:
- set_fact:
passwd: "{{gen_passwd}}"
- name: Create Users Task
user:
name: "{{usr}}"
state: present
password: "{{passwd}}"
shell: /bin/bash
uid: "{{uid}}"
group: "{{primary_group}}"
groups: "{{grps}}"
create_home: yes
- debug:
msg: "{{passwd}}"
Теперь я не пытаюсь передать его как дополнительный var, я пытаюсь сгенерировать его и отправить по электронной почте пользователю, который его запрашивает.
Есть идеи?
edit
Окончательно решено с помощью python -passlib Для использования вам необходимо иметь python -passlib password_hash('sha512')
yum install python-passlib
Окончательный playboook с сгенерированным паролем и по электронной почте пользователю:
---
- name: Create New Users
hosts: "{{svr}}"
vars:
gen_passwd: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
tasks:
- set_fact:
passwd: "{{gen_passwd}}"
- name: Create Users Task
user:
name: "{{usr}}"
state: present
password: "{{passwd | password_hash('sha512')}}"
shell: /bin/bash
uid: "{{uid}}"
group: "{{primary_group}}"
groups: "{{grps}}"
create_home: yes
- debug:
msg: "{{passwd}}"
- mail:
from: EMAIL NAME <noreply@server.com>
to: "{{em_sol}}"
subject: User request
subtype: html
body: '<table style="font-family:Calibri; color:#5F5F5F; margin-top:15px; margin-left:15px">
<tbody>
<tr>
<td> </td>
</tr>
<tr>
<td>
<h1>User request</h1>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><b>User:</b></td>
</tr>
<tr>
<td>"{{usr}}"</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><b>Description:</b></td>
</tr>
<tr>
<td>User created: "{{usr}}"</td>
</tr>
<td>User was created in the servers: "{{svr}}"</td>
</tr>
<td>User has been included in: "{{primary_group}}" "{{grps}}"</td>
</tr>
<td>The generated password is: "{{passwd}}"</td>
</tr>
<tr>
<td>
<hr>
</td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><b>User requested by:</b></td>
</tr>
<tr>
<td>"{{em_sol}}" </td>
</tr>
<tr>
</tr>
</tr>
</tr>
</tr>
<tr>
<td>Please, don´t reply this email.</td>
</tr>
<tr>
<td>
<hr>
</td>
</tr>
<tr>
</tr>
<tr>
<td></td>
</tr>
<tr>
</tr>
</tbody>
</table>'
Этот код отправляет электронное письмо в режиме html с ansible
Надеюсь, это кому-нибудь поможет!