2015-11-19 17 views
7

È possibile memorizzare un risultato di comando linux in variabile?Come archiviare l'output del comando linux in una variabile in puppet

Sto tentando di memorizzare un valore crittografato in una variabile. Per crittografare sto usando il comando base64. Per memorizzarlo in variabile, sto usando il metodo generate. Ma non sono in grado di memorizzare un valore.

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

base64 è ** non ** una crittografia. –

risposta

9

Se si desidera eseguire qualsiasi comando sul server master Puppet è possibile utilizzare inline_template funzione con template ERB all'interno e codice Ruby per il comando di shell eseguire:

$password = "12345" 

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

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

P.S. Se si desidera solo per codificare stringa di formato Base64 è possibile importare il modulo puppetlabs-stdlib e utilizzare base64 funzione da esso:

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

È possibile avviare qualche comando bash sull'host del client puppet e salvarlo in variabile? – ipeacocks

+2

Sì, ma solo attraverso i "fatti" personalizzati. –