web-dev-qa-db-ja.com

ChefServerを使用してAWSAutoScalingグループをデプロイする

たとえば、AWS CloudFormation(Chefサーバーを使用)を使用して、Webサーバー、ELB、およびDBで構成される自動スケーリンググループをデプロイできます。 http://aws.Amazon.com/cloudformation/aws-cloudformation-テンプレート/

ただし、最初にCFテンプレートを作成する必要がありますが、Chef ServerとKnifeのみを使用して作成することは可能ですか? CloudFormationにあまり依存したくないので、( http://www.opscode.com/ )でホストされているChefサーバーがそうすることができるようです。

オープンソースの代替手段はありますか?

ありがとう。

5
Ryan

EC2インスタンスを自動スケーリングできます。 この投稿 を確認してください。ただし、実行する前に、これを読んでください ディスカッション 。現在、シェフを使用して、Amazonリソースのec2インスタレーションとクラウドフォーメーションを構成しています。 Recetly CloudFormationには 統合されたシェフ があります。私はクラウドフォーメーションとシェフの両方を使用していますが、それは私にとってうまく機能します。

4
Anand Soni

ナイフec2プラグインを使用してec2インスタンスを作成および削除することはできますが、クラウドフォーメーションを使用してサポートできるすべてのリソース(ELB、Route 53 RecordSet、セキュリティグループなど)は作成されません。したがって、これらを手動で作成するか、監視インフラストラクチャによるアラートに応答する独自のポリシーベースのスケーリングコードを作成して、chefを使用してec2インスタンスのプロビジョニングとプロビジョニング解除を行う必要があります。

また、knifeを使用してクラウド形成スタックを作成および削除できるknifecfnプラグインもあります。

AWSに依存している場合、クラウド形成テンプレートは、シェフのデプロイを適切に調整するのに役立つと思います。それを超えて、テンプレートは「コードとしてのインフラストラクチャ」のマントラにうまく適合します。 Chefを使用すると、インフラストラクチャがコードで指定されます。コード/ CFNテンプレートに変換される可能性のあるすべてのスケーリングポリシーをソースコード管理システムから除外するのは残念です。テンプレート形式は、 Cloudsidekick などのサードパーティでも採用されているため、AWS以外の他のクラウドプロバイダーへのデプロイに関連する可能性があります。

1
Jon Russell

私が収集したことから、あなたはこれを行うことができるはずです:

chef-clientがインストールされ、組織の検証証明書がありますが、ではなくクライアント証明書があり、自動登録されるカスタムAMIを作成します。 chef-clientの最初の呼び出し、および新しいノードの登録。

このカスタムAMIを新しいAuto Scaling Launch Configで使用してから、残りの通常のAutoScaling手順に進みます。

課題は、新しく作成して登録したインスタンスをどのようにしてChef Serverに「新しいタイプのXXXXサーバーになりたい」と通知するかということだと思います。 "。 chef-clientからそれをchefサーバーに送信し、自動的に自分自身をロールなどに関連付けるフラグがあるようには見えません。

したがって、CloudFormationテンプレートを使用せずにAuto Scalingを実際に実行できるようですが、AutoScalingがChefでどのように機能するかがわかりません。

0
Mike Fiedler