JClouds を使用してクラウド上で新しい仮想マシンをインスタンス化する Puppet セットアップを行うことは可能ですが、その構成 (ソフトウェア スタック) を Puppet を介して定義および実装することはできますか?
それとも、Puppet の性質上、AWS、RackSpace、Heroku などのクラウド プロバイダーでの使用を妨げているものはありますか?
JClouds を使用してクラウド上で新しい仮想マシンをインスタンス化する Puppet セットアップを行うことは可能ですが、その構成 (ソフトウェア スタック) を Puppet を介して定義および実装することはできますか?
それとも、Puppet の性質上、AWS、RackSpace、Heroku などのクラウド プロバイダーでの使用を妨げているものはありますか?
ここには、クラウド ノードでのパペットのブートストラップとそれらの間のオーケストレーション (たとえば、データベースの IP アドレスを使用してアプリケーション サーバーを構成する) という 2 つの個別の問題が関係しています。
ブートストラップには、多くのツールが利用可能です。AWS CloudFormation はユーザーデータを使用して統合できます。CloudInit (Ubuntu、ec2-linux AMI、および多くの EL イメージのデフォルト) は、すぐに使えるパペットのブートストラップをサポートします。Puppetlabs はクラウド プロビジョナーを提供し、最後にCloudifyがあります。CloudFormation と Cloudify 以外のほとんどのツールは、ブートストラップ後にスタックを管理せず、オーケストレーションを提供しません。CloudFormation 自体は起動時のオーケストレーションしか提供しておらず、かなり不自由です。パペット自体は、オーケストレーションに関して欠けています (たとえば、Chef の優れた検索機能と比較して)
Cloudify は、Puppet 統合モジュールを介して公開される継続的なスタック管理と高度なオーケストレーションを提供します。これにより、ノード間で情報を渡し (サービス検出、資格情報の配布など)、1 つのコマンドでシステム全体をブートストラップすることができます。さらに、存在するほとんどのクラウドをサポートします。
Puppet is an excellent choice for configuring your cloud infrastructure, most cloud providers allow you to call a script on first boot (Ec2 has user-data), you can make this script insert some node type data then clone a puppet repo and apply it, if you don't want to run a puppet master service (which can be a hassle to setup and maintain), you can also use git to push updates to the configuration and even generate a new image on config changes to allow rapid node launches with you latest setup. Check out this blog
puppet + jclouds の統合を直接発表していることを私が知っている唯一のオープン ソース ツールは Apache Whirr ですが、これは主にpuppet 適用とサーバーによるものです。
現在 puppet には安らかなインターフェースがあるため、 chefの場合と同様に、jclouds でネイティブの puppet サポートを作成できるはずです。それを定義するのを手伝ってください:)
それまでの間、whirr のようなものを使用するか、指示を作成して、ノードの作成時にjclouds TemplateOptions.runScriptを介してシェル スクリプトとして提供するか、または後でsubmitScriptOnNodeコマンドを使用して提供することができます (どちらも現在 ssh を介して動作します)。