如何在Puppet中将Linux命令输出存储到变量中

7

能否将linux命令的结果存储在变量中?

我正在尝试将加密后的值存储在一个变量中。我使用base64命令进行加密。为了将它存储在变量中,我使用generate方法。但是我无法存储该值。

$secretvalue    = generate("/bin/bash","-c","/usr/bin/echo ${password} | /usr/bin/base64")

8
Base64不是加密。 - Jonas Schäfer
1个回答

11

如果你想在Puppet主服务器上执行任何命令,你可以使用inline_template函数,并在其中使用ERB模板和Ruby代码来执行shell命令:

$password = "12345"

$secretvalue = inline_template("<%= `/bin/echo ${password} | /usr/bin/base64` %>")

notify { "STDOUT: ${secretvalue}": }

如果您只想将字符串编码为Base64格式,可以导入puppetlabs-stdlib模块并使用其中的base64函数:

$secretvalue = base64('encode', $password)

在Puppet客户端主机上执行一些Bash命令并将其保存到变量中,这是否可能? - ipeacocks
3
可以,但只能通过您定制的“事实”来实现。 - Maxim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接