如何使用chef为nginx创建.htpasswd文件

如何使用chef为nginx创建.htpasswd文件,nginx,openssl,chef-infra,kibana,.htpasswd,Nginx,Openssl,Chef Infra,Kibana,.htpasswd,我是chef的新手,我正在尝试生成一个.htpasswd文件来存储用户哈希,我经历了一些 但这没有帮助。 我需要ngnix来保护Kibana,我想为使用openssl的用户生成密码。我已经创建了一个模板文件.htpasswd_temp.erb 看起来是这样的: <% @kibana_user.each do |user| %> <%= user %>: <% end %> 我创建了一个角色文件,其中定义了所有默认属性(包括kiba_用户)。 上面的代码将

我是chef的新手,我正在尝试生成一个.htpasswd文件来存储用户哈希,我经历了一些 但这没有帮助。 我需要ngnix来保护Kibana,我想为使用openssl的用户生成密码。我已经创建了一个模板文件.htpasswd_temp.erb 看起来是这样的:

<% @kibana_user.each do |user| %>
<%= user %>: 

<% end %>
我创建了一个角色文件,其中定义了所有默认属性(包括kiba_用户)。
上面的代码将用户添加到.htpasswd文件中,但我不知道如何使用openssl生成密码。Openssl命令使用execute资源可以很好地工作,但execute资源在模板资源内部不工作,因此不能反映在.htpasswd文件中。我真的很困惑。非常感谢您的帮助^^

下面的食谱片段可能会很方便您

它假定您熟悉并已将凭证存储在名为
creds
的数据包中,其中包含名为
nginx
的加密项,其中包含
用户名
密码
密钥

htpassed\u file='/root/.htpasswd'
厨师长_gem'htauth'
ruby_块'create.htpasswd'do
布洛克道
需要“htauth”
creds=数据\行李\物品('creds','nginx')
HTAuth::PasswdFile.open(htpassed_文件,HTAuth::file::CREATE)do | pf|
添加(creds['username'],creds['password'])
结束
FileUtils.chmod 0o600,htu文件
结束
结束

以下配方片段可能会方便您

它假定您熟悉并已将凭证存储在名为
creds
的数据包中,其中包含名为
nginx
的加密项,其中包含
用户名
密码
密钥

htpassed\u file='/root/.htpasswd'
厨师长_gem'htauth'
ruby_块'create.htpasswd'do
布洛克道
需要“htauth”
creds=数据\行李\物品('creds','nginx')
HTAuth::PasswdFile.open(htpassed_文件,HTAuth::file::CREATE)do | pf|
添加(creds['username'],creds['password'])
结束
FileUtils.chmod 0o600,htu文件
结束
结束

您可以使用配方以及数据包组合来加密密码(以及用户名)

htpasswd”/etc/nginx/htpassword“do
用户“foo”
密码“栏”
结束

您可以使用配方以及数据包组合来加密密码(以及用户名)

htpasswd”/etc/nginx/htpassword“do
用户“foo”
密码“栏”
结束

@sayali.k:我的荣幸:)@user2066657:这是供参考的。继续做修改,使它幂等。那么不,是吗?好吧,那就需要警卫的陈述才能完整。谢谢@k:我的荣幸:)@user2066657:这是供参考的。继续做修改,使它幂等。那么不,是吗?好吧,那就需要警卫的陈述才能完整。谢谢
kibana_configs = node['kibana']['kibana_auth']
template 'path/to/.htpasswd' do 
source '.htpasswd_temp.erb '
variables(
  kibana_user: kibana_configs['kiba_user']
)
end