主な目標はすべての人形モジュールを自動的に追加することで、すべてのdev-envとprod-envを1つのコマンドで起動できるようにします。パペットマニフェストを使用してパペットモジュールをインストールするにはどうすればよいですか?人形マニフェストを介して人形モジュールをインストールできますか?
答えて
librarian-puppetを使用して、サードパーティのすべてのモジュールを同期させていただきました。モジュールの位置とバージョンの設定をサポートしています。したがって、プロダクションと開発者はまったく同じコードを実行します。 使用量は1つのライナー
librarian-puppet install
私たちは人形2回、1時間必要なモジュールを取得するための唯一の責任がある最小限のモジュールを実行するシェルスクリプトを持っている他のケースで
、その後、本格的な人形劇の流れでありますすべてのモジュールが利用可能です。
人形モジュールをインストールするための書き込みモジュールが可能だと思われます。puppet module
ツールのラッパーにすぎません。しかし、私はそのようなモジュールについてまだ聞いていませんでした。
インストールされたモジュールを変更する必要があるため、カスタマイズを行う必要があるため、このインストールメカニズムは一般的ではないと思います。そのような変更を管理するための実用的なツールは、バージョン管理システムです。たとえば、私たちのチームでは、/etc/puppetlabs/puppet
というディレクトリをgit repostitoryに置いています。 Puppet Forgeからモジュールをインストールした後、バージョンコントロールにファイルを追加し、リモートgitサーバーにプッシュします。当社の内部開発モジュールもこのリポジトリに保管されています。このように、いくつかのパペットマスター(開発環境とプロダクト環境)はこの中央リポジトリと同期され、常にすべてのモジュールの最新バージョンを持っています。
"Puppet module" type and providerはまさにそれを行います。人形の
module { 'author/mymodule':
ensure => present,
}
module { 'puppetlabs/stdlib':
ensure => '2.6.0',
}
module { 'puppetlabs/stdlib':
ensure => present,
modulepath => '/etc/puppet/modules',
}
最近のバージョンもあなたがPuppet forgeから任意の人形モジュールをインストールすることができますpuppet module
コマンドを持っている、例:
$ puppet module install rcoleman/puppet_module
Notice: Preparing to install into /home/anarcat/.puppet/modules ...
Notice: Created target directory /home/anarcat/.puppet/modules
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Notice: Installing -- do not interrupt ...
/home/anarcat/.puppet/modules
└── rcoleman-puppet_module (v0.0.3)
他の選択肢が含まを:
R10K今人形ENTREPRISE 2015.03の一部であり、それは確かにベストプラクティスと見なすことができます。
これは簡単で素晴らしいですが、新しいバージョンの人形の[問題](https://github.com/ryanycoleman/puppet_module_provider/issues/4) – vikas027
@ vikas027私は 'puppet module'コマンドを含む他のオプションを追加し、r10kをより重視しました。 – anarcat
問題のために 'rcoleman/puppet_module'を避けてください – alekwisnia
私はこれをしなかったし、ここで
exec { 'puppet-fstab':
path => '/bin:/usr/bin',
command => 'puppet module install -i /usr/share/puppet/modules/AlexCline-fstab >>/tmp/err.log',
}
もちろん、私はこれを動作させた直後に、私が望んだことを実行する"マウント "を組み込み、しかし、うまくいけば、この他の人は正しい方向に誰かを指します。 –
を動作するように見えた私の例である:
$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は、私がインストールすることwhantモジュールであるところ。 /bin
のパスは、grep
が由来するパスです。 /opt/puppetlabs/bin
は、インストール時に人形のバイナリが存在するパスです。
これは動作しますが、引用符とハイフンには注意してください! –
- 1. ベイグラント、人形nodejsモジュール:NPMモジュールのインストールでエラーを投げ
- 2. 人形マニフェストを自動生成しますか?
- 3. 人形学習VM:マニフェストとクラス(ルビー)
- 4. 人形でmysql-serverをインストールする
- 5. Node.jsモジュールは人形/迷彩を使用して再インストールされません
- 6. 人形人形を数秒待つようにする方法
- 7. 人形 - テンプレート
- 8. 人形ノードホスト名
- 9. 評価エラー人形
- 10. 迷彩人形モジュールパス
- 11. 殺人、人形、シェフの違い
- 12. 人形エージェントからgitブランチを取得できません
- 13. CentOS 6.6に特定のバージョンの人形をインストールする方法
- 14. 人形ログファイル(redhatとcentos)
- 15. 人形クライアントサーバー接続は私が人形キックを使用すると拒否されました
- 16. 人形を通してlighttpdでfastcgi modを有効にする
- 17. 人形バインドアドレスmysql変数をオーバーライドする
- 18. 人形のテンプレート、私は以下の人形の例テンプレート持つ最後のコンマ
- 19. 人形:我々は非常に基本的な方法で人形を使用してきた最近までpuppetlabs /ファイアウォール
- 20. 人形のファイルシステムをマウントしてアンマウントするには?
- 21. 寄付者がインストールした人形のバージョンを変更するには
- 22. Iron Pythonを使ってPythonモジュールをインストールした人は誰ですか?
- 23. 無人のpythonモジュールのインストール.exeファイル
- 24. がどのように人形
- 25. 人形のpythonスクリプトの実行
- 26. 人形は、rpmのミラーは、サーバー
- 27. 人形が何かを変更したいときに通知する
- 28. バゲントの人形の箱は何ですか?
- 29. 人形でカスタムdscリソースを使用するには?
- 30. 人形で環境変数を設定する
私はまだこのモジュールの目的を理解できません。図書館員はカスタムのものだけでなく、人形のモジュールもインストールしますか? gitサブモジュールを使用しているときは、それらのすべてを1つのコマンドで更新できますか?標準的な人形モジュールをインストールするためにinstall-me.shスクリプトを作成しました。追加の大騒ぎなしに、ちょうどチェックアウトと方法を実行したい。 – holms
okこれは基本的に図書館員と同じです。私はシェフに移行しましたが、あなたの答えはまだ有効です – holms
モジュールはパペットクライアントによってインストールされていないので、実際には元の質問には答えられません。だから、まずあなたがそのライブラリをインストールする必要があり、それをPuppetでインストールすることはできません!最高の解決策はPuppetクライアント自体に組み込まれたものです... – anarcat