如何在开发中使用vagrant以及如何使用共享文件夹?

时间:2014-08-06 18:08:01

标签: vagrant puppet vagrantfile puppetlabs-mysql

我(流浪汉中一个挣扎的新手)已经设置了一个流浪的环境进行开发。我被提供了流浪文件

    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?

我试图理解,但无法弄清楚如何理解流浪汉(作为开发者)并开发一些东西。任何帮助或解释都是可以理解的,我想这些可能是最常见的一点,对于任何新手来说都难以理解。

1 个答案:

答案 0 :(得分:3)

1)是的,看起来你正在为我做正确的事。如果它有效,那么它确实没有对错,你的配置看起来非常标准。 (不确定你的木偶配置......我从未使用过它)

2).box文件基本上是安装cds,专门为vagrant打包。在这种情况下,您需要下载并安装http://files.vagrantup.com/precise64.box,这本质上是一个现成的ubuntu 12.04 64位服务器。您可以找到其他预先包装的盒子here。流浪者的观点是能够从准系统操作系统开始,并使用配置文件(厨师,傀儡,bash等)构建它。

3)流浪汉中的所有东西都非常独立于其创建的VM中,我对木偶知之甚少,但我认为它的工作方式与我使用的bash配置文件的工作方式非常相似。它引导VM,然后在VM中运行配置脚本,以便您具有可重现的VM创建过程。

4)端口转发。 guest:80,host:8080表示在端口80上提供的VM(guest虚拟机)内的任何内容都可以在http://localhost:8080的主机(您的PC)上使用。

5)共享文件夹很棒。基本上,您的虚拟机可以访问主机上的文件夹,这对于问题编号6非常有帮助。做类似的事情:

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

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

6)在您的主机上。见第5号答案。 7)也许谷歌是你最好的朋友。对我来说最大的好处是我们可以将Vagrantfile检查到我们的其他应用程序代码旁边的git repo中,我们团队的任何新成员都可以通过导航到目录并运行{{1},在几分钟内让应用程序在本地运行}。在虚拟机中搞砸了什么,需要重新开始? vagrant up - > vagrant destroy。无需在主机上安装特定于应用程序的一堆软件包是非常宝贵的。