ブログに戻る

VPSでGitを使用した自動デプロイを設定する方法

VPSでGitを使用した自動デプロイを設定する方法

Gitは、ソフトウェア開発の分野で最も人気のあるバージョン管理システムです。オープンソースであり、2005年以降、Linus Torvalds(有名なLinuxの作成者)によって活発にメンテナンスされています。今日、驚くほど多くのソフトウェアプロジェクト(商用プロジェクトを含む)がバージョン管理にGitを使用しています。

Gitは分散型アーキテクチャに従っており、DVCS(分散型バージョン管理システム)の完璧な例となっています。Gitを使用すると、ローカルリポジトリとリモートリポジトリの両方を同時に管理できます。このガイドでは、VPSを使用してGitプロジェクトの自動デプロイを設定する方法を説明します.

前提条件

このガイドでは、1つのローカルリポジトリと、VPS上のリモートリポジトリを使用します。ローカルリポジトリは変更をリモートリポジトリにプッシュします。リモートリポジトリから、変更を beta または  live ブランチにプッシュできます。これを実現するには、まずいくつかの前提条件を満たす必要があります。

VPSへの安全な接続を確立するために、SSHを使用します。幸いなことに、Gitはリモートリポジトリに接続するためのプロトコルとしてもSSHをサポートしています。このガイドでは、Ubuntuでリモートサーバーに接続するためのSSHの設定.

VPSの設定

リモートサーバーでは、次の構成を行います。

  • 本番ディレクトリ: /var/www/dummy-domain.com
  • サーバーリポジトリ: /var/repo/site.git

ローカルマシンから、GitはアップデートをVPSリポジトリにプッシュします。VPSリポジトリから、Gitが本番ディレクトリに自動的にプッシュするために使用するスクリプトを設定します。また、 beta リリースのためのリポジトリを設定することも可能です。

  • リポジトリの作成

VPSに接続し、リポジトリの場所を作成します。

Deployment with Git screenshot 1

次に、Gitリポジトリを初期化します。

Deployment with Git screenshot 2

ここで、フラグ --bare は、ソースファイルが存在せず、バージョン管理コンポーネントのみが存在することを表します。

  • フック

次に、リポジトリのフックを設定します。すべてのGitリポジトリには、hooks という名前のフォルダが含まれています。これには、フックやさまざまなカスタムアクションのテンプレートとなるサンプルファイルが含まれています。

Gitの公式ドキュメントによると、フックには3つのタイプがあります。

  • pre-receive: サーバーがプッシュリクエストを受信するとすぐに実行されます。
  • post-receive: プッシュリクエストが完了したときに実行されます。
  • update: pre-receiveに似ています。ただし、ブランチごとに1回実行されます。

リポジトリの場所から、 ls コマンドを実行します。

Deployment with Git code screenshot 3

現在のディレクトリを hooks:

Deployment with Git code screenshot 4

次に、 post-receive スクリプトを作成します。

スクリプト内に次のコードを入力します。ディレクトリの場所は適宜変更してください。

Deployment with Git code screenshot 6

ファイルを保存してエディタを閉じます。ファイルを実行可能ファイルとして設定します。

Deployment with Git code screenshot 7

これで、プッシュが完了するたびに、Gitは post-receive スクリプトを参照し、それに応じてファイルを配置します。

ローカルマシンの設定

リモートマシンの準備が整い、Gitプロジェクトのアップデートを受け入れることができるようになりました。次に、VPSをリモートGitサーバーとして使用するようにローカルリポジトリを設定します。

サンプルのGitプロジェクトディレクトリを作成しましょう。

Configuring the Local Machine

Deployment with Git code screenshot 8

sample Git project directory:

次に、リポジトリを初期化します。

Deployment with Git code screenshot 9

リポジトリのリモートパスを宣言する必要があります。ここでは、リモートの場所を live ブランチとして参照します。次に、以下のコマンドを実行します。

sudo git remote

テストしてみましょう。プロジェクトディレクトリにシェルスクリプトを追加しました。

project directory

次に、ファイルをプロジェクトに追加してコミットを実行します。

Deployment with Git code screenshot 10

次のコマンドで、プロジェクトを liveサーバーにプッシュします:

Deployment with Git code screenshot 11

GitはSSHを使用してVPSに接続します。SSH接続がパスワードを使用するように設定されている場合、Gitは認証パスワードを要求します。

ベータリポジトリ

プロジェクトを一度にデプロイしない場合はどうすればよいでしょうか? おそらく、ベータディレクトリ内でのさらなるテストが必要になるかもしれません。これまでに説明した方法を使用して、VPSに別のブランチを作成できます。これは ベータブランチと呼ばれます。

  • VPSでのベータブランチの設定

まず、VPS用のディレクトリを作成する必要があります。VPSに接続し、 /var/www:

次に、 ベータブランチとして機能するGitリポジトリが必要です:

リポジトリを初期化します:

sudo git init

以前と同様に、 post-receiveスクリプトを実装します:

sudo nano

その後、次のコードを入力します:

GNU nano

ファイルを保存してエディタを閉じます。 post-receiveを実行可能ファイルとしてマークします:

sudo chmod
  • ローカルマシンへのベータリポジトリの追加

これで、ローカルリポジトリに ベータリポジトリを追加する準備が整いました。ローカルのプロジェクトディレクトリ内から、次のGitコマンドを実行します:

これで完了です!ローカルリポジトリにベータリモートリポジトリが設定されました。変更をプッシュしてみましょう:

sudo git add
  • VPSでベータから本番(Live)へ移行する

すべての変更が ベータリポジトリに蓄積されたとします。変更を liveリポジトリにプッシュするにはどうすればよいでしょうか?非常に簡単です。VPS上の ベータリポジトリ内で、ローカルの liveリポジトリを追加します。その後、単に ベータリリースを liveリポジトリにプッシュします。

VPSに接続し、次のコマンドを実行します:

その後、 ベータリリースを liveにプッシュできます::

sudo git push live master

最後に

このガイドでは、GitプロジェクトのリモートリポジトリとしてVPSを設定し、使用する方法を説明しました。VPSは、複雑なプロセスなしで最新のコードやファイルを自動的にデプロイできます。また、複数の開発チーム間のコラボレーションの中心としても機能します。

Gitを使用すると、自動デプロイのためのシンプルな仕組みを構築できます。ただし、適切なプロジェクト管理のためには、GitLabなどの使用をお勧めします。次のガイドでは、VPSへのGitLabのインストールとデプロイ方法を紹介しています(複数のプロジェクトを管理する場合)。また、Ubuntu 20.04でGitLab継続的インテグレーション(CI)パイプラインをセットアップする方法.

ハッピーコンピューティング!

author

Hark Labs

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。