ユーザ用ツール

サイト用ツール


サイドバー

サーバ:aws:サーバ構築手順:amazon_linux_2_に_gitlab_community_edition_gitlab-ce_をインストール

Amazon Linux 2 に Gitlab(Community Edition / Enterprise Edition)をインストール

サーバにインストールできる Gitlab には Community Edition(CE)と Enterprise Edition(EE)の2種類あります。
Community EditionとEnterprise Edition

今回行ったのは CE のインストールですが、一部コマンドを変更することで EE のインストールも可能です。

必要スペック

必要スペックは、バージョンアップで高くなる可能性があるため、リンク先の最新情報を見ることをオススメします。

  • スワップ:2GB 以上推奨
  • ストレージ:最低 10GB(PostgreSQL で使用する分)+ Git で管理するファイル容量

ということで、無料枠の t2.micro ではスペックが足りないので、t2.large を使います。

vCPURAM(GiB)
t2.micro11
t2.large28

インストールを試すだけなら t2.micro でもスワップを 8GB あてればインストールは成功しますが、動作が重く実用には耐えないかと。。。

※ t2.micro で Gitlab のインストール中にメモリ不足のエラーがでる場合、スワップの割り当てを増やせばインストールに成功します。

AWSの準備

  1. インスタンスの作成
  2. AMI → Amazon Linux 2 AMI
  3. インスタンスタイプ → t2.large
  4. 終了保護の有効化(実稼働させる場合は、誤って削除するのを防ぐため)
  5. ストレージの追加 → 30 GB(必要に応じて増減を)
  6. セキュリティグループ → Webサイト用の設定を(例を下に載せてます)
  7. 起動
  8. インスタンス名 → gitlab などに
  9. Elastic IP の関連付け

セキュリティグループの設定例

インバウンドルールに以下の3つ追加します。

  • タイプ:HTTP → ソース:任意の場所
  • タイプ:HTTPS → ソース:任意の場所
  • タイプ:SSH → ソース:マイIP

【セキュリティグループの作成】後、以下のようなインバウンドルールになっていればOKです。

タイププロトコルポート範囲ソース
HTTPTCP800.0.0.0/0
HTTPTCP80::/0
HTTPSTCP4430.0.0.0/0
HTTPSTCP443::/0
SSHTCP22マイIPアドレス

Amazon Linux 2 の初期設定

Gitlab インストールのために、まずは Amazon Linux 2 の初期設定を行います。

Gitlab のインストール

公式が用意してくれている Omnibus package を使ってインストールします。
Gitlab を動かすのに必要な Nginx や PostgreSQL、Let's Encrypt などなどを一括管理し、インストールしてくれる凄いやつです。

(私は、初回インストール時に Apache などを予めインストールしておく必要があるのかと思い、Apache を手動インストールしてから Gitlab CE をインストールしたところ、Omnibus package が管理する Nginx と競合してエラーが発生しましたorz)

今回は Amazon Linux 2 へのインストールということで、公式マニュアルの CentOS 7 のインストール方法を参照します。

HTTP と SSH については AWS のセキュリティグループで管理しているためスキップします。
Postfix の設定についてもひとまずスキップします。

※ コマンド中で EXTERNAL_URL に指定している URL は、Gitlab を閲覧したい URL に書き換えてください。
(ドメインがない場合は IP アドレスを指定するなど)

Community Edition の場合

# GitLab パッケージをリポジトリに追加
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

# GitLabパッケージをインストール
$ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce

Enterprise Edition の場合

# GitLab パッケージをリポジトリに追加
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

# GitLabパッケージをインストール
$ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

インストールに成功したら確認

# インストールされたバージョンを確認
$ yum list installed | grep gitlab
gitlab-ce.x86_64         12.9.2-ce.0.el6    @gitlab_gitlab-ce

# ストレージの空き容量を確認
$ df -h --total
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/xvda1      30G  7.4G   23G  25%  /

ブラウザでサイトにアクセスできるか確認する。
ブラウザキャッシュでサイトが見れないときがあるので、サイト表示されなくても Chrome のシークレットモードで開くと見れるときがある。

初回アクセス時は管理者アカウント(root)のパスワード設定画面が表示されるので、新しいパスワードを設定します。
これで【root / 設定したパスワード】でログインできるようになります。

URL の変更

あとからドメインを取得した場合や、URL の設定を間違えていた場合など、URL を変更したい場合は以下の手順で変更できます。

# オプションで URL 変更
$ sudoedit /etc/gitlab/gitlab.rb

external_url="http://example.net/"

# 変更内容反映
$ sudo gitlab-ctl reconfigure

SSL証明書(Let's Encrypt)の設定

Omnibus-GitLab は Let's Encrypt をサポートしているので、簡単に SSL証明書を導入し https を使用することができます。
https://docs.gitlab.com/omnibus/settings/ssl.html

$ sudoedit /etc/gitlab/gitlab.rb

external_url="http://gitlab.example.com"

letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['自分のメールアドレス']

// 4日毎の午前3時0分に更新を試みる
letsencrypt['auto_renew_hour'] = 3
letsencrypt['auto_renew_minute'] = 0
letsencrypt['auto_renew_day_of_month'] = "*/4"

# 反映
sudo gitlab-ctl reconfigure

これだけで OK です。
あとは https でアクセスできるか確認します。

その他の設定などについては Gitlab にて。

コメント

コメントを入力. Wiki文法が有効です:
 
サーバ/aws/サーバ構築手順/amazon_linux_2_に_gitlab_community_edition_gitlab-ce_をインストール.txt · 最終更新: 2020/07/10 18:16 by humolife