2015-11-19 18 views
7

Czy można zapisać wynik komendy linuksowej w zmiennej?Jak zapisać dane wyjściowe polecenia Linuksa do zmiennej w lalce

Próbuję zapisać zaszyfrowaną wartość w zmiennej. Do zaszyfrowania używam polecenia base64. Aby zapisać go w zmiennej, używam metody generowania. Ale nie jestem w stanie przechowywać wartości.

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

base64 jest ** nie ** szyfrowanie. –

Odpowiedz

9

Jeśli chcesz wykonać dowolne polecenie na serwerze Puppet Master może korzystać z funkcji inline_template szablonu ERB wewnątrz i kodu Ruby dla wykonania polecenia powłoki:

$password = "12345" 

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

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

PS: Jeśli chcesz tylko do kodowania znaków w formacie Base64 można zaimportować moduł puppetlabs-stdlib i korzystać z niej base64 funkcję:

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

Czy można uruchomić komendę bash na hoście klienta marionetek i zapisać ją w zmiennej? – ipeacocks

+2

Tak, ale tylko poprzez niestandardowe "fakty". –

Powiązane problemy