2017-10-26 13 views
0

こんにちは私は迷惑メールを使ってボックスをプロビジョニングしようとしていますが、私はいつも/vagrant/ansible/playbook.ymlに遭遇しています。 /迷路のディレクトリを探しています。私の箱の中にsshを置くと、/ぼんやりは存在しません。私は何が起こるのか分からないが、私がしたことは、自分のローカルコピーをボックス内の特定のフォルダの場所にすべて同期させることだった。以下は、私はこの行が存在しない/浮浪者フォルダの下に見ているようだansible.playbook = "ansible/playbook.yml"でエラーを取得していVagrant synced_folder/vagrant shared_folderがありません

Vagrant.configure("2") do |config| 

    config.vm.define "ans", primary: true do |ans| 
     ans.vm.box = "ubuntu/xenial64" 
     ans.vm.network "forwarded_port", guest: 80, host: 8080 
     ans.vm.network "private_network", ip: "10.8.9.20", auto_network: true 
     ans.vm.synced_folder ".", "/var/www/" 
     ans.vm.hostname = "my_project" 
     ans.vm.provision "pre-build", type: "shell", :path => "ansible/bootstrap.sh" 
     ans.vm.provision "ansible_local" do |ansible| 
      ansible.playbook = "ansible/playbook.yml" 
     end 
    end 
end 

をしたサンプル実装です。このための回避策または修正点は何ですか?私のプレイブックはこの場所にあります/var/www/ansible/playbook.yml箱の中に

答えて

0

デフォルトでは、迷惑メールは自動的にあなたの現在のディレクトリから共有フォルダをVM上の/vagrantフォルダに追加します。あなたが追加したので

ans.vm.synced_folder ".", "/var/www/" 

共有フォルダが/var/www/vagrantから交換されている現在のフォルダは

行うあなたが本当にする必要があります(簡単にあなたのvagrantfileから行を削除していることを確認することができます)現在のフォルダ全体を/var/wwwと同期させると、/var/wwwのようなサブディレクトリにプロジェクトファイルがあるのが理想的です。

ans.vm.synced_folder "html/", "/var/www/" 

htmlフォルダの下にあるすべてのhtml/csss/jsファイルをプッシュしてください(プロジェクト名やその他の名前を自由に変更できます)。すべての迷惑メールスクリプトとプロビジョニングスクリプトをWebサーバーのフォルダに同期させる必要はありません。

+0

これは、/ vagrantと/ var/wwwを同じボックスに置くと、すべての作業ディレクトリをサブフォルダ内に移動する必要があることを意味しますか? –

+0

はありません。申し訳ありませんが、私はおそらく明確ではありません、ホストからVMまでの共有フォルダをいくつも持つことができますが、VM内の別のフォルダを指す2つの同一のホストフォルダを持つことはできません。 (+サブディレクトリ)と1つの 'config.vm.synced_folder" ./project "を使用して現在のディレクトリをすべて共有するデフォルトの' config.vm.synced_folder "、"/vagrant " 、 "/ var/www" 'プロジェクトフォルダには、Webサーバーディレクトリに必要なファイルのみが格納されます。 –

+0

私は参照してください。私はVagrantfileを変更しようとします。私はこれが私の問題を解決すると思う。私の問題を解決したらあなたの答えを受け入れます。ありがとうございました –

関連する問題