如何在 Chef 中重用 Vagrant 参数

How to reuse Vagrant parameter in Chef

我很难理解如何将当前的 vagrant 配置传递给 chef。

例如,在 Vagrant 配置期间我有这样的配置:

config.vm.provider :aws do |aws, override|
   override.ssh.username = "ubuntu"
   ...
end

...

config.vm.provision :chef_solo do |chef|
  chef.json = {
      username: "ubuntu"
  }
  ...
end

现在如何在 chef-solo 配置中重用 ssh username? 我希望能够写出这样的东西:

config.vm.provision :chef_solo do |chef|
  chef.json = {
      username: config.ssh.username
  }
end

非常感谢任何帮助:)

这个解决方案对我来说似乎非常有效:

username = "ubuntu"

config.vm.provider :aws do |aws, override|
   override.ssh.username = "#{username}"
   ...
end

...

config.vm.provision :chef_solo do |chef|
  chef.json = {
      username: "#{username}"
  }
  ...
end

(感谢 Alvaro Miranda Aguilera 如何在 Vagrant forum 中建议这段代码)