1

SSH経由で動作し、サーバーにデプロイするカスタムビルドおよびデプロイメントスクリプトがあります(MacOSを実行している場合)。bashスクリプトは、ファイルのコピー、古いファイルのバックアップ、前向きなデータベースへの正しいSQLスクリプトの適用など、多くの簡単なことを行います。ただし、リモートSQLアップグレード手順を開始するなど、いくつかの高度な機能があります。この手順を切断して、展開スクリプトを再度開始すると、SQLスクリプトが完全に適用された場合にのみ続行されます(つまり、フロー制御が発生し、bashが実行されます。そのようなものには本当に理想的ではありません)

スクリプトはすでに巨大であり、bashはそのような種類の詳細なロジックを対象としていないため、混乱しています。物事を簡単にするいくつかのツール、ライブラリをお勧めできますか。

4

3 に答える 3

3

おっしゃるとおり、構成管理ツールではなく、展開ツールが必要だと思います。簡単にするために、次のように2つを区別します。

  • デプロイメントツールは「プッシュ」ツールです。ボタンを押すと、デプロイメントを行うために必要なアクションが実行されます。これはワンステップのプロセスです(複数のアクションを持つことができますが、一度起動されます)。
  • 構成管理ツールは通常、 「プル」ツールであり、サーバーは、CMサーバーが指示したとおりに構成されているかどうかを定期的にチェックし、必要に応じて変更を適用します。サーバーを一度構成すると、その後、システムはすべてが正常であることを保証します。また、システムのクローンを簡単に作成するための優れたツールでもあります。

デプロイメントツールについては、私は個人的に、優れたPythonツールであるFabricを知っています。しかし、Rubyの世界にはCapistranoもあります。私は他に誰も知りません。

CMツールの場合、PuppetとChefが最近の人々に好まれているようです。Cfengineは古いツールであり、いくつかの問題がありました(それが変更されたかどうかはわかりません)。

于 2011-12-13T14:24:09.940 に答える
1

これが私の推奨事項です:

  • 傀儡
  • シェフ
  • cfengine

これらはすべて(ビールのように)無料で、あなたがやりたいことをすることができます。デザイン/フレームワークに合わせて、現在のbashスクリプトをモジュールに適合させる必要があります。少し手間がかかりますが、フレームワークがエラーチェック、構成の収束など、自分でコードに手動で挿入する必要のある多くのことを処理するため、長期的にはより良い傾向があります。

私も以前にこの種のことのためにOpswareを使用しましたが、それはかなりの現金を要し、あなたがやろうとしていることに対して、それほど多くの利益を提供しません。

于 2011-12-12T15:06:03.700 に答える
0

場合によっては、bashスクリプトから完全なソリューションへの移行は、多くのクラウドサービスが主張するほど簡単ではありません。

'締め切りに間に合うときに新しいことを試してはいけない'を念頭に置いて:

また、bashscriptをリファクタリングする良いタイミングかもしれません。

私は過去に、PaaSを使用して、またはdeployogi(bash)を使用してGIT / SVNフックを使用して、自動化された反復可能なデプロイメントを実行しました:https ://github.com/coderofsalvation/deployogi

私はあなたの状況を理解していますが、bash言語が「混乱」と「複雑」を意味すると言うのが公正かどうかはわかりません。すべての言語で複雑さを隠すことができますか?

時間が許せない場合、コード(どの言語でも)は非常に複雑になると思います:)

PaaSは素晴らしいです。しかし、常に必要ですか?私はそうは思わない。

于 2014-04-21T18:39:06.080 に答える