允许用户在使用Ansible创建帐户后设置密码

时间:2016-11-24 03:48:24

标签: passwords ansible ubuntu-16.04

我有以下手册用于在Ubuntu 16.04主机上创建新用户:

---
- hosts: all 
  become: yes 
  become_method: sudo
  tasks:
  - name: Create user guybrush
    user: name=guybrush comment="Guybrush Threepwood" shell=/bin/bash groups=pirates append=yes

  - name: Copy SSH key for guybrush
    authorized_key: user=guybrush key={{ lookup("file", "/home/guybrush/.ssh/id_rsa.pub") }}

但是,当我以新用户身份登录并尝试使用passwd设置密码时,系统会询问我的(当前)UNIX密码。鉴于没有为用户设置密码,我不确定为什么要求我这样做。

如何修复我的Playbook,以便新创建的用户可以在第一次登录后轻松设置密码?

1 个答案:

答案 0 :(得分:2)

您可以将密码设置为空行,因此passwd不会要求输入旧密码 您也可以将其设置为已过期,以强制用户在首次登录时更改密码。

- user: name=jsmith password=""
- authorized_key: user=jsmith key={{ lookup("file", "/somepath/id_rsa.pub") }}
- command: chage -d 0 jsmith

如果存在空密码的安全问题,您可以将其设置为某个随机预定义密码并使用welcome ssh消息在首次登录时显示。