AnsibleにはPuppetDBに似たコンポーネントがありますか?


7

私は(限られた)経験からPuppetを知っており、構成管理ではAnsibleへの強い傾向があることに気づきました。

一方では、Ansibleはエージェントを必要としないことを理解していますssh。これは、Ansibleがをインテリジェントに使用するためです。

一方、これらはPuppetについて気に入った機能です。

  • REST APIを介したシステム全体の構成状態と履歴(PuppetDB)へのアクセス
  • 上書きされたファイルのバックアップを保持する機能(filebuckets)
  • Hiera構成の一部を暗号化する機能(.eyaml

これらの中で、PuppetDBは私にとって最も重要で便利なようです(他のツールとの統合など)。したがって、私の質問は次のとおりです。Ansibleには、PuppetDBに似たものがありますか。たとえば、「ホストxにインストールされているパッケージは何か」と尋ねられるAPIを提供するコンポーネントですか。または「どのホストにパッケージyがインストールされていますか?」

(この質問はStackOverflowから移行されました)。

UPDATE Puppetの重大な欠点それまでの私の経験:エージェントを必要とするという事実はそれほどではありません(私が見たところ、AnsibleのPythonの使用は、Pythonインタープリターの形式で一種のエージェントを導入します;-)。そのエージェントがroot唯一かつ常に行動することを望んでいること。


好奇心が強い:Puppet(またはChef、またはCFEngine)のようなツールが、次のように実行せずに何ができるかをどのように期待しますrootか?SAがログインして手動で処理を行う必要がなくなるため、SAが実行できるすべての処理を実行できる必要があります。
ガイウス2017

@Gaius 1つにはroot、サーバークラスターへのアクセス権はないが、Ansibleを使用して大規模なWebアプリケーションを管理できる人を知っています。さらに、としてログインしないSAがありますがrootsudo代わりに使用頻度が高くなります。
Drux

彼らはまだrootとしてコマンドを実行する必要があります。実行中のエージェントがあなたのための取り引きである場合、あなたはツールを誤って適用しています
Gaius

回答:


5

直接的な答えは「いいえ」です。

Ansibleにはデータベースがありません。Ansibleはさまざまなコンピューターのさまざまなオペレーターによって実行されることが想定されており、その目的は、プレイブックで指定されているターゲットシステムが正確な状態であることを確認することです。

外部ファクトキャッシュバックエンドをAnsible にアタッチするオプションがあります。したがって、Redisをキャッシュとして設定すると、Ansibleはプレイブックの実行中に収集されたファクトをそこに入力し、後でそれらのRedisをクエリできます。しかし、Ansibleによって収集される事実があまり多くないため、それは非常に限られたソリューションです。たとえば、インストールされたパッケージに関する情報がないため、それらを外部キャッシュに入れるオプションを使用set_factして収集する必要がありますcacheable


1
THX。2番目の段落の「理由」を理解できません。PuppetはIMOも「別のコンピューターの別のオペレーターによって実行されることになっており、ターゲットシステムが正確な状態であることを確認することが目的である」と主張します(プレイブックの代わりにマニフェストについて話すだけですが、データベースを使用しています。
Drux

「中央/共有コンポーネントなし」を意味しました。したがって、Ansibleでは、ターゲットシステム以外のステートフルコンポーネントはありません。
Konstantin Suvorov 2017

そうですね。
Drux
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.