Puppet構成にpuppetモジュールを自動的にインストールまたは含めることは可能ですか? puppet module install
を実行する前に、手動でpuppet apply
を実行する必要があります。
モジュールをダウンロードして、Vagrantfile
の上のディレクトリに保存しています。ここで、config.vm.provision :puppet, :module_path => "modules"
を使用してモジュールを検索するパスを指定し、それらをパペットマニフェストに含めています。
ちなみに、「バニラ」パペットでは不可能ですが、 librarian-puppet では可能です:
Librarian-puppetは、パペットインフラストラクチャのバンドラーです。 librarian-puppetを使用して、インフラストラクチャが依存するパペットモジュールを管理できます。これは、プロジェクトの依存関係を解決、フェッチ、インストール、および分離するツールであるバンドラーを作成するためのフレームワークであるLibrarianに基づいています。
Librarian-puppetは、Puppetfileに基づいてmodules /ディレクトリを管理します。 Puppetfileは、必要なモジュールと、バージョン、タグ、またはブランチの信頼できるソースになります。
Librarian-puppetを使用した後は、modulesディレクトリの内容を変更しないでください。個々のモジュールのリポジトリを更新し、新しいリリースとPuppetfileに追加されたバージョンでタグ付けする必要があります。
今のところ、Vagrant
には vagrant-librarian-puppet モジュールがあります。
インストール:
vagrant plugin install vagrant-librarian-puppet
Readmeから:
Vagrantは、プロビジョニング手順の前にLibrarian-Puppetを自動的に実行するため、通常どおりにPuppetfileを設定するだけです。
Librarian_puppet.puppetfile_dir構成キーを使用して、librarian-puppetを実行するサブディレクトリを指定できます。 :puppetプロビジョナーでモジュールパスを明示的に設定する必要があり、vagrantコマンドを実行する前にこのパスが存在している必要があることに注意してください。