way net concatener concatenate concatenar best string-concatenation puppet

string concatenation - net - ¿Cómo concatena cadenas en un archivo Puppet.pp?



string concat java (5)

Interpolación variable de palabra clave:

$value = "${one}${two}"

Fuente: http://docs.puppetlabs.com/puppet/4.3/reference/lang_variables.html#interpolation

Tenga en cuenta que, aunque podría funcionar sin las llaves, siempre debería usarlas.

Aquí está mi enfoque ingenuo:

# puppet/init.pp $x = ''hello '' + ''goodbye''

Esto no funciona. ¿ Cómo concatena cadenas en Puppet?


Lo siguiente funcionó para mí.

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

Lo siguiente también funciona:

$abc = "def" file { "/tmp/$abc":


Otra opción que no se menciona en otras respuestas es usar la función sprintf() Puppet , que funciona de forma idéntica a la función Ruby que se encuentra detrás. Un ejemplo:

$x = sprintf(''hello user %s'', ''CoolUser'')

Verificado para funcionar perfectamente con títeres. Como se mencionó por chutz , este enfoque también puede ayudarlo a concatenar el resultado de las funciones.


Puede usar la función join () de puppetlabs-stdlib. Estaba pensando que debería haber una función de concat de cadena allí, pero no lo veo. Sería fácil escribir uno.


Utilizo el constructo donde pongo los valores en una matriz y luego los "une". En este ejemplo, mi entrada es una matriz y después de que se hayan unido con '': 2181'', el valor resultante se coloca nuevamente en una matriz que se une con una cadena vacía como separador.

$zookeeperservers = [ ''node1.example.com'', ''node2.example.com'', ''node3.example.com'' ] $mesosZK = join([ "zk://" , join($zookeeperservers,'':2181,'') ,":2181/mesos" ],'''')

valor resultante de $ mesosZK

zk://node1.example.com:2181,node2.example.com:2181,node3.example.com:2181/mesos