我怎样才能在 vagrant 文件中进行动态计算

How can I do computations on the fly within the vagrant file

我如何根据一些输入在 vagrant 文件中即时计算哈希值,例如我做

# 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

如果你只想运行一个bash命令并将其输出到你的Vagrantfile中的一个变量,你可以使用ruby的反引号来执行命令.

比如你的 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