0

サイズがそれぞれ約 150Kb の一連のバイナリ アセット (swf ファイル) があります。自宅のコンピューターでローカルに開発しており、レビューのために定期的に展開したいと考えています。私の現在の戦略は次のとおりです。

  1. .swf を hg (mercurial) リポジトリでもある転送ディレクトリにコピーします。
  2. hg pushスライスホスト VPN への変更
  3. ssh私のスライスホスト VPN に
    • cd私の転送ディレクトリにhg up
    • su www変更されcpたファイルは、表示用にパブリック フォルダーに入れられます。

プロセスを自動化したい。最良のシナリオは、次のようなものです。

  1. .swf を「クイック デプロイ」ディレクトリにコピーします。
  2. 単一のローカル スクリプトを実行して、上記のすべてを実行します。

私は、に興味を持っています:

  • su wwwパブリック Web ディレクトリにファイルを転送する必要があるため、パスワードをどこに配置するかについてのアドバイス。
  • ローカルマシンとサーバー間の責任の分割がどのように処理されるか。

これらのタイプの変更の改訂履歴は本当に必要ないので、rsync を使用することは hg よりも優れたツールだと思います。これは、python スクリプト、シェル スクリプトとして記述できますが、ベスト プラクティスと見なされます。

最終的には、これを、ささやかな展開のニーズを処理できるシステムに組み込みたいと考えています。おそらく、このような状況や他のタイプの状況を処理するオープンソースの展開システムがあるでしょうか? 私はおそらくこの現在のニーズに合わせて独自にロールバックしますが、長期的には比較的柔軟なものが必要です.

注:私のホーム開発用コンピューターは OS X で、ターゲット サーバーは最近の Ubuntu です。私はPythonベースのソリューションを好みますが、これがシェルから処理されるのが最適な場合は、そのようにまとめても問題ありません。

4

2 に答える 2

1

Pythonにまったく慣れていない場合は、自動展開スクリプトにFabricをお勧めします。

グループ権限またはwwwとしてのSSH(キーベースの認証を使用)に加えて、権限の問題に対する3番目の解決策は、ユーザーを/ etc / sudoersに追加し、sudoを使用することです(ユーザーが使用する正確なコマンドを指定できます) sudoの使用が許可されているため、セキュリティへの影響を最小限に抑えることができます)。

于 2010-01-18T17:30:05.980 に答える
1

回避するsu wwwには、2 つの簡単な選択肢があります。

  • Webサーバーが提供できるパスで、フォルダーを書き込み可能にし、wwwのグループが読み取り可能にすると、ローカルマシンのどこかからそのフォルダーにrsyncできます。

  • 公開 ssh キーを www のauthorized_keys に入れ、rsync を www ユーザーに送信します (一部のセットアップではセキュリティが少し低下しますが、それほどではなく、通常はより便利です)。

あなたまたはそのパスワードを何らかのファイルに入れることで回避su wwwすることは、はるかに安全性が低いように思えます。

呼び出すスクリプト"rsync -avz --partial /some/path www@server:some/other/path"は、python ですばやく記述できる必要があります (ただし、python は苦手です)。

于 2010-01-18T09:41:33.177 に答える