====== Amazon Linux 2 に Gitlab(Community Edition / Enterprise Edition)をインストール ====== サーバにインストールできる Gitlab には Community Edition(CE)と Enterprise Edition(EE)の2種類あります。\\ [[https://www.gitlab.jp/installation/ce-or-ee/|Community EditionとEnterprise Edition]] 今回行ったのは CE のインストールですが、一部コマンドを変更することで EE のインストールも可能です。 ===== 必要スペック ===== 必要スペックは、バージョンアップで高くなる可能性があるため、リンク先の最新情報を見ることをオススメします。 * CPU:[[https://docs.gitlab.com/ee/install/requirements.html#cpu|2コア以上推奨]] * メモリ:[[https://docs.gitlab.com/ee/install/requirements.html#memory|8GB RAM 以上推奨]] * スワップ:2GB 以上推奨 * ストレージ:最低 10GB(PostgreSQL で使用する分)+ Git で管理するファイル容量 ということで、無料枠の t2.micro ではスペックが足りないので、t2.large を使います。 | |vCPU|RAM(GiB)| |t2.micro|1|1| |t2.large|2|8| インストールを試すだけなら t2.micro でもスワップを 8GB あてればインストールは成功しますが、動作が重く実用には耐えないかと。。。\\ ※ t2.micro で Gitlab のインストール中にメモリ不足のエラーがでる場合、スワップの割り当てを増やせばインストールに成功します。 ===== AWSの準備 ===== - インスタンスの作成 - AMI → Amazon Linux 2 AMI - インスタンスタイプ → t2.large - 終了保護の有効化(実稼働させる場合は、誤って削除するのを防ぐため) - ストレージの追加 → 30 GB(必要に応じて増減を) - セキュリティグループ → Webサイト用の設定を(例を下に載せてます) - 起動 - インスタンス名 → gitlab などに - Elastic IP の関連付け ==== セキュリティグループの設定例 ==== インバウンドルールに以下の3つ追加します。 * タイプ:HTTP → ソース:任意の場所 * タイプ:HTTPS → ソース:任意の場所 * タイプ:SSH → ソース:マイIP 【セキュリティグループの作成】後、以下のようなインバウンドルールになっていればOKです。 |タイプ|プロトコル|ポート範囲|ソース| |HTTP|TCP|80|0.0.0.0/0| |HTTP|TCP|80|::/0| |HTTPS|TCP|443|0.0.0.0/0| |HTTPS|TCP|443|::/0| |SSH|TCP|22|マイIPアドレス| ===== Amazon Linux 2 の初期設定 ===== Gitlab インストールのために、まずは Amazon Linux 2 の初期設定を行います。 * [[サーバ:aws:サーバ構築手順:amazon_linux_2_の初期設定|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 のインストール方法を参照します。\\ * [[https://www.gitlab.jp/installation/?version=ce|Community Edition のインストール方法]] * [[https://www.gitlab.jp/installation/|Enterprise Edition のインストール方法]] 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|Gitlab]] にて。