使用刀具自定义模板时出错

时间:2014-06-18 18:10:38

标签: chef knife

我正在尝试使用刀具自定义模板。整个目的是使用scp从已经存在chef-client软件包的节点安装chef-client,而不是从互联网上下载。

我的自定义模板如下所示:

bash -c '

<%= "export https_proxy=\"#{knife_config[:bootstrap_proxy]}\"" if knife_config[:bootstrap_proxy] -%>
if [ ! -f /usr/bin/chef-client ]; then
  scp -r -i /root/auth_key username@<ip-where-package-is-present>:chef-11.4.0-1.el6.x86_64.rpm /tmp
  rpm -Uvh /tmp/chef-11.4.0-1.el6.x86_64.rpm
fi

mkdir -p /etc/chef

cat > /etc/chef/validation.pem <<'EOP'
<%= validation_key %>
EOP
chmod 0600 /etc/chef/validation.pem

<% if encrypted_data_bag_secret -%>
cat > /etc/chef/encrypted_data_bag_secret <<'EOP'
<%= encrypted_data_bag_secret %>
EOP
chmod 0600 /etc/chef/encrypted_data_bag_secret
<% end -%>

<%# Generate OHai Hints -%>
<% unless @chef_config[:knife][:hints].nil? || @chef_config[:knife][:hints].empty? -%>
mkdir -p /etc/chef/ohai/hints

<% @chef_config[:knife][:hints].each do |name, hash| -%>
cat > /etc/chef/ohai/hints/<%= name %>.json <<'EOP'
<%= hash.to_json %>
EOP
<% end -%>
<% end -%>

cat > /etc/chef/client.rb <<'EOP'
<%= config_content %>
EOP

cat > /etc/chef/first-boot.json <<'EOP'
<%= first_boot.to_json %>
EOP

<%= start_chef %>'

但是在运行以下bootstap命令时

knife bootstrap ip-target --sudo -x user -i key --template-file /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef11.4.0/lib/chef/knife /bootstrap/test_rhel.erb

我收到了以下错误 错误:TypeError:无法将nil转换为String。

请让我知道我错过了什么。

0 个答案:

没有答案