如何编写厨师食谱以自动在节点中创建新用户和密码?

时间:2016-01-15 09:30:39

标签: chef chef-recipe

我是厨师新手。请帮忙!我试过这个

user "newuser" do
  password: xyz
end

user 'newuser' do
  comment 'A random user'
  uid '1234567'
  gid '1234567'
  home '/home/saxuser'
  shell '/bin/bash'
  password 'newpassword'
end 

1 个答案:

答案 0 :(得分:0)

user resource的正确格式如下:

user "newuser" do
  password crypt_password
end

请记住,密码必须为阴影格式:

  

密码影子哈希。此属性要求安装ruby-shadow。这是Debian软件包的一部分:libshadow-ruby1.8。

请参阅Password Shadow Hash section以了解如何生成影子密码:

$ openssl passwd -1 "theplaintextpassword"

要从食谱中生成影子密码,您可以使用openssl食谱助手来生成盐:

Chef::Recipe.send(:include, OpenSSLCookbook::RandomPassword)

password = 'xyz'
salt = random_password(length: 10)
crypt_password = password.crypt("$6$#{salt}")

user 'newuser' do
  password crypt_password
end      

不要忘记在运行列表中加入openssl食谱。

无论如何,请记住,这会在每次厨师运行中产生不同的盐,所以也许这不是最好的使用方法。

我还建议您阅读Noah's post about secrets management以了解使用Chef管理密码的适当方法。