1

我(一个在 vagrant 中苦苦挣扎的新手)已经为开发设置了一个 vagrant 环境。我已经获得了流浪文件

    Vagrant.configure("2") do |config|
      config.vm.box = 'precise64'
      config.vm.box_url = 'http://files.vagrantup.com/precise64.box'
      config.vm.network :forwarded_port, guest: 80, host: 8080

      config.vm.provision :puppet do |puppet|
        puppet.module_path = "config/puppet/modules"
        puppet.manifests_path = "config/puppet/manifests"
        puppet.manifest_file = "base.pp"
      end

      config.vm.provider :virtualbox do |v|
        v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
      end
    end

config/puppet/manifests 包含以下 base.pp 文件

    Exec { 
      path => "/usr/bin:/bin:/usr/sbin:/sbin"
    }

    stage { 'first': 
      before => Stage['main']
    }

    class { 
      'system': stage => first; 
      'mysql':  stage => main;
      'apache': stage => main;
      'php':    stage=> main;
      'git':    stage=> main;
      'cake':   stage=> main;
    } 

和 config/puppet/modules 包含目录 apache、cake、git、mysql、php 和 system。

到目前为止我所做的是

    1) Installed VirtualBox
    2) Installed Vagrant
    3) Vagrant up (as specified everywhere in net)

我得到的是

    1) a virtualbox (having no GUI)
    2) SSH connection to virtaul box
    3) and a shared folder.

现在我有一些问题,以便我能很好地理解它

    1) Am i going in right direction in order to setup vagrant?
    2) What is precise64.box(just console box), can't i add ubuntu as a box and everything set up(i.e. php, apache n other modules specified in puppet modules) in that ubuntu?
    3) Where does puppet install all these modules? in Host(Windows) or in Guest(precise64)?
    4) What config.vm.network :forwarded_port, guest: 80, host: 8080 do?
    5) what does shared folder do? and where does the shared folder reside in virtual box(precise64) and what i could/should do with this shared folder?
    6) where do i install Netbeans/Eclipse in order to develop my code?
    7) Any references/blog that describe vagrant and its advantages in and out?

我试图理解但无法弄清楚如何理解 vagrant(作为开发人员)并开发一些东西。任何帮助或解释都将是可观的,我想这些可能是任何新手都难以理解的最常见的观点。

4

1 回答 1

3

1) 是的,看起来你对我做的一切都是对的。如果它有效,真的没有对错,你的配置看起来很标准。(不确定你的傀儡配置......我从来没有使用过)

2) .box 文件基本上是专门为 vagrant 打包的安装光盘。在这种情况下,您正在下载和安装http://files.vagrantup.com/precise64.boxubuntu 12.04 64 位服务器,它本质上是一个现成的准系统。您可以在此处找到其他预先包装好的盒子。vagrant 的重点是能够从准系统操作系统开始,并通过使用配置文件(chef、puppet、bash 等)构建它。

3) vagrant 中的所有内容都非常独立地包含在它创建的 VM 中,我对 puppet 了解不多,但我认为它的工作方式与我使用的 bash 配置文件的工作方式大致相同。它启动 VM,然后在 VM 中运行您的配置脚本,以便您拥有可重现的 VM 创建过程。

4)端口转发。guest: 80, host :8080 表示在端口 80 上服务的 VM(来宾)中的任何内容都将在http://localhost:8080.

5) 共享文件夹很棒。基本上,您的 VM 将可以从您的主机访问一个文件夹,这对问题 6 非常有帮助。执行以下操作:

config.vm.synced_folder "src/", "/vagrant"

将使src项目中的目录(在主机上)对挂载点的 vm 可用/vagrant。因此,您可以在主机上安装 IDE,在其中编辑文件,src它们将自动在您的 VM 中可用/vagrant。更多关于这里

6)在您的主机上。请参阅第 5 项的答案。 7) 也许 google 是您最好的朋友。对我来说最大的优势是,我们可以将 Vagrantfile 检入到我们的 git 存储库中,与我们的应用程序代码的其余部分相邻,并且我们团队的任何新成员都可以在几分钟内通过导航到目录并运行来让应用程序在本地运行vagrant up。在虚拟机中搞砸了,需要重新开始吗?vagrant destroy-> vagrant up。不必在主机上安装一堆特定于应用程序的包是非常宝贵的。

于 2014-08-06T18:26:15.903 回答