1

私が取り組んでいるソフトウェア プロジェクトでは、管理サーバーと数百のクライアントを使用します。その管理サーバーはポリシーを定義し、クライアントを送信します (またはクライアントがそれを受け取ります)。その構造はグループ ポリシーのようなものだと思います。私の C++ プログラムに役立つ API などはありますか?

Netconfという名前のものに出会いましたが、実行できませんでしたRPC プロトコルを使用して構成管理システムを作成することを検討しています。有用なものが見つからない場合は、C++ で簡単に実装できるかどうかわかりません。

または、Web サービスを使用してクライアントの構成ファイルを更新できると思います。

ちなみに、それを「構成マネージャー」と呼ぶかどうかはわかりません。

4

2 に答える 2

3

構成ファイルが巨大な場合を考えてみましょう。ユーザーのリストを含むファイルがあり、新しいユーザーを追加したばかりの場合、クラスター内のすべてのボックスにファイル全体をコピーする必要はありません。それが、構成管理プログラムとしてバージョン管理システムを使用しなければならなかった主な理由でした。

人気のある VCS (私は Mercurial を使用) の 1 つをセットアップするだけで十分であることを実装するには、構成をリポジトリに配置し、クライアントのボックスに複製します。構成を更新する必要がある場合は、変更を VCS にプッシュし、クライアント/ホストごとに次のようなものを実行します。

ssh -q user@host "cd $VCS_root && hg pull -u"
于 2013-05-16T19:42:18.803 に答える
0

サーバーが SSH 経由でクライアントに接続できる場合は、Ansible ( http://ansible.cc ) が機能する可能性があります。これはコマンドライン ツールですが、C++ から呼び出すことができるはずです。

基本的に、クライアントのポリシーを更新するために実行される Playbook を作成します。クライアントの数が異なり、それらのポリシーが異なる場合、その情報を動的インベントリーの「スクリプト」 ( http://ansible.cc/docs/api.html#external-inventory-scripts ) に配置できます。

このアプローチを使用して、Java Web アプリから ansible Playbook を呼び出し、同じ Web アプリ (RESTful Web サービス) から Playbook の実行中に ansible GET インベントリ データを呼び出します。

于 2013-05-22T21:32:05.980 に答える