7

そこで、次のコマンドで Vagrant ボックスを作成しました。

vagrant package --base box_name_here --vagrantfile Vagrantfile --include manifests/

manifests/puppet マニフェストを含むディレクトリと、プロビジョニング プロセス中に使用されるいくつかのファイルを含むいくつかのサブディレクトリです。Puppet は Vagrantfile で次のように呼び出されます。

config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "manifests"
    puppet.manifest_file  = "web-dev.pp"
end

Vagrant が作成するパッケージ化された .box アーカイブを調べてみると、 にあるフォルダーが表示されbox_name_here.box/includes/manifestsます。ただし、vagrant up実行しようとすると次のエラーで死にます。

Puppet に指定されたマニフェスト パスが存在しません: c:/vagrant/manifests

ファイルは別の場所にありますか?

この投稿を見ました: https://github.com/mitchellh/vagrant/issues/344

しかし、答えは少し不透明です。modulepath の応答を manifests_path の問題に変換する方法がよくわかりません。

行が読み取るように vagrantfile を変更しました

puppet.manifests_path = "./manifests"

...しかし、それは問題を解決しませんでした。それでも同じエラー メッセージが表示されます。

4

1 に答える 1

8

いくつかの実験の後、信じられないほど明白な答えは次のとおりです。

puppet.manifests_path = File.expand_path("../manifests", __FILE__)
于 2012-12-29T19:47:51.220 に答える