我使用 Chef with kitchen (1.5.0) 和 vagrant (1.8.1) 来管理用户与新服务器的一致性。我的用户食谱如下所示:
include_recipe "users"
group 'sudo'
password_secret = Chef::EncryptedDataBagItem.load_secret(node['enterprise_sp']['secret_file'])
jays_password = Chef::EncryptedDataBagItem.load('user_secrets','jgodse', password_secret)['password']
shadow_password = `openssl passwd -1 -salt xyz #{jays_password}`.strip
user 'jgodse' do
action :create
group 'sudo'
system true
shell '/bin/bash'
home '/home/jgodse'
manage_home true
password shadow_password #added to /etc/shadow when chef runs
end
未加密的数据包是我明文配置密码的地方。然后我用刀命令 加密了数据包。
这行得通,但这似乎是解决设置密码问题的一种非常肮脏的方法。我必须这样做,因为用户块的密码指令只接受影子密码,并且只能通过使用openssl命令生成。
有没有一种更简洁的方法来获取影子密码,而无需使用生成密码的openssl命令?