この記事では、gitフックを使用してgitでサイトのグループ開発環境を作成する方法を示します。 この記事は経験豊富なシステム管理者向けに設計されており、アルゴリズムのみを説明します。
このトピックについてはすでに多くのことが議論されており、gitリポジトリでブランチを作成/削除するときにサイトを自動的に作成または削除する方法を追加します。 このような機会は、たとえば、さまざまなプログラマがサイトのさまざまな部分で作業し、さまざまなプラットフォーム(ブランチ)が必要な場合に役立ちます。 メインの開発とテストの後、メインブランチでマージが実行され、ブランチとテストサイトが削除またはアーカイブされます。
仕組み:デフォルトでは、メインサイトにアクセスできるマスターブランチが作成されます。 必要に応じて、プログラマはブランチ名を作成します。ブランチは、branchname.projectname.domain.ruで自動的に使用可能になります。 行われた変更はテストされ、メインブランチ(マスターまたはその他)にマージされます。 また、ブランチを削除すると、同じ名前のサイトが自動的に削除されます。
Gitセットアップ
gitリポジトリを作成し、factory.domain.ru / git /
projectnameでその可用性を構成し、開発サーバーが動作するIPのパスワードなしで承認を許可します。 gitサーバーの構成は繰り返し説明されているため、この項目の詳細はスキップします。
gitフックを作成する
ファイル/ srv / git / projectname / hooks / post-updateを作成します(このスクリプトは、リポジトリに変更が加えられたときにサイトのコードを自動的に更新します。PROJECT変数には、プロジェクトの名前を割り当て、GIT_URLにはgitリポジトリへのリンクを割り当てます):
ファイル/ srv / git / projectname / hooks / updateを作成します(このスクリプトは、新しいブランチを作成/削除するときにサイトを自動的に作成/削除します。プロジェクトの名前をPROJECT変数に割り当てます):
branch.projectname.domain.ruドメインをサポートするためにnginxとapacheを構成します
vhost-configを作成し、メインのnginx構成に接続します。
server { listen 80;
残っているのは、Apacheの仮想ホスト設定だけです。
<VirtualHost *>
以上です! このアルゴリズムは、たとえば、Redmineに固定して、新しいプロジェクトを作成するときにリポジトリを自動的に作成したり、アクセス権を管理したりできます。 アクセス権の差別化を備えたプラグインを作成することをお勧めします。これにより、実稼働環境への展開またはロールバックが可能になります(Capistranoの使用を含む)。
100人以上のスタッフを抱える大規模な広告代理店にも同様の実装を使用しており、自動化が人的要因によるミスを大幅に削減し、最も重要なこととして、新しい緊急プロジェクトを作成したり、アクセスを登録するために夜間に管理者を起こす必要がないため、彼らは本当に気に入っています。
このトピックに関するあなたが最も興味を持っている質問をコメントに書いてください-私は間違いなく新しい記事で説明します!