我创建了 Ansible 剧本来创建用户并设置密码。但这给了我一个错误
错误:密码不是 Ansible Play 的合法参数
---
- hosts: all
user: root
vars:
password: jbJe1oRlSZKQ6
tasks:
- user: name=testuser password={{password}}
答案1
首先:您需要password:
在剧本中缩进,因为您希望它是一个变量:
vars:
password: hashed_password
如果它没有缩进,那么 Ansible 会将其视为播放参数并抛出错误,因为password
不是。
其次:除非您在 OSX 上为用户设置密码,否则您需要提供密码的哈希值。遵循详细指示,但基本上你需要提供以下输出:
mkpasswd --method=SHA-512
或者安装passlib
:
pip install passlib
并运行:
python -c "from passlib.hash import sha512_crypt; import getpass; print sha512_crypt.encrypt(getpass.getpass())"
答案2
- 主机:您的主机名 变为:真实 变量: # 创建于: # python -c '导入地穴; print crypt.crypt("这是我的密码", "$1$SomeSalt$")' 密码:$1$SomeSalt$aIJ0bvHJBSYd307VQuuD90 任务: - 用户:名称=tset 密码={{密码}} 状态=存在