これが私の素朴なアプローチです:
# puppet/init.pp
$x = 'hello ' +
'goodbye'
これは動作しません。Puppet で文字列を連結するにはどうすればよいですか?
これが私の素朴なアプローチです:
# puppet/init.pp
$x = 'hello ' +
'goodbye'
これは動作しません。Puppet で文字列を連結するにはどうすればよいですか?
キーワード変数補間:
$value = "${one}${two}"
ソース: http://docs.puppetlabs.com/puppet/4.3/reference/lang_variables.html#interpolation
中括弧がなくても機能する場合がありますが、常に中括弧を使用する必要があることに注意してください。
他の回答で言及されていない別のオプションは、その背後にあるRuby 関数と同じように機能するPuppet のsprintf()
関数を使用することです。例:
$x = sprintf('hello user %s', 'CoolUser')
パペットで完全に動作することが確認されています。chutzが述べたように、このアプローチは関数の出力を連結するのにも役立ちます。
以下は私のために働いた。
puppet apply -e ' $y = "Hello" $z = "world" $x = "$y $z" notify { "$x": } '
notice: Hello world
notice: /Stage[main]//Notify[Hello world]/message: defined 'message' as 'Hello world'
notice: Finished catalog run in 0.04 seconds
以下も同様に機能します。
$abc = "def"
file { "/tmp/$abc":
puppetlabs-stdlib の join() 関数を使用できます。そこに文字列連結関数があるはずだと思っていましたが、表示されません。1つ書くのは簡単でしょう。