使用厨师运行bash passwd

时间:2018-05-23 16:12:18

标签: bash chef passwd

我很难弄清楚如何使用厨师来运行bash命令(passwd)

我知道如何设置bash资源块但是如何设置它以便采用变量password = 'abc123'。对于此示例,我想要执行此操作的用户是adminblah

bash 'analytics_password' do
  code <<-EOH
    sudo passwd adminblah
  EOH
end

我不知道如何获取密码变量。

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式设置用户密码。如果您想使用bash资源,可以执行此操作:

# Backslashes are escaped because of ruby
bash 'analytics_password' do
  code <<-EOH
    echo -e "#{password}\\n#{password}\\n" | passwd adminblah
  EOH
  sensitive true
end

如果您在命令行上运行此命令,则上述echo会复制输入,然后确认密码。

您还可以使用chpasswd代替(如果可用):

bash 'analytics_password' do
  code <<-EOH
    echo "adminblah:#{password}" | chpasswd
  EOH
  sensitive true
end

在上述两种情况下,sensitive属性会隐藏Chef日志中任何可能的密码输出。

最佳选择可能是查看user资源。这有点复杂,因为您需要创建Password Shadow Hash(链接中提供了示例),但应予以考虑。