web-dev-qa-db-ja.com

Puppet VS Ansible +最高の自動リモートタスクツールは何ですか

puppetまたはansibleなどの自動化タスク用の多くのリモートツールがあります

私の目標は、Linuxマシンで次のように多くのリモートタスクを実行することです。

  1. linuxコマンドのブロックを実行します。

  2. マスターマシンからリモートLinuxマシンにファイルをコピーする

  3. リモートLinuxマシンでスクリプトを実行する

等々

4
maihabunash

自動化とリモートコマンドは、かなり異なるユースケースです。このようなツールを選択する際に考慮すべきことは、マシンの母集団全体が同じ状態に到達するのにどれだけ迅速に必要か、そしてコマンドセットの変更をどれだけ迅速に計画するかです。

PuppetとChef(およびおそらく他の構成管理)システムは次のとおりです。

  • 緩く収束。すべてが更新を確認するまでに30分かかる場合があります。時々それは大丈夫です。時々それはあまりありません。
  • アドホックコマンドをうまく処理しないでください。特定のディレクトリでgit-pullを今すぐ実行する必要がある場合、そうするにはかなりの労力が必要です。
  • プログラムでマシンタイプを決定するための堅牢な方法。これにより、「何が何を必要とするか」という問題が緩和されます。
  • 主にエージェントベース。ノードは、中央システムがスケジュールに従って更新をディスパッチするのではなく、中央システムをポーリングして更新を確認します。これは「一貫性が緩い」ことの大部分です。

Ansibleおよびその他のエージェントなしシステム:

  • 主な機能としてアドホックコマンドを許可します。実行する必要がありますapt-get update opensslすべてに?簡単!
  • より緊密な収束を許可。あなたは両方を行うことができます30分以内にそれを行うそしてまた今すべてに血まみれにそれを行う
  • 通常、在庫管理プロセスが必要です。 puppetのようなものにRAMSIZE> = 2048GBのマシンにnginxをデプロイするようにさせることができ、Ansibleなどのそのようなシステムで機能する場合このシステムにはnginxが必要であることを伝える必要があります。これは、何が必要で、どのような問題を複雑にします。

これらはすべて数千のノードを非常に簡単に処理できるため、スケーラビリティについては説明しません。 10,000のノードに入ると、状況は異なります。

Ansibleに加えてPuppet/Chefのようなシステムを使用するデプロイ済みシステムを知っています。 Puppet/Chefは、システムのベースライン構成を維持するために使用され、ansibleシステムは、リモートコマンドや、より厳密な整合性を必要とするタスク(アプリコードのデプロイなど)に使用されます。時には両方が最善です。

8
sysadmin1138