Chef:初始化新的linux用户(如果它尚不存在)

Coy*_*ney 1 linux chef-infra

我正在尝试使用Chef创建新用户并在用户尚不存在时使用户密码过期.

我已经设法通过使用bash脚本并在代理服务器上执行它来实现它,但我想要一种更清洁的方式.

当前的Bash脚本:

http://i.gyazo.com/fdd49630f58f9b0e0acdc324143e3481.png

想要在食谱中使用:

inituser do
    username => "username"
    password => "password"
    group => "group":
end
Run Code Online (Sandbox Code Playgroud)

使用上面的代码创建一个新用户(如果它尚不存在)并使其密码到期.

谢谢!

更新:对不起我糟糕的沟通,但我想要做的是拥有自己的自定义资源,将"解析"用户名,密码和组到我上面的预先写好的bash资源.

小智 7

您只需使用用户资源即可创建新用户.

user "newuser" do
  supports :manage_home => true
  home "/home/newuser"
  shell "/bin/bash"
  password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi."
  not_if "getent passwd newuser"
end
Run Code Online (Sandbox Code Playgroud)

请注意,密码是密码阴影哈希,可以按如下方式生成:

openssl passwd -1 "theplaintextpassword"

有关更多信息:http://docs.opscode.com/resource_user.html