2021年更新
今日、私はこれと他の Devops タスクにAnsibleを使用しています。その過程で、Chef、Puppet、Saltstack、および Docker イメージを試してみましたが、小規模なプロジェクトで作業するソロ開発者として、Ansible のような軽量ツールが最適であることがわかりました。
元の質問 (2011 年から)
私は独立した Web 開発者として始めたばかりで、最近、かなり単純なサイトの見積もりが予想よりもかなり高かったため、クライアントを怖がらせました。基本的には、Wordpress.com や Google サイトなどのホスト ソリューションで自分たちで作成できたパンフレットウェアでした。1 つの重要な機能を除いて、Django はぴったりだと思いました。適切な Web 開発の動機になる可能性があります。
大まかな見積もりに記載したタスクを見ると、ほとんどの時間は、このクライアントの Web サイトに固有のものではないことが明らかです。このことから、新しい Django プロジェクトのセットアップとデプロイのプロセスを自動化するスクリプトが必要だと考えるようになりました。
次のように、いくつかのことを手動で行う必要があります。
新しい VPS をセットアップします (または、ほとんどの場合、既存の VPS で仮想ホストを使用します)。
DNS 設定を編集して、clientsdomain.com と test.clientsdomain.com が新しい VPS を指すようにします。
SSH キーのセットアップ
構成ファイルを編集します。
スクリプトは次のようなことを行います。
新しい VPS に必要なパッケージをいくつかインストールする
新しい VPS にデフォルトの iptables ファイアウォールをインストールする
clientdomain.com および test.clientsdomain.com の nginx/apache 構成を追加します。
VPS での本番用とテスト用、およびローカル マシンでの開発用に新しいデータベースをセットアップします。
新しい Django プロジェクトを作成し、Bitbucket に配置します。
本番、テスト、開発用に settings.py と local_settings.py をセットアップする
本番データベースとアップロードされたファイル ディレクトリのオフサイト バックアップ ルーチンをセットアップします。
一部のデフォルト アプリを有効にします: flatpages、admin
いくつかのボイラープレート テンプレート、いくつかのボイラープレート フラットページ、およびナビゲーション バーを追加します。
960.gs CSS フレームワークを追加する
jQueryを追加
検索用に djapian または Haystack (自動更新用の cron ジョブを含む) をセットアップします。
新しい Google アナリティクス プロファイルを設定します。
本番、テスト、および開発の間でデータベースを複製する可能性を含める
Pingdom モニタリングのセットアップ
私は過去にRakeとFabricを多少似たような (しかし野心的ではない) ものに使用したことがあり、Fabric はこのタスクにもかなり適していると考えていますが、それでもあなたの意見をお待ちしています. 他に調べる必要のあるツールはありますか? Puppetについては良いことを聞いたことがありますが、彼らのサイト ( Enterprise という単語が含まれています) を見るだけで、1 人で操作するにはやり過ぎかもしれないと感じます。