1

新しい開発環境のセットアップを自動化したい。

プロジェクトがあります。名前スキーム coreapp_c1 (customer1 の略) を使用します。このプロジェクトは小規模です。構成 (settings.py (django)) と requirements.txt が含まれています。

次の手順を使用します。

  1. virtualenv を作成する
  2. pip install -e git... #egg=coreapp_c1
  3. pip インストール -r src/coreapp-c1/requirements.txt

残念ながら、実行する必要がある他の手順がいくつかあります。

postgres-DB を作成し、init-script を挿入し、rabbitMQ キューを作成します ... 通常のユーザーでは実行できません。

ルートとして行う必要があることを行うための最もフィトニックな方法は何ですか?

4

2 に答える 2

2

最近、Python をはじめ、他の言語でも開発環境の構築を自動化することが注目されています。そのため、要件に応じてさまざまなソリューションを利用できます。

一般に、これらのソリューションにはトレードオフがあります。特定のソリューションが提供する分離が大きいほど、オーバーヘッドが大きくなります。以下は、私が試して有用であると判断したものの非独占的なリストです。このリストは分離の昇順であるため、オーバーヘッドが大きくなります。

1)生地

「ローカルまたはリモートのシェル コマンドを (通常または sudo 経由で) 実行し、ファイルをアップロード/ダウンロードするための基本的な一連の操作に加えて、実行中のユーザーに入力を促す、実行を中止するなどの補助機能を提供します。」

2)クッキーカッター

「cookiecutters (プロジェクト テンプレート) からプロジェクトを作成するコマンド ライン ユーティリティ。たとえば、Python パッケージ プロジェクト、jQuery プラグイン プロジェクト。」

3)ドッカー

「あらゆるアプリケーションを軽量コンテナとしてパック、出荷、実行するためのオープン ソース プロジェクトです。」

4)浮浪者

「軽量で再現性があり、移植可能な開発環境を作成して構成します。」

完全を期すために Vagrant を含めました。これは基本的に、仮想マシンをプログラムで作成するためのツールであるため、リストの一番下にあります。あなたが言及したように、独自の OS や API スタックなどを使用した VM のオーバーヘッドにあまり興奮していない場合は、最初の 3 つのオプションのいずれかを選択する必要があります。これらはすべて、DRY などである程度 Pythonic です。

個人的には、あなたの問題ステートメントから収集できる限られた視点に基づいて、cookiecutterを調べます。

于 2013-10-14T10:05:07.727 に答える