我有一个 ansible 任务,它在 ubuntu 12.04 上创建一个新用户;
- name: Add deployment user
action: user name=deployer password=mypassword
它按预期完成,但是当我以该用户身份登录并尝试使用我设置的密码进行 sudo 时,它总是说它不正确。我做错了什么?
最佳答案
我可能来不及回复这个问题,但最近我发现 jinja2 过滤器具有处理加密密码生成的能力。在我的 main.yml
中,我将加密密码生成为:
- name: Creating user "{{ uusername }}" with admin access
user:
name: {{ uusername }}
password: {{ upassword | password_hash('sha512') }}
groups: admin append=yes
when: assigned_role == "yes"
- name: Creating users "{{ uusername }}" without admin access
user:
name: {{ uusername }}
password: {{ upassword | password_hash('sha512') }}
when: assigned_role == "no"
- name: Expiring password for user "{{ uusername }}"
shell: chage -d 0 "{{ uusername }}"
“uusername”和“upassword”作为 --extra-vars
传递给剧本,注意我在这里使用了 jinja2 过滤器来加密传递的密码。
我已经在我的博客中添加了以下与此相关的教程
关于bash - 使用 Ansible 创建新用户和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292899/