基本特性
「検証モード」(ドライランとも呼ばれる)とは、ノードが自身を変更しないという保証に準拠しているかどうかを判断する機能を指し、通常は、システムを変更する可能性のあるすべての操作に対して読み取り専用モードをサポートする内部言語のみを使用することを伴います。相互認証(相互認証)とは、クライアントがサーバーを検証し、サーバーもクライアントを検証することを指します。
エージェントは、追加のソフトウェアデーモンが必要かどうかを示します。管理ソフトウェアによっては、これらのエージェントは通常、ターゲットシステムまたは1つまたは複数の中央コントローラサーバーにデプロイされます。Agent-less = Noエージェントは赤色で表示され、一見するとマイナスのように見えるかもしれませんが、実際には、エージェントを持つことは多くの人にとって非常に有利です。エージェントのないツールが重要な変更を行っている最中にノードとの接続を失い、ノードが不安定な状態になり、その(本番環境における?)機能が損なわれる場合の影響を考えてみてください。
注:これは、ツールが移植性の高いC/C++またはインタプリタ言語で記述されているため理論的には動作するはずのプラットフォームではなく、最新バージョンのツールが実際に正常に動作したことが確認されているプラットフォームを意味します。また、プロジェクトのWebサイトでサポート対象プラットフォームとして記載されている必要があります。
簡単な説明
すべてのツールが同じ目的や機能セットを持っているわけではありません。これらのソフトウェアパッケージを区別しやすくするために、それぞれの簡単な説明を以下に示します。
- Ansible
- マルチノード展開、アドホックタスク実行、構成管理を1つのパッケージに統合します。SSH経由でノードを管理し、ノードにPython(2.6以上または3.5以上)がインストールされている必要があります。[ 110 ]モジュールはJSONと標準出力で動作し、任意の言語で記述できます。YAMLを使用して、システムの再利用可能な記述を表現します。
- Bcfg2
- 中央構成モデルとクライアント/サーバーパラダイムを用いて、多数のコンピュータの構成を管理するソフトウェア。このシステムは、クライアントの状態と中央構成仕様との整合性を確保します。詳細なレポートにより、ホスト上の管理対象外の構成を特定できます。ジェネレーターを使用すると、中央データリポジトリからコードまたはテンプレートに基づいて構成ファイルを生成できます。
- CFEngine
- 軽量エージェントシステム。クライアント/サーバーパラダイムまたはスタンドアロンを使用して、多数のコンピュータの構成を管理します。ポリシー記述と異なるクライアントの状態は、目的の状態に戻されます。構成状態は宣言言語で指定されます。[ 111 ] CFEngine のパラダイムは収束型「コンピュータ免疫学」です。[ 112 ]
- cdist
- cdistは依存関係ゼロの構成管理システムです。ターゲットホスト上でSSHが有効になっていることのみが必要で、これは通常すべてのUnix系マシンで有効になっています。また、管理ホストにのみPython 3.2がインストールされている必要があります。
- シェフ
- Chef は Erlang で書かれた構成管理ツールで、[ 113 ]純粋な Ruby DSLを使用して構成の「レシピ」を作成します。これらのレシピには、宣言された状態に設定する必要があるリソースが含まれています。Chef はクライアント/サーバーツールとして使用することも、「ソロ」モードで使用することもできます。[ 114 ]
- コンフィギュレーター
- Debianとその派生ディストリビューションが最もよくサポートされていますが、Consfiguratorは他のディストリビューションや様々なUnix系OSでも動作します。ただし、システムの特定の側面を設定するためのプロパティのサポートは少なくなります。Consfiguratorは、スキームで適用するプロパティを設定できます。これには、対象コンピュータにConsfiguratorがインストールされている必要があります。対象コンピュータにConsfiguratorをインストールしなくても動作する、より制限された言語も利用可能です。リモート構成もサポートされており、ホストはスキームコードで定義できます。
- ギックス
- Guix は、多くのものを同じツールに統合しています (ディストリビューション、パッケージマネージャ、構成管理ツール、コンテナ環境など)。システムをリモートで管理するには、対象のマシンがすでに Guix を実行している必要があります[ 115 ]。または、代わりに Digital Ocean Droplet 内に構成をデプロイすることもできます。[ 116 ]マシンは Scheme で構成されます。
- ISconf
- すべてのノードでコマンドを実行し、ファイルを複製するためのツールです。ノードは起動している必要はありません。コマンドはノードの起動時に実行されます。このシステムには中央サーバーがないため、どのノードからでもコマンドを実行でき、すべてのノードに複製されます。
- ジュジュ
- Jujuはサービスという概念に焦点を当て、マシンやサーバーという概念を抽象化し、リンクされた2つのサービスが顕著な変更を検知した際に自動的に更新されるサービス間の関係を定義します。
- ローカル構成システム(LCFG)
- LCFGは、リソース、アスペクト、プロファイルを指定するXML形式の中央記述言語を用いて構成を管理します。構成はクライアント・サーバー方式で展開されます。クライアント(コンポーネントと呼ばれる)上の適切なスクリプトが、リソースを構成ファイルに書き起こし、必要に応じてサービスを再起動します。
- オープン PC サーバー統合 ( Opsi )
- Opsiは、LinuxサーバーをベースとしたWindowsクライアント向けのデスクトップ管理ソフトウェアです。ソフトウェアの自動展開(配布)、OSの無人インストール、パッチ管理、ハードウェアおよびソフトウェアのインベントリ、ライセンス管理、ソフトウェア資産管理、構成管理のための管理タスクを提供します。[ 117 ]
- ピクト
- PIKTは、何よりもまず監視システムであり、構成管理機能も備えています。「PIKTは、高度で機能豊富なファイルプリプロセッサ、独自の省力化機能を備えた革新的なスクリプト言語、柔軟で集中管理型のプロセススケジューラ、カスタマイズ可能なファイルインストーラ、強力なコマンドライン拡張機能群、その他便利なツールで構成されています。」
- 人形
- Puppet は、システム構成を記述するためのカスタム宣言言語、クライアント/サーバー パラダイムを使用して配布される (古いバージョンではXML-RPCプロトコルを使用、最近RESTに切り替え)、および構成を実現するためのライブラリで構成されています。リソース抽象化レイヤーにより、管理者はユーザー、サービス、パッケージなどの高レベルの用語で構成を記述できます。Puppet は、サーバーの状態がその記述と一致することを保証します。バージョン 2.6.0 から、代替構成言語として純粋な Ruby DSL を使用するための Puppet の一時的なサポートがありました。ただし、この機能はバージョン 3.1 から非推奨になりました。[ 111 ] [ 114 ] [ 118 ] [ 119 ]
- Pyinfra
- Pyinfraは、Pythonで作成されたエージェントレスのサーバー構成管理ツールです。実行速度はAnsibleの最大10倍です。[ 120 ] Pyinfraは、コネクタと呼ばれるメカニズムを使用してSSH接続、Docker、Terraform、Ansibleなどを制御できるため、システム統合にも優れています。Pyinfraは、アドホックに実行することも、API経由で実行することもできます。[ 121 ]
- クアトール
- クアトール情報モデルは、望ましい状態と実際の状態の区別に基づいています。望ましい状態は、ファブリック全体の構成データベースに登録されます。このデータベースでは、再利用可能な階層型構成要素であるテンプレートから構成される、 Panと呼ばれる専用の構成言語を使用して、構成を表現および検証します。構成は管理対象ノードに伝播され、キャッシュされます。
- ラドミンド
- Radmindは、ファイルシステムレベルでホストの設定を管理します。Tripwire (およびその他の設定管理ツール)と同様に、管理対象の設定に対する外部からの変更を検出し、必要に応じて変更を元に戻すことができます。Radmindには、上位レベルの設定要素(サービス、パッケージ)の抽象化機能はありません。グラフィカルインターフェースは、OS Xでのみ利用可能です。
- レックス
- Rexは、構成管理機能とソフトウェア展開機能を統合したリモート実行システムです。管理者は、いわゆるRexfilesを介して構成指示を提供します。RexfilesはシンプルなDSLで記述されますが、任意のPerlコードを含めることも可能です。CI環境で使用される自動ビルドシステムとの連携も良好です。
- 塩
- Saltは当初、リモートサーバー管理ツールとして開発されました。利用者が増えるにつれ、ホスト構成のためのより包括的なメカニズムなど、多くの拡張機能が追加されてきました。これはSalt Statesコンポーネントによって実現された比較的新しい機能です。Saltが近年大きな注目を集めていることから、今後さらに多くの機能やプラットフォームへの対応が拡大していく可能性があります。
- スマートフロッグ
- 複数のマシンに分散されたアプリケーションをデプロイおよび構成するためのJavaベースのツールです。中央サーバーは存在せず、任意のノードに.SF構成ファイルをデプロイし、デプロイメント記述子自体に含まれる配布情報に従って、ピアノードに配布することができます。
- 宇宙遊泳
- Spacewalkは、オープンソースのLinuxおよびSolarisシステム管理サービスであり、Red Hat Network Satelliteのソースコードのアップストリームプロジェクトです。Spacewalkは、RHEL、Fedora、およびCentOS、Scientific LinuxなどのRHEL派生ディストリビューションで動作します。Fedoraに組み込むためのパッケージ化に向けた取り組みが進行中です。Spacewalkは、システムインベントリ(ハードウェアおよびソフトウェア情報、ソフトウェアのインストールと更新、カスタムソフトウェアパッケージの管理可能なグループへの収集と配布、システムのプロビジョニング、構成ファイルの管理と展開、システム監視、仮想ゲストのプロビジョニング、仮想ゲストの起動/停止/構成、およびこれらのすべてのアクションをローカルまたはLDAPユーザーとシステム権限に委任する機能)を提供します。2020年5月現在、Spacewalkはサポート終了(EOL)となっており、ユーザーはUyuniまたはForeman/Katelloに移行しています。
- スタッフ
- ソフトウェアテスト自動化フレームワーク(STAF)は、クロスプラットフォームの分散型ソフトウェアテスト環境の構築を可能にします。STAFは自動化インフラストラクチャの構築に伴う煩雑な作業を排除し、ユーザーが自動化サービスの構築に集中できるようにします。STAFフレームワークは、より高度な製品を構築するための基盤を提供し、多様なプラットフォームと言語に対応したプラグイン可能なアプローチを実現します。
- 同期ツール
- Synctoolは、理解しやすく、習得しやすく、使いやすいことを目指しています。Pythonで記述されており、SSH(パスワード不要、ホストベースまたはキーベース認証)とrsyncを利用しています。Synctoolの設定には特別なプログラミング言語は必要ありません。Synctoolには、精密な設定を可能にするドライラン機能が備わっています。
注記
- 1 2 3 4 5 6 7 8 9キーペア: SSH のように、公開鍵/秘密鍵ペアとキーフィンガープリントを使用して相互認証を行います。
- 1 2 3 4 5 6 7 8 9 Secure Shell: 暗号化にSecure Shellプロトコルを使用します。
- ↑証明書とパスワード: クライアントがサーバーを認証するために SSL X.509 証明書とフィンガープリントを使用し、サーバーがクライアントを認証するためにパスワードを使用します。クライアントは、互いの構成データへのアクセスが許可されている場合にのみ、同じパスワードを共有する必要があります。
- 1 2 3 4 5 6 SSL: 暗号化にはセキュアソケットレイヤー、トランスポートレイヤーセキュリティ (TLS) を使用します。
- ↑ Bcfg2 設定パスによって以前に変更されていないノードを含む、ノードの準拠性の非変更判定を完全にサポートします。
- ↑リクエストごとに署名されたヘッダーと事前共有キー。
- ↑ HTTPSプロキシが設定されている場合、SSLによるペイロード暗号化が行われます。
- ↑ Chef 10.14.0以降(why-runモードと呼ばれる)
- ↑ HMAC:すべてのネットワークトラフィックにHMAC署名を使用します。
- ↑証明書: 相互認証には SSL X.509 証明書を使用します。公開鍵基盤の管理には、任意の SSL 認証局を使用できます。
- ↑ --noop オプションを使用する
- ↑監査モードを使用しています。
- ↑ネットワーク信頼: rsh のようにネットワークを信頼します。
- ↑ユーザーのみの認証: ユーザーはパスワードを使用してサーバーに認証しますが、telnet のようにネットワークの信頼を使用してユーザーをサーバーに認証します。
- ↑セキュアシェル: 認証にセキュアシェルプロトコルを使用します。
- ↑ Synctool はデフォルトではドライランを実行し、'--fix' オプション付きで呼び出された場合にのみ変更を行います。
- ↑管理対象マシンの場合は「はい」、管理対象マシンの場合は「いいえ」
- ↑ Encap、RPM、およびPOSIXファイルのみをサポートします。
- 1 2 3 FreeBSD。
- ↑ Debian、Ubuntu、Gentoo、RPMベースのディストリビューション(CentOS、Mandrake、Red Hat、RHEL、SLES、SuSE)
- ↑ POSIXファイル、 Launchd、およびMacPortsのみをサポートします。
- ↑ Unix。
- ↑「Guixシステムのみをサポートしています。」
- ↑「HURDを搭載したGuixシステムでも動作します。」
- ↑「最新バージョンはFedora Core(3、5、6)上で動作します。LCFGコアの一部は、Debianなどの他のLinuxディストリビューションに移植されていますが、これらの移植版は組み込まれていません。」
- ↑「OS Xへの実験的な移植版が存在し、動作はするものの、Mac固有のコンポーネントがいくつか含まれている。しかし、これは製品版の品質ではなく、OS Xには統一されたパッケージングシステムがないため、インストール済みソフトウェアの自動管理は困難になる可能性が高い。」
- ↑「LCFGコアはSolarisに移植され、本番環境で使用されていますが、ソフトウェアは配布用にパッケージ化されておらず、サポートも十分ではありません。」
- ↑デジタルUnix; IRIX
- ↑ NetBSD。
- ↑ OpenBSD。
- 1 2複数のユーザーがFreeBSD上でエージェントを正常にビルドして実行していますが、現在公式パッケージは利用できません。
- ↑ Android。
- 1 2 3 Javaで記述されているため、適切なJVMバージョンが利用可能であれば、理論的にはこのプラットフォームで動作するはずです。ただし、このプラットフォームではテストされておらず、サポート対象外とみなされます。
- 1 2 Pythonが動作する場所ならどこでも動作しますが、異なるプラットフォーム向けのハンドラはテストされていません。
- ↑ 4.3.3+ (Power 32); 5.1+ (Power 32/64)
- ↑ FreeBSD 4.10 (x86-32); FreeBSD 6.1+ (x86-32)
- ↑ 11.00+ (PA-RISC 32、IA-64)
- ↑ (x86-32、x86-64、IA-64、PPC 64、zSeries 32/64)
- ↑ 2.6+ (Sparc 32); 10+ (x86-32、x86-64)
- ↑ 95、98、Me、NT4、2000、XP、2003、Vista (x86-32)、7 (x86-32)、7 (x86-64)。 2003、Vista (x86-64)。 2004 (IA-64)
- ↑ OS/400 5.2以降 (iSeries 32)、z/OS Unix 1.4以降
- ↑ Synctoolは、SSH、rsync、Pythonをサポートするあらゆるプラットフォームで動作します。
- ↑ SuSE"