2

debian vm を作成し、puphet を介して 1 つの仮想ホストを作成し、ホスト ホスト ファイル内に作成したローカル IP を指定しました。しかし、別のものを作成しようとすると、うまくいきません。次のような他のスレッドを読みました。

シェフの使用について言及しているvagrantボックスで仮想ホストを作成します。しかし、私が理解していないのは、なぜそれが通常の方法で機能しないのですか? 通常の方法では、 /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

各 vhost には一意の識別名が付けられ、その名前は何でもかまいません。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 に答える