2

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

在提到使用 chef的 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
4

1 回答 1

3

我想通了,我不确定这是否是正确的做法,但它有效,这才是最重要的。如果有人有更好或更快的方法,请告诉我。

这就是我所做的:

1)我最初使用了 puphet.com 的 puphet
2)我最初使用了 puphet.com 的 puphet
3)我进入了 puhpet 给我的目录,所以我进入了 mypath/puppet/hieradata 并打开了 common.yaml
4)在vhosts:是虚拟主机设置,例如:<

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

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

接下来,为了让虚拟机重新调整您的更新,请确保在将这些更改更改为 common.yaml 时停止您的 vagrant,并在您完成后将类型 vagrant 保存到终端中。一旦它进入您的站点可用目录所在的目录。在我的情况下,我在 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 我的虚拟域

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

于 2013-11-14T21:45:49.370 回答