Lightsail で GitLab CE インスタンスをセットアップおよび設定する - Amazon Lightsail

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Lightsail で GitLab CE インスタンスをセットアップおよび設定する

GitLab CE インスタンスが Amazon Lightsail で起動および実行された後に開始するために実行する必要があるいくつかのステップを次に示します。

目次

ステップ 1: Bitnami のドキュメントを確認する

GitLab CE アプリケーションの設定方法については、Bitnami のドキュメントを参照してください。詳細については、 の GitLab Bitnami によってパッケージ化された CE AWS クラウドを参照してください。

ステップ 2: GitLab CE 管理エリアにアクセスするためのデフォルトのアプリケーションパスワードを取得する

GitLab CE ウェブサイトの管理領域にアクセスするために必要なデフォルトのアプリケーションパスワードを取得するには、以下の手順を実行します。詳細については、Amazon Lightsail」を参照してください。

  1. インスタンス管理ページの接続タブで、 を使用して接続を選択しますSSH

    Lightsail コンソールSSHで を使用して接続する
  2. 接続後に、次のコマンドを入力してアプリケーションのパスワードを取得します。

    cat $HOME/bitnami_application_password

    アプリケーションのデフォルトパスワードを含んだ、次の例のようなレスポンスが表示されます。

    Bitnami アプリケーションのデフォルトパスワード。

ステップ 3: インスタンスに静的 IP アドレスをアタッチする

インスタンスを最初に作成した際に割り当てられたパブリック IP アドレスは、インスタンスを停止してスタートするたびに変更されます。パブリック IP アドレスが変更されないように、静的 IP アドレスを作成してインスタンスにアタッチする必要があります。後で、インスタンスexample.comで などの登録済みドメイン名を使用する場合、インスタンスを停止および起動するたびにドメインのDNSレコードを更新する必要はありません。1 つの静的 IP を 1 つのインスタンスにアタッチできます。

インスタンス管理ページの [ネットワーク] タブで、[静的 IP の作成] または [静的 IP のアタッチ] (インスタンスにアタッチできる静的 IP を既に作成している場合) を選択して、ページの手順に従います。詳細については、「静的 IP を作成してインスタンスにアタッチする」を参照してください。

Lightsail コンソールに静的 IP アドレスをアタッチする

新しい静的 IP アドレスがインスタンスに添付されたら、次の手順を実行して、アプリケーションに新しい静的 IP アドレスを認識させる必要があります。

  1. インスタンスの静的 IP アドレスは書き留めておきます。このIP アドレスはインスタンス管理ページの ヘッダーセクションに表示されます。

    Lightsail インスタンスのパブリック IP アドレスまたは静的 IP アドレス
  2. インスタンス管理ページの接続タブで、 を使用して接続を選択しますSSH

    SSH を使用してインスタンスに接続する
  3. 接続後に、次のコマンドを入力します。置換 <StaticIP> インスタンスの新しい静的 IP アドレス。

    sudo /opt/bitnami/configure_app_domain --domain <StaticIP>

    例:

    sudo /opt/bitnami/configure_app_domain --domain 203.0.113.0

    次の例のようなレスポンスが表示されます。これで、インスタンス上のアプリケーションが新しい静的 IP アドレスを認識するようになります。

    ドメイン設定ツールの結果

ステップ 4: GitLab CE ウェブサイトの管理エリアにサインインする

デフォルトのユーザーパスワードを取得したら、 GitLab CE ウェブサイトのホームページに移動し、管理者エリアにサインインします。サインイン後に、ウェブサイトをカスタマイズしたり管理上の変更を行うことができます。 GitLab CE でできることの詳細については、このガイドの後半にある「ステップ 7: GitLab CE ドキュメントを読み、ウェブサイトの設定を続行する」セクションを参照してください。

  1. インスタンス管理ページの [Connect] (接続) タブにあるパブリック IP アドレスを書き留めます。パブリック IP アドレスは、インスタンス管理ページのヘッダーセクションにも表示されます。

    インスタンスのパブリック IP アドレス
  2. インスタンスのパブリック IP アドレスを参照します (例: http://203.0.113.0 に移動します)。

    GitLab CE ウェブサイトのホームページが表示されます。接続がプライベートではない、セキュリティで保護されていない、またはセキュリティ上のリスクがある、などの警告がブラウザに表示されることがあります。これは、 GitLab CE インスタンスに SSL/TLS 証明書がまだ適用されていないために発生します。ブラウザウィンドウで、[Advanced] (詳細設定)、[Details] (詳細)、または [More information] (詳細情報) を選択して、使用可能なオプションを表示します。次に、プライベートまたは安全でない場合でも、ウェブサイトにアクセスすることを選択します。

  3. デフォルトのユーザー名 (root) と、先ほど取得したデフォルトのパスワードを使用してサインインします。

    Gitlab CE の管理ダッシュボードが表示されます。

    Gitlab CE の管理ダッシュボード

ステップ 5: 登録済みドメイン名のトラフィックを GitLab CE ウェブサイトにルーティングする

などの登録済みドメイン名のトラフィックを GitLab CE ウェブサイトexample.comにルーティングするには、ドメインのドメインネームシステム (DNS) にレコードを追加します。DNS レコードは通常、ドメインを登録したレジストラで管理およびホストされます。ただし、ドメインのDNSレコードの管理を Lightsail に転送して、Lightsail コンソールを使用して管理できるようにすることをお勧めします。

Lightsail コンソールのホームページのネットワークタブで、DNSゾーン の作成 を選択し、ページの指示に従います。詳細については、「ドメインのDNSレコードを管理するDNSゾーンを作成する」を参照してください。

Lightsail コンソールでDNSゾーンを作成する

ドメイン名がインスタンスにトラフィックをルーティングしたら、次の手順を実行して、 GitLab CE にドメイン名を認識させる必要があります。

  1. インスタンス管理ページの接続タブで、 を使用して接続を選択しますSSH

    SSH を使用してインスタンスに接続する
  2. 接続後に、次のコマンドを入力します。置換 <DomainName> インスタンスにトラフィックをルーティングするドメイン名。

    sudo /opt/bitnami/configure_app_domain --domain <DomainName>

    例:

    sudo /opt/bitnami/configure_app_domain --domain example.com

    次の例のようなレスポンスが表示されます。これで、 GitLab CE インスタンスはドメイン名を認識しているはずです。

    ドメイン設定ツールの結果

    このコマンドが失敗した場合、古いバージョンの GitLab CE インスタンスを使用している可能性があります。代わりに次のコマンドを実行してみてください。置換 <DomainName> インスタンスにトラフィックをルーティングするドメイン名。

    cd /opt/bitnami/apps/gitlab sudo ./bnconfig --machine_hostname <DomainName>

    コマンドの実行が終了したら次のコマンドを入力し、サーバーが再起動するたびに bnconfig ツールが自動的に実行されないようにします。

    sudo mv bnconfig bnconfig.disabled

次に、 GitLab CE ウェブサイトHTTPSの接続を有効にする SSL/TLS 証明書を生成して設定する必要があります。詳細については、このガイドの次の「ステップ 6: GitLab CE ウェブサイト用に を設定するHTTPS」セクションに進んでください。

ステップ 6: CE ウェブサイトHTTPS用に を設定する GitLab

GitLab CE ウェブサイトHTTPSで を設定するには、以下の手順を実行します。これらのステップでは、Let's Encrypt / 証明書をリクエストするためのコマンドラインツールである Lego クライアント の使用方法を示します。 SSLTLS

重要

この手順を開始する前に、トラフィックを GitLab CE インスタンスにルーティングするようにドメインが設定されていることを確認してください。そうしないと、SSL/TLS 証明書の検証プロセスが失敗します。登録済みドメイン名のトラフィックをルーティングするには、ドメインDNSの にレコードを追加します。DNS レコードは通常、ドメインを登録したレジストラで管理およびホストされます。ただし、ドメインのDNSレコードの管理を Lightsail に転送して、Lightsail コンソールを使用して管理できるようにすることをお勧めします。

Lightsail コンソールのホームページのドメインとDNSタブで、DNSゾーンの作成 を選択し、ページの手順に従ってください。詳細については、「Lightsail でドメインのDNSレコードを管理するDNSゾーンの作成」を参照してください。

  1. インスタンス管理ページの接続タブで、 を使用して接続を選択しますSSH

    Lightsail コンソールSSHで を使用して接続する
  2. 接続したら、次のコマンドを入力して、ディレクトリを一時ディレクトリ (/tmp) に変更します。

    cd /tmp
  3. 次のコマンドを入力して、Lego クライアントの最新バージョンをダウンロードします。このコマンドは、テープアーカイブ (tar) ファイルをダウンロードします。

    curl -Ls https://api.github.com/repos/xenolf/lego/releases/latest | grep browser_download_url | grep linux_amd64 | cut -d '"' -f 4 | wget -i -
  4. 次のコマンドを入力して tar ファイルからファイルを抽出します。置換 X.Y.Z ダウンロードした Lego クライアントのバージョン。

    tar xf lego_vX.Y.Z_linux_amd64.tar.gz

    例:

    tar xf lego_v4.7.0_linux_amd64.tar.gz
  5. 以下のコマンドを入力して、Lego クライアントファイルを移動させる /opt/bitnami/letsencrypt ディレクトリを作成します。

    sudo mkdir -p /opt/bitnami/letsencrypt
  6. 以下のコマンドを入力して、Lego クライアントファイルを作成したディレクトリに移動します。

    sudo mv lego /opt/bitnami/letsencrypt/lego
  7. 次のコマンドを 1 つずつ入力して、インスタンスで実行されているアプリケーションサービスを停止します。

    sudo service bitnami stop sudo service gitlab-runsvdir stop
  8. 次のコマンドを入力して、Lego クライアントを使用して Let's Encrypt SSL/TLS 証明書をリクエストします。

    sudo /opt/bitnami/letsencrypt/lego --tls --email="EmailAddress" --domains="RootDomain" --domains="WwwSubDomain" --path="/opt/bitnami/letsencrypt" run

    コマンド内の次のサンプルテキストを独自のテキストに置き換えます。

    • EmailAddress — 登録通知用のメールアドレスです。

    • RootDomain — GitLab CE ウェブサイトにトラフィックをルーティングするプライマリルートドメイン (例: example.com)。

    • WwwSubDomain — GitLab CE ウェブサイトにトラフィックをルーティングするプライマリルートドメインのwwwサブドメイン (例: www.example.com)。

      コマンドに --domains パラメータを追加して指定することで、証明書に複数のドメインを指定することができます。複数のドメインを指定すると、Lego はサブジェクト代替名 (SAN) 証明書を作成します。これにより、指定したすべてのドメインに対して有効な証明書は 1 つだけになります。リストの最初のドメインは証明書のCommonName「」として追加され、残りは証明書内のSAN拡張機能にDNSNames「」として追加されます。

    例:

    sudo /opt/bitnami/letsencrypt/lego --tls --email="user@example.com" --domains="example.com" --domains="www.example.com" --path="/opt/bitnami/letsencrypt" run
  9. プロンプトが表示されたら、YEnter を押して利用規約に同意します。

    次の例に示すようなレスポンスが表示されます。

    証明書リクエストに対する Lego クライアントからの成功したレスポンス

    成功した場合、一連の証明書が /opt/bitnami/letsencrypt/certificates ディレクトリに保存されます。このセットには、サーバー証明書ファイル (例: example.com.crt) とサーバ証明書キーファイル(例: example.com.key) が含まれています。

  10. 次のコマンドを 1 つずつ入力して、インスタンス上の既存の証明書の名前を変更します。後で、これらの既存の証明書は新しい Let's Encrypt 証明書に置き換えます。

    sudo mv /etc/gitlab/ssl/server.crt /etc/gitlab/ssl/server.crt.old sudo mv /etc/gitlab/ssl/server.key /etc/gitlab/ssl/server.key.old sudo mv /etc/gitlab/ssl/server.csr /etc/gitlab/ssl/server.csr.old
  11. 次のコマンドを 1 つずつ入力して、 GitLab CE インスタンスのデフォルトの証明書ディレクトリである /etc/gitlab/ssl ディレクトリに新しい Let's Encript 証明書のシンボリックリンクを作成します。

    sudo ln -sf /opt/bitnami/letsencrypt/certificates/Domain.key /etc/gitlab/ssl/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/Domain.crt /etc/gitlab/ssl/server.crt

    コマンドで、Domain Let's Encrypt 証明書をリクエストするときに指定したプライマリルートドメインを持つ 。

    例:

    sudo ln -sf /opt/bitnami/letsencrypt/certificates/example.com.key /etc/gitlab/ssl/server.key sudo ln -sf /opt/bitnami/letsencrypt/certificates/example.com.crt /etc/gitlab/ssl/server.crt
  12. 次のコマンドを 1 つずつ入力して、移動先のディレクトリにある新しい Let's Encrypt 証明書のアクセス許可を変更します。

    sudo chown root:root /etc/gitlab/ssl/server* sudo chmod 600 /etc/gitlab/ssl/server*
  13. 次のコマンドを入力して、CE インスタンスのアプリケーションサービスを再起動します GitLab。

    sudo service bitnami start

次回、設定したドメインを使用して GitLab CE ウェブサイトを参照すると、HTTPS接続にリダイレクトされるはずです。 GitLab CE インスタンスが新しい証明書を認識するまでに最大 1 時間かかる場合があることに注意してください。 GitLab CE ウェブサイトが接続を拒否した場合は、インスタンスを停止して起動し、もう一度試してください。

ステップ 7: GitLab CE ドキュメントを読み、ウェブサイトの設定を続ける

ウェブサイトを管理およびカスタマイズする方法については、 GitLab CE ドキュメントを参照してください。詳細については、「 GitLab ドキュメント」を参照してください。

ステップ 8: インスタンスのスナップショットを作成する

GitLab CE ウェブサイトを希望どおりに設定したら、インスタンスの定期的なスナップショットを作成してバックアップします。スナップショットを手動で作成することも、自動スナップショットを有効にして Lightsail に毎日のスナップショットを作成させることもできます。インスタンスに問題が発生した場合は、スナップショットを使用して新しい代替インスタンスを作成できます。詳細については、「スナップショット」を参照してください。

インスタンス管理ページの [スナップショット] タブで [スナップショットを作成する] を選択するか、[自動スナップショットを有効にする] を選択します。

Lightsail コンソールでインスタンススナップショットを作成する

詳細については、Amazon Lightsail での Linux または Unix インスタンスのスナップショットの作成」またはAmazon Lightsail でのインスタンスまたはディスクの自動スナップショットの有効化または無効化」を参照してください。