如何添加其他虚拟主机?

时间:2013-11-12 23:43:23

标签: vagrant vagrantfile

我创建了一个debian vm并通过puphet我刚刚创建了一个虚拟主机并指向它在我的主机主机文件中创建的本地ip。但是现在当我尝试创造另一个它不会工作。我读过其他帖子,例如:

creating virtual hosts on a vagrant box提及使用厨师。但我不明白为什么它不会正常工作?按照通常的方式,我的意思是在/ etc / apache2 / sites-available中创建一个新的vhost文件,启用它并在我的本地机器主机文件中创建ip路径。什么是厨师做的我不能手动做?

这是我的流浪档案:

Vagrant.configure("2") do |config|
  config.vm.box = "debian-wheezy72-x64-vbox43"
  config.vm.box_url = "https://puphpet.s3.amazonaws.com/debian-wheezy72-x64-vbox43.box"

  config.vm.network "private_network", ip: "192.168.56.101"

  config.vm.synced_folder "/Volumes/www", "/var/www", id: "vagrant-root", :nfs => false

  config.vm.usable_port_range = (2200..2250)
  config.vm.provider :virtualbox do |virtualbox|
    virtualbox.customize ["modifyvm", :id, "--name", "wheezyDEB"]
    virtualbox.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    virtualbox.customize ["modifyvm", :id, "--memory", "512"]
    virtualbox.customize ["setextradata", :id, "--VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
  end

  config.vm.provision :shell, :path => "shell/initial-setup.sh"
  config.vm.provision :shell, :path => "shell/update-puppet.sh"
  config.vm.provision :shell, :path => "shell/librarian-puppet-vagrant.sh"
  config.vm.provision :puppet do |puppet|
    puppet.facter = {
      "ssh_username" => "vagrant"
    }

    puppet.manifests_path = "puppet/manifests"
    puppet.options = ["--verbose", "--hiera_config /vagrant/hiera.yaml", "--parser future"]
  end

  config.ssh.username = "vagrant"

  config.ssh.shell = "bash -l"

  config.ssh.keep_alive = true
  config.ssh.forward_agent = false
  config.ssh.forward_x11 = false
  config.vagrant.host = :detect
end

1 个答案:

答案 0 :(得分:3)

我想通了,我不确定这是否是正确的做法,但它有效并且这一切都很重要。如果有人有更好或更快的方式让我知道。

这就是我所做的:

1)我原本使用puphet.com上的puphet 2)我最初使用来自puphet.com的puphet
3)我进入puhpet给我的目录,所以我进入mypath / puppet / hieradata 并打开common.yaml
4)在vhosts下:是vhost设置,例如:<

vhosts:
        VO6aT11EHJmL:
            servername: localhost
            docroot: /var/www/public
            port: '80'
            setenv:
                - 'APP_ENV dev'
            override:
                - All
        4yNJr1LpLJYA:
            servername: laravel.dev
            docroot: /var/www/vhosts/laravel-dev
            port: '80'
            setenv:
                - 'APP_ENV dev'
            override:
                - all

每个vhost都有一个唯一的标识名称,它可以是任何名称。 servername,docroot的选项看起来很简单,所以修改它们。

接下来,为了让虚拟机重新组合您的更新,请确保您的流浪者在将这些更改变为common.yaml时已停止,并在完成后将类型保存类型流入终端。一旦进入你的sites-available目录所在的目录。在我的情况下,我在debian下使用apache;同样适用于ubuntu。

/etc/apache2/sites-available

您在此处看到的文件,其名称与您在common.yaml文件中的唯一名称相匹配,但其中包含数字,例如:

#-unique_name.conf

所以在common.yaml文件中,如果您在4yNJr1LpLJYA下创建或修改了设置,则需要在此目录中查找#-4yNJr1LpLJYA.conf并匹配common.yaml文件中的设置。完成后重启服务器,就我的情况而言

sudo service apache reload

也不要忘记将虚拟主机添加到本地计算机主机文件中,并将其与puphet给您的相同ip进行匹配。例如:

192.168.56.101 my-virtual-domain

为您要添加的每个人执行此操作。