Sanes
@Sanes

Ansible. Как в аргументе --extra-vars указать encrypt: sha512_crypt?

Имеется сценарий добавления линукс пользователя с такими параметрами
vars_prompt:
    - name: 'username'
      prompt: 'Username'
      private: no
    - name: 'userpass'
      prompt: 'Password'
      private: no
      encrypt: "sha512_crypt"

Всё работает, однако, если запускать через --extra-vars, то пароль похоже не шифруется
ansible-playbook add.yml --extra-vars "username=user userpass=passwoRD"

Может команду надо как-то по-другому формировать? В документации указано, что JSON поддерживается, однако я не сильно понял, как же всё-таки это сделать.
  • Вопрос задан
  • 640 просмотров
Решения вопроса 1
Sanes
@Sanes Автор вопроса
tasks: 
    - name: 'Add user'
      user: 'name={{ username }} password={{ userpass |password_hash("sha512") }} update_password=on_create shell=/usr/bin/lshell move_home=yes home=/var/www/{{ username }}'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
opium
@opium
Просто люблю качественно работать
Надо передавать уже зашифрованный пароль , у вас же дыра в безопасности иначе
Ответ написан
@Shkurupii
Код противоречивый. Вы либо оставьте vars_promt либо vars, которые передаете через --extra-vars
Включайте дебаг ansible-playbook add.yml -vvv
---
- hosts: local
  gather_facts: no

  vars_prompt:
  - name: 'username'
    prompt: 'Username'
    private: no
  - name: 'userpass'
    prompt: 'Password'
    private: no
    encrypt: "sha512_crypt"

  tasks:

  - name: username
    shell: echo my username is {{username}}

  - name: look we crypted a password
    shell: echo my password is {{userpass}}

  - debug: var=userpass
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы