如何使用 chef 为 nginx 创建 .htpasswd 文件
How to create .htpasswd file for nginx using chef
我是 Chef 的新手,我正在尝试生成一个 .htpasswd 文件来存储用户哈希,我经历了一些 links
但这没有帮助。
我需要 ngnix 来保护 Kibana,我想为使用 openssl 的用户生成密码。我创建了一个模板文件作为 .htpasswd_temp.erb
它看起来像这样:
<% @kibana_user.each do |user| %>
<%= user %>:
<% end %>
我的食谱是:
kibana_configs = node['kibana']['kibana_auth']
template 'path/to/.htpasswd' do
source '.htpasswd_temp.erb '
variables(
kibana_user: kibana_configs['kiba_user']
)
end
我创建了一个角色文件,其中定义了所有默认属性(包括 kiba_user)。
上面的代码将用户添加到 .htpasswd 文件,但我不知道如何使用 openssl 生成密码。 Openssl 命令使用执行资源可以正常工作,但执行资源在模板资源内部不起作用,因此不会反映在 .htpasswd file.I 中,我真的很困惑。非常感谢您的帮助^^
以下食谱片段可能对您有用...
它假定您熟悉 encrypted data bag 并且您已将您的凭据存储在名为 creds
的数据包中,其中包含名为 nginx
的加密项,其中包含 username
和 password
键。
htpassed_file = '/root/.htpasswd'
chef_gem 'htauth'
ruby_block 'create .htpasswd' do
block do
require 'htauth'
creds = data_bag_item('creds', 'nginx')
HTAuth::PasswdFile.open(htpassed_file, HTAuth::File::CREATE) do |pf|
pf.add(creds['username'], creds['password'])
end
FileUtils.chmod 0o600, htpassed_file
end
end
您也可以使用配方 https://github.com/redguide/htpasswd 结合数据包来加密您的密码(以及用户名)。
htpasswd "/etc/nginx/htpassword" do
user "foo"
password "bar"
end
我是 Chef 的新手,我正在尝试生成一个 .htpasswd 文件来存储用户哈希,我经历了一些 links 但这没有帮助。 我需要 ngnix 来保护 Kibana,我想为使用 openssl 的用户生成密码。我创建了一个模板文件作为 .htpasswd_temp.erb 它看起来像这样:
<% @kibana_user.each do |user| %>
<%= user %>:
<% end %>
我的食谱是:
kibana_configs = node['kibana']['kibana_auth']
template 'path/to/.htpasswd' do
source '.htpasswd_temp.erb '
variables(
kibana_user: kibana_configs['kiba_user']
)
end
我创建了一个角色文件,其中定义了所有默认属性(包括 kiba_user)。 上面的代码将用户添加到 .htpasswd 文件,但我不知道如何使用 openssl 生成密码。 Openssl 命令使用执行资源可以正常工作,但执行资源在模板资源内部不起作用,因此不会反映在 .htpasswd file.I 中,我真的很困惑。非常感谢您的帮助^^
以下食谱片段可能对您有用...
它假定您熟悉 encrypted data bag 并且您已将您的凭据存储在名为 creds
的数据包中,其中包含名为 nginx
的加密项,其中包含 username
和 password
键。
htpassed_file = '/root/.htpasswd'
chef_gem 'htauth'
ruby_block 'create .htpasswd' do
block do
require 'htauth'
creds = data_bag_item('creds', 'nginx')
HTAuth::PasswdFile.open(htpassed_file, HTAuth::File::CREATE) do |pf|
pf.add(creds['username'], creds['password'])
end
FileUtils.chmod 0o600, htpassed_file
end
end
您也可以使用配方 https://github.com/redguide/htpasswd 结合数据包来加密您的密码(以及用户名)。
htpasswd "/etc/nginx/htpassword" do
user "foo"
password "bar"
end