2016-07-22 2 views
0

Wie kann ich den Hash-Wert im laufenden Betrieb innerhalb der Vagrant-Datei basierend auf einer Eingabe berechnen, z. Ich macheWie kann ich Berechnungen im laufenden Betrieb innerhalb der Vagrant-Datei durchführen

# shell 
$ echo "machine13" | sha256sum | cut -c1-12 
2372240456c2 

# vagrantfile 
Vagrant.configure(2) do |config| 
    config.vm.hostname = "machine13" 
    config.vm.network "public_network", bridge: "eth0", use_dhcp_assigned_default_route: true, :mac => "2372240456c2" 
end 
+0

ist 'machine13' in' echo "machine13" | sha256sum | cut -c1-12' dynamisch oder etwas, das Sie hardcodieren können? – aBadAssCowboy

Antwort

0

Wenn Sie nur ein Bash-Befehl ausgeführt werden soll und dessen Ausgang auf eine Variable in Ihrem Vagrantfile bekommen, könnten Sie den Rücken des rubin verwenden ticks den Befehl auszuführen.

Zum Beispiel Ihre Vagrantfile:

# Vagrantfile 
my_hostname = "machine12" 
mac_hash = `echo #{my_hostname} | sha256sum | cut -c1-12` 

Vagrant.configure(2) do |config| 
    config.vm.hostname = my_hostname 
    config.vm.network "public_network", bridge: "eth0", use_dhcp_assigned_default_route: true, :mac => mac_hash 
end 
+0

Wie kann ich machine13 auf eine Variable setzen und sie nur einmal definieren? –

+0

Bearbeitete die Antwort, um das zu zeigen. Sie würden die Variablensubstitution von Ruby wie für Strings verwenden. – aBadAssCowboy

+0

Oder fragst du, ob du diese 'machine13' dynamisch übergeben kannst, wenn du' vagrant up' in der Konsole ausführst und darauf in der Vagrantfile zugreifst? – aBadAssCowboy

Verwandte Themen