相关疑难解决方法(0)

如何在'vagrant up'上传递参数并将其放在Vagrantfile的范围内?

我正在寻找一种方法将参数传递给Chef cookbook,如:

$ vagrant up some_parameter
Run Code Online (Sandbox Code Playgroud)

然后some_parameter在其中一个Chef cookbook中使用.

ruby command-line parameter-passing vagrant

80
推荐指数
4
解决办法
4万
查看次数

如何在VagrantFile中包含变量?

任何人都可以指导我如何在VagrantFile中包含变量?我试图从外部文件将配置注入Vagrantfile,这样我就可以将配置分发给我的同事而无需直接在Vagrantfile上硬编码配置.

我曾经想过,因为它是基于Ruby的我可以只包含一个Ruby文件,但是我得到一个错误消息:unintialized constant MyVars

我的VagrantFile简化了

# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'vagrant.rb'
include MyVars

Vagrant.configure("2") do |config|

  # Web
  config.vm.define :joe do |joe|
    joe.vm.box = "precise64_4.2.12"
    joe.vm.hostname = WEBVMNAME
    joe.vm.network :private_network, ip: "192.168.140.141"

    # Port Forwarding
    joe.vm.network :forwarded_port, guest: 22, host: 2201
    joe.vm.network :forwarded_port, guest: 80, host: 8080

    # Bootstrap Bash Script
    joe.vm.provision :shell, :path => "bootstrap.sh"
  end

end
Run Code Online (Sandbox Code Playgroud)

而vagrant.rb包含

module MyVars

    WEBVMNAME = "rex"

end
Run Code Online (Sandbox Code Playgroud)

请注意我也是Ruby的新手,所以我不确定它是否只是我错误的语法?

编辑:我正在使用的更新代码

ruby deployment vagrant

26
推荐指数
3
解决办法
2万
查看次数

将变量传递给vagrant中的shell脚本配置器

我使用的是简单的shell脚本,以提供软件作为游民设置为可见这里.

但是无法找到一种方法来将传入的命令行参数传递给vagrant并将它们发送到外部shell脚本.谷歌透露这是作为一个功能添加,但我找不到任何涵盖它的文档或示例.

provisioning parameter-passing vagrant

25
推荐指数
3
解决办法
2万
查看次数

vagrant文​​件中的Shell环境变量仅在首次传递时传递

我正在运行Vagrant 1.8.5,它使用这样的格式在配置时支持Vagrantfile中的环境变量

config.vm.provision:shell,path:"bootstrap.sh",env:{"MYSQL_DB_USERNAME"=>"django","MYSQL_DB_PASSWORD"=>"supersecretpasswordwasreplaced"}

但是,我希望这些环境变量在up没有配置时,或者当我通过SSH连接到服务器来完成工作时也可用.我能找到的显而易见的方法是

  • 把它们装进盒子里(看起来像是矫枉过正)或者
  • 在我这里重复它们,config.ssh.forward_env以便它们可供配置器和SSH使用.

有没有更好的办法?

shell environment-variables vagrant

2
推荐指数
2
解决办法
2809
查看次数