17

Linux/PHP Web サイトの舞台裏で実行される多数のバッチ プロセスがあります。それらは数と複雑さを増し始めているので、少しプロセスを加えたいと思います。

私のソース ツリーには、開発を念頭に置いて整理されていますが、展開を念頭に置いていない cpp ファイルとスクリプトがたくさんあります。すべての実行可能ファイルをコンパイルしたら、さまざまなスクリプトとバイナリをマシンのクラスターに配置する必要があります。マシンが異なれば、バッチ プロセスに必要な実行可能ファイル、スクリプト、および構成ファイルも異なります。また、すべてのマシンに対応するいくつかのツールを作成しました。現時点では、この展開プロセスは手動であり、エラーが発生しやすくなっています。

最終的には、ソース ツリーのルートで実行され、任意のマシンに必要なすべての小さなツリーを構築するスクリプトになるだけだと思います。次に、それを適切なマシンに rsync します。しかし、他の人がこの種の問題をどのように管理しているかに興味があります。何か案は?

4

6 に答える 6

3

cfengine のチュートリアルを見て、cfengine が状況に適したツールであるかどうかを確認してください。小規模な Web サイトには少し複雑すぎるかもしれませんが、将来、より多くのコンピューターとより多くの構成が必要になる場合は、ある時点で cfengine などを使用することになります。

于 2008-10-15T16:45:25.813 に答える
2

Debian パッケージ (.deb) など、ディストリビューションが使用する形式で独自のパッケージを作成します。これらは各マシンにコピーして手動でインストールするか、独自のリポジトリを設定してソースのリストに追加することができます。

パッケージに含まれるスクリプトが構成ファイルを参照するようにパッケージを設定する必要があります。構成ファイルは、各ホストで実行する必要があるスクリプトに応じて、ホストごとに異なります。

すべてを結び付けるために、作成する他の各パッケージに依存するメタ パッケージを作成できます。そうすれば、新しいサーバーをセットアップするときに、その 1 つのメタ パッケージをインストールすると、他のパッケージが依存関係として取り込まれます。

このプロセスは少し複雑に思えますが、多数のスクリプトとそれらをデプロイする多数のホストがある場合、長期的には非常に効果があります。

于 2008-10-13T22:51:31.070 に答える
1

PHP スクリプトと Apache 構成を複数の顧客に頻繁に展開する必要があります。彼らはすべて Debian Linux を実行しているので、私は自分のサーバーに Debian パッケージ リポジトリをセットアップしました。顧客はapt-get upgradeと入力するだけで最新バージョンを入手できます。

于 2008-10-13T23:13:03.990 に答える
1

パペットは、この状況で使用できる別のツールです。これは cfengine に似ています。目的のデプロイメントのモデルを作成すると、Puppet が環境をこの状態にする方法を計算します。

于 2008-10-16T13:22:12.340 に答える
0

最初に行うことは、これらすべてのスクリプトをソース管理リポジトリ (svn または git が適しています) に入れることです。これにより、これらのスクリプトへの変更を経時的に追跡できます。

Ruby に興味がある場合は、Capistranoを調べてください。クラスター内の複数のマシンにデプロイするのに適していて、セットアップもかなり簡単です。バージョン管理システムから直接ファイルを読み取ることができます。

于 2008-10-15T18:31:13.700 に答える