пароли в пользовательском модуле ANSIBLE - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь решить небольшую проблему, с которой я сталкиваюсь в данный момент.

Я создаю небольшую пьесу для создания пользователей на нескольких машинах с одинаковыми 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>&nbsp; </td>
    </tr>
    <tr>
    <td>
    <h1>User request</h1>
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td><b>User:</b></td>
    </tr>
    <tr>
    <td>"{{usr}}"</td>
    </tr>
    <tr>
    <td>&nbsp; </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>&nbsp; </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

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...