Microsoft AzureへのGitLabインストール

AzureはMicrosoftのビジネス・クラウドであり、GitLabはAzure Marketplaceで提供されている設定済みのものです。 MicrosoftとAzureがUbuntuやRed Hat Enterprise Linux、そしてもちろんGitLabのようなオープンソース・ソフトウェアを受け入れていると聞いても驚かないでしょう。 つまり、設定済みのGitLab VMをスピンアップして、あなただけのGitLabを30分程度で立ち上げることができるのです。 さあ、始めましょう。

利用を開始

まず、Azureのアカウントが必要です。 これには3つの方法があります:

  • あなたの会社(またはあなた)がすでにアカウントを持っているなら、準備は万端です!
  • また、Azureアカウントを無料で開設することもできます。_執筆時点_では、30日間Azureサービスで使える200ドルのクレジットがもらえます。 このクレジットを使って有料のAzureサービスを試すことができ、マイクロソフトのクラウドを無料で探索することができます。 最初の30日間が過ぎても、Pay-As-You-GoのAzureサブスクリプションで有料サービスに移行することを決定しない限り、お金を支払う必要はありません。 これはAzureとクラウドコンピューティングを試すのに最適な方法で、包括的なFAQで詳細を読むことができます。
  • MSDN サブスクリプションをお持ちの方は、Azure サブスクライバー特典を有効にすることができます。 MSDN サブスクリプションをお持ちの方は、毎月定期的に Azure クレジットを受け取ることができますので、そのクレジットを使って今すぐ GitLab を試してみてはいかがでしょうか。

Azureとの連携

Azureにログインすると、まずダッシュボードが表示されます:

Azure Dashboard

ダッシュボードでは、Azureリソースの概要を簡単に確認することができ、ここからVMの構築、SQLデータベースの作成、Webサイトの作成など、さまざまなクラウドタスクを実行できます。

新規VMの作成

Azure Marketplaceは、GitLabのようなソフトウェアベンダーがクラウド向けに最適化したアプリケーションやサービスを、設定済みのソリューションとしてAzure Marketplace上で提供するオンラインストアです。 このチュートリアルではGitLab Community Editionをインストールしますが、GitLab Enterprise Editionも同じ手順でインストールできます。

新しいGitLab VMを作成するには、+ Newアイコンをクリックし、検索ボックスに “GitLab “と入力し、検索結果の“GitLab Community Edition “をクリックします:

Azure - New - Search for 'GitLab'

新しい “blade “ウィンドウがポップアウトし、MIT Expat Licenseの下で自由に利用できる“GitLab Community Edition “の詳細を読むことができます:

Azure - New - Select 'GitLab Community Edition'

作成」をクリックすると、「仮想マシンの作成」ブレードが表示されます:

Azure - Create Virtual Machine - Basics

基本

最初に設定する必要があるのは、基盤となる仮想マシンの基本設定です:

  1. VM のName を入力 - 例:“GitLab-CE”
  2. VM disk type -HDD (低速、低コスト)_またはSSD _(高速、高コスト)のいずれかを選択します。
  3. User name を入力してください。gitlab-admin
  4. Authentication type、SSH公開キーまたはパスワードのいずれかを選択します:

    注:どの認証タイプを使用するかわからない場合は、「パスワード」を選択してください。

    1. SSH公開キーを選択した場合、SSH public key を入力してください_(SSH公開_キーの設定方法については、SSHのドキュメントをお読みください)
    2. Passwordを選択した場合 - 使用するパスワードを入力します_(これはこのチュートリアルの後半でVMにSSH接続するために使用するパスワードなので、強力なパスワード/パスフレーズであることを確認してください)_。
  5. Azure アカウントに適切なSubscription ティアを選択します。
  6. 既存のResource Group を選択するか、新しいものを作成します -“GitLab-CE-Azure”など。

    注:“リソースグループ “は、管理を容易にするために関連するリソースをグループ化する方法です。 私たちは “GitLab-CE-Azure “を選択しましたが、リソースグループはVMと同じ名前にすることができます。

  7. Location を選択してください。よくわからない場合は、デフォルトの場所を選択してください。

以下は私たちが使用した設定です:

Azure - Create Virtual Machine - Basics Completed

入力した設定を確認し、準備ができたら「OK」をクリックしてください。

サイズ

次に、VMのサイズを選択する必要があります。CPUコアの数、RAMの量、ストレージのサイズ(およびその速度)などの機能を選択します。

注:他のクラウドベンダーと同様に、Azureはリソース/使用量価格モデルをオペレーションしています。 つまり、VMが消費するリソースが多ければ多いほど、そのVMの実行コストは高くなりますので、慎重に選択してください。 Azureでは、選択の目安として、各VMサイズの下に_推定_月額コストを表示しています。

デフォルトのサイズである最も安価な“DS1_V2 Standard “VMは、テストや評価を目的とした小規模なGitLab環境を動かすための最低限のシステム要件を満たしています:

Azure - Create Virtual Machine - Size

注意:VMがアクティブ(「割り当て済み」と呼ばれる)である間は、最終的に請求される「計算料金」が発生することに注意してください。 そのため、無料トライアルクレジットを使用している場合でも、お金を節約するためにAzureVMを適切にシャットダウンする方法を学びたいと思うでしょう。

選択したサイズをクリックし、次のステップに進む準備ができたら「選択」をクリックします。

設定

次のブレードでは、Storage、Network、Extensionの設定を求められます。 GitLabをテストドライブするには十分なのでデフォルトの設定にしましたが、自分の要件にもっとも合う設定を選んでください:

Azure - Create Virtual Machine - Settings

設定をレビューし、最後のステップに進む準備ができたら「OK」をクリックします。

購入

Purchaseページが最後のステップで、ここで新しいVMの1時間あたりの価格が表示されます。GitLab Community Edition “マーケットプレイスソリューションは無料で1時間あたり0ドルなので、VM自体(例えば “Standard DS1 v2”)に対してのみ請求されます:

Azure - Create Virtual Machine - Purchase

注:このステージでは、これまでのすべてのステップで行った設定のレビュアーや変更が可能です。

利用規約をお読みになり、同意されましたら、「購入する」をクリックしてください。

デプロイ

この時点で、Azureは新しいVMのデプロイを開始します。 デプロイプロセスの完了には数分かかり、進捗は“Deployment “ブレードに表示されます:

Azure - Create Virtual Machine - Deployment

デプロイプロセスが完了すると、新しい VM と関連リソースが Azure ダッシュボードに表示されます(ページを更新する必要があるかもしれません):

Azure - Dashboard - All resources

新しい VM は、Azure Portal のサイドバー・ナビゲーション・メニューにあるAll resources またはVirtual machines のアイコンをクリックすることでもアクセスできます。

ドメイン名の設定

VMは公開IPアドレス(デフォルトでは静的)を持ちますが、AzureではVMにフレンドリーなDNS名を割り当てることができます。

ダッシュボードから“GitLab-CE “タイルをクリックし、新しいVMの管理ブレードを開きます。 VMが使用する公開IPアドレスは、”Essentials “セクションに表示されます:

Azure - VM - Management - Public IP Address

公開IPアドレスをクリックして、“Public IP address - Configuration “ブレードを開き、“Configuration”(”Settings “の下)をクリックします。DNS name label フィールドにインスタンスのフレンドリーなDNS名を入力します:

Azure - VM - Domain Name

上のスクリーンショットでは、DNS name labelgitlab-ce-testに設定しています。これで、私たちのVMはgitlab-ce-test.centralus.cloudapp.azure.comでアクセスできるようになります_(もちろん、あなた自身のVMの完全なドメイン名は異なるでしょう)_。

変更を有効にするには「保存」をクリックします。

注:独自のドメイン名を使用したい場合は、A ドメインレジストラでAzure VMの公開IP Aアドレスを指すDNSA レコードを A追加する必要がありますA 。 これを行う場合は、VMが_静的な_パブリックIPアドレスを使用するように構成されていることを確認する必要があります(つまり AA _動的な_ものではありません)、または AAzureがVMに新しいパブリックIPアドレスを再割り当てするたびにDNSレコードをA 再設定する必要が Aあります。 詳細については、パブリックIPアドレスをお読みください。

ポートを開けましょう

このステージでは、VMが起動し、完全に動作するようになっているはずです。 しかし、VM上のどのサービス(GitLabなど)も、それらのサービスへのアクセスを可能にするために必要なポートを開放するまでは、インターネット経由で公開されることはありません。

ポートの開放は、VMが割り当てられている“Network security group” (NSG) にセキュリティ_ルールを_追加することで行われます。 上記のプロセスに従った場合、Azureは自動的にGitLab-CE-nsg というNSGを作成し、GitLab-CE VMを割り当てています。

注意:VM に別の名前を付けた場合、Azure が自動的に作成する NSG も別の名前になります。VM の名前に-nsg を付加した名前です。

Azure ポータルではさまざまな経路で NSG の設定に移動できますが、最も簡単な方法の 1 つは、Azure ダッシュボードに移動し、「すべてのリソース」タイルに表示されている Network Security Group をクリックすることです:

Azure - Dashboard - All resources - Network security group

ネットワークセキュリティグループ」ブレードを開いた状態で、「設定」の「受信セキュリティルール」をクリックします:

Azure - Network security group - Inbound security rules

次に「追加」をクリックします:

Azure - Network security group - Inbound security rules - Add

どのポートを開くべきか?

他のサーバーと同様、私たちのVMも多くのサービスを実行することになりますが、特に2つのサービスに対してインターネットからの公開アクセスを可能にするために、適切なポートを開放したいと思います:

  1. HTTP(port 80) - ポート80を開けると、VMがHTTPリクエストに応答できるようになり、VM上で動いているGitLabのインスタンスに公開アクセスできるようになります。
  2. SSH(port 22) - ポート22を開くことで、VMがSSH接続リクエストに応答できるようになり、リモート端末セッションへの公開アクセス(認証付き)が可能に_なります_

ポート80でHTTPを開きます

Add inboundsecurityrules “ブレードで、ポート80を開いて、VMがHTTP接続を受け入れるようにしましょう:

Azure - Add inbound security rules - HTTP

  1. Name “HTTP “を入力してください。
  2. Service ドロップダウンリストからHTTPを選択します。
  3. Action許可に設定されていることを確認してください。
  4. OK」をクリックします。

ポート22でSSHを開く

上記のプロセスを繰り返し、2つ目のInboundセキュリティ・ルールを追加してポート22を開き、VMがSSH接続を受け入れられるようにします:

Azure - Add inbound security rules - SSH

  1. Name“SSH “と入力してください。
  2. Service のドロップダウンリストからSSHを選択します。
  3. Action許可に設定されていることを確認してください。
  4. OK」をクリックします。

Azureがそれぞれの新しい受信セキュリティルールを追加するのに時間がかかりますが(リストを更新するために“Inboundsecurityrules “をクリックする必要があるかもしれません)、完了すると、リストに2つの新しいルールが表示されるはずです:

Azure - Inbound security rules - List

GitLab への接続

先ほど設定したドメイン名(あるいは公開 IP アドレス)を使って、ブラウザから新しい GitLab インスタンスにアクセスします。 すべてが計画通りに進んでいれば、次のようなページが表示され、GitLab が自動的に作成した管理者アカウントの_新しい_パスワードを設定するよう求められます:

GitLab - Change Password

両方のフォームフィールドに_新しい_パスワードを入力し、「パスワードを変更する」をクリックします。

パスワードを変更すると、GitLab のログインページにリダイレクトされます。ユーザー名にはroot を使い、前のステップで設定した新しいパスワードを入力して、“Sign in”をクリックします:

GitLab - Login

成功?

サインインに成功すると、GitLab Projects ページに“Welcome to GitLab!”というメッセージが表示されます:

GitLab - Projects Page

これで、あなた専用のAzureVM 上でGitLab インスタンスが使えるようになりました。おめでとうございます

最初の GitLab プロジェクトを作る

Git や GitLab に慣れ親しんでいる場合は、このセクションは飛ばしてもかまいません。 そうでなければ、最初のプロジェクトを作成しましょう。 ようこそページから、“New Project”をクリックします。

プロジェクトに名前と説明をつけ、その他はデフォルトのままにしておきましょう:

  1. Project path プロジェクト名欄に「demo」と入力。
  2. descriptionを入力してください。例:“My awesome demo project!”
  3. プロジェクトの作成」をクリックします。

GitLab - New Project

新しいプロジェクトが作成されると(ほんの一瞬です)、プロジェクトのホームページにリダイレクトされます:

GitLab - Empty Project

プロジェクトのホームページをさらにスクロールすると、新しいリポジトリのローカルクローンをセットアップして、そこからプッシュしたりプルしたりする方法についての基本的な説明があります:

GitLab - Empty Project - Basic Instructions

これで、あなた専用のGitLab環境がクラウド上にインストールされ、稼働するようになりました!

GitLab インスタンスのメンテナー

GitLab環境を最新の状態に保つことは重要です。 GitLabチームは常に機能拡張を行っており、時にはセキュリティ上の理由からアップデートが必要になることもあります。 そこで、GitLabのアップデート方法をレビュアーしましょう。

現在のバージョンの確認

現在稼働している GitLab のバージョンを確認するには、”Admin Area” リンクをクリックします。右上の検索ボックスの隣に表示されているレンチのアイコンです。

次のスクリーンショットでは、右上に“update asap “の通知メッセージが表示されています。 このメッセージは、1つ以上のセキュリティ修正が含まれた新しいバージョンのGitLabが利用可能であることを示しています:

GitLab - update asap

Components “セクションで、私たちのVMは現在GitLabのバージョン8.6.5 。これは、このチュートリアルを書いたときにVMを構築するために使ったAzure Marketplaceの“GitLab Community Edition “の内部に含まれていたGitLabのバージョンです。

注意:あなたのVMインスタンスのGitLabのバージョンは異なるかもしれませんが、更新プロセスは同じです。

SSH経由での接続

アップデートを実行するには、Azure VMインスタンスに直接接続し、ターミナルからコマンドを実行する必要があります。 Azure VMは実際にはLinux(Ubuntu)を実行しているサーバーなので、SSH(Secure Shell)を使用して接続する必要があります。

Windowsをお使いの場合は、PuTTYまたは同等のWindows SSHクライアントを使用して接続する必要があります。 LinuxまたはMacOSをお使いの場合は、すでにSSHクライアントがインストールされています。

注:

コマンドラインからのSSH

コマンドライン(ターミナル)からSSHを実行している場合は、usernameyour-azure-domain-name.com を正しい値に置き換えて、以下のコマンドを入力してVMに接続します。

繰り返しますが、Azure VMのドメイン名は、チュートリアルで以前に設定したものになります。 VMのドメイン名を設定していない場合は、以下のコマンドでIPアドレスを代わりに使用できます:

ssh username@your-azure-domain-name.com

プロンプトにパスワードを入力して認証します。

WindowsからのSSH (PuTTY)

WindowsでPuTTYを SSHクライアントとして使用している場合、WindowsでPuTTYを使用する方法を簡単に読んでおくとよいでしょう。

GitLab のアップデート

SSHでログインしたら、以下のコマンドを入力してGitLabを最新版にアップデートします:

sudo apt-get update && sudo apt-get install gitlab-ce

このコマンドはGitLabとその関連コンポーネントを最新バージョンにアップデートするので、完了するまで少し時間がかかります。 SSHターミナルウィンドウに、さまざまなアップデートタスクが完了するのが表示されます:

GitLab updating

アップデートが完了すると、このようなメッセージが表示されます:

Upgrade complete! If your GitLab server is misbehaving try running

   sudo gitlab-ctl restart

before anything else.

更新した GitLab を確認してみましょう。

ブラウザでGitLabインスタンスを更新し、管理エリアに移動します。 これで最新のGitLabインスタンスが表示されているはずです。

このチュートリアルを書いた時点で、Azure VM GitLab インスタンスは執筆時点 (9.4.0) の最新バージョンにアップデートされています。以前は“update asap”と表示されていたメッセージが、現在は“up-to-date”と表示されているのがわかります:

GitLab up to date

結論

もちろん、GitLabは優れたGitリポジトリツールだと信じています。 GitLabはイシュー、コードレビュー、CI、CDを単一のUIに統合し、アイデアからプロダクションへの迅速な移行を支援します。このチュートリアルでは、MicrosoftのクラウドサービスであるAzure上でGitLabのインスタンスをセットアップし、実行することがいかに迅速かつ簡単であるかを紹介しました。

AzureはGitLabを試すのに最適な方法です。(私たちが望むように)GitLabが自分に合っていると判断したら、安全でスケーラブルなクラウドプロバイダーとしてAzureを使い続けることもできますし、もちろんGitLabを任意のクラウドサービス上で実行することもできます。

次はどこへ?

GitLabについてもっと知りたい方は、他の技術記事やGitLabドキュメントをご覧ください。