我有一个正在使用 ansible 配置的 Vagrant 虚拟机。在我的配置脚本中,我正在创建一个用户并设置他们的密码,但我怀疑密码正在以某种方式被散列成我无法使用的东西:
- name: Create SSH user for workers
action: user name=worker password=worker shell=/bin/bash groups=vagrant
当我去
ssh worker@myvmhost并输入密码
worker我收到消息:
Permission denied, please try again.
有什么方法可以在我的 vagrant box 上设置一个用户,可以简单地使用用户名和密码登录?在这种情况下
worker/
worker .
请您参考如下方法:
你写的是password is hashed .
有指南here用于为用户设置密码。
简而言之,它是这样完成的:
pip install passlib
python -c "from passlib.hash import sha512_crypt; print sha512_crypt.encrypt('worker')"
然后使用你的剧本中的值(value)。如果您希望它完全自动化,您可以执行以下操作:
- name: ensure passlib python lib is installed
pip: name=passlib
delegate_to: 127.0.0.1
- name: hash password
shell: python -c "from passlib.hash import sha512_crypt; print sha512_crypt.encrypt('worker')"
register: hashed_pw
delegate_to: 127.0.0.1
- name: create SSH user for workers
user: name=worker
password={{ hashed_pw.stdout }}
shell=/bin/bash
groups=vagrant
请注意,使用此方法,密码将在您的主机而不是远程计算机上进行哈希处理。




