我正在尝试使用 puppet 将包含非 ascii 字符的密码填充到模板文件中。我已经将非 ascii 密码编码为 base64 并将其放置在 hiera-secrets 中。当我尝试解码模板中的密码时,它不起作用。
木偶
class abc::container (
$key_encrypt = hiera('abc::configs::key_encrypt', undef), ){
@docker_container { "${app}:${version}":
files => {
'configuration.properties' => {
destination => '/opt/configuration.properties',
mount_mode => 'rw',
owner => 'root',
group => 'root',
mode => '0755',
content => template('abc/configuration.properties.erb'), }, }, }
配置.properties.erb
<%
require 'base64'
key_encrypt = @key_encrypt key_encrypt_d = Base64.decode64(key_encrypt)
%>
master.key.2024-08-22-02-05=<%= @key_encrypt_d %>
下面是puppet执行时的错误
错误:无法从远程服务器检索目录:服务器上的错误 400:无法解析内联模板:US-ASCII 中的字节序列无效
我看到的只是模板文件中的base64编码值。我想得到真正的密码。
我看到的只是模板文件中的base64编码值。我想得到真正的密码。
您设置了一个 local 变量
key_encrypt_d
,但随后输出 instance 变量 @key_encrypt_d
,它仍然保存着 Base64 编码值。
通过
<%= key_encrypt_d %>
(不带 @
)输出局部变量,或者通过 @key_encrypt_d = ...
(带 @
)更新实例变量。
或者,您可以在
Base64.decode64
内调用 <%= ... %>
,传递实例变量:
<% require 'base64' %>
master.key.2024-08-22-02-05=<%= Base64.decode64(@key_encrypt_d) %>