主な目標は、すべての puppet モジュールを自動的に追加して、すべての dev-env と prod-env を 1 つのコマンドで開始できるようにすることです。puppet マニフェストから puppet モジュールをインストールするにはどうすればよいですか?
5 に答える
これが私の例です:
$module_stdlib = 'puppetlabs-stdlib'
exec { 'puppet_module_stdlib':
command => "puppet module install ${module_stdlib}",
unless => "puppet module list | grep ${module_stdlib}",
path => ['/bin', '/opt/puppetlabs/bin']
}
$module_stdlib は、インストールしたいモジュールです。/bin
パスは が来るgrep
パスです。そして、これ/opt/puppetlabs/bin
は私のインストールにパペットバイナリが存在するパスです。
puppetモジュールをインストールするためのモジュールを書くことは可能であるようです - それは単なるpuppet module
ツールのラッパーになります。しかし、そのようなモジュールについてはまだ聞いたことがありません。
インストールされたモジュールを変更したり、いくつかのカスタマイズを行う必要があることが多いため、このインストールのメカニズムは一般的ではないと思います。このような変更を管理するための実用的なツールは、バージョン管理システムです。たとえば、私たちのチームでは、/etc/puppetlabs/puppet
ディレクトリを git リポジトリに保持しています。Puppet Forge から任意のモジュールをインストールした後、そのファイルをバージョン管理に追加し、それをリモート git サーバーにプッシュします。社内で開発したモジュールもこのリポジトリに保管されています。このようにして、複数のパペット マスター (開発環境と本番環境) がこの中央リポジトリと同期され、すべてのモジュールの最新バージョンが常に保持されます。