Hyper-V上のCentOSにGitLabを構築

## 目次
1. [やること](##-1.-やること)
2. [環境](##-2.-環境)
3. [仮想マシンの作成](##-3.-仮想マシンの作成)
4. [GitLabの構築](##-4.-GitLabの構築)
5. [GitLabへのアクセス](##-5.-GitLabへのアクセス)

## 1. やること
ローカルのHyper-V上にGitLab環境を構築してみる。

## 2. 環境
- Windows 10 Pro
- Hyper-V
    - 世代の指定：第一世代
    - メモリの割り当て：4096 MB
    - 仮想スイッチは接続の種類が外部ネットワークとなっているものを使用（[Microsoftドキュメント](https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/connect-to-network)の"External VM Switch"）
- Cent OS 7(イメージは[こちら](https://ftp.tsukuba.wide.ad.jp/Linux/centos/7.9.2009/isos/x86_64/)のCentOS-7-x86_64-DVD-2009.isoを使用)

## 3. 仮想マシンの作成
本記事ではスコープ外なので記載しません。

## 4. GitLabの構築
CentOSイメージで最小限のインストールをしたため、パッケージをインストールしていく。
コピー&ペーストができるようにするのため、`ip addr`コマンドでIPアドレスを確認してTeratermでの作業をお勧めします。

```bash:パッケージの更新とインストール
[root@localhost ~]# yum -y update
読み込んだプラグイン:fastestmirror
Determining fastest mirrors
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
base                                                                                      | 3.6 kB  00:00:00
extras                                                                                    | 2.9 kB  00:00:00
updates                                                                                   | 2.9 kB  00:00:00
(1/4): base/7/x86_64/group_gz                                                             | 153 kB  00:00:00
(2/4): extras/7/x86_64/primary_db                                                         | 250 kB  00:00:00
(3/4): base/7/x86_64/primary_db                                                           | 6.1 MB  00:00:00
(4/4): updates/7/x86_64/primary_db                                                        |  25 MB  00:00:01
依存性の解決をしています
--> トランザクションの確認を実行しています。
...
完了しました!
[root@localhost ~]#
```

```bash:必要な依存パッケージのインストール確認
[root@localhost ~]# yum install curl policycoreutils openssh-server openssh-clients
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
パッケージ curl-7.29.0-59.el7_9.2.x86_64 はインストール済みか最新バージョンです
パッケージ policycoreutils-2.5-34.el7.x86_64 はインストール済みか最新バージョンです
パッケージ openssh-server-7.4p1-23.el7_9.x86_64 はインストール済みか最新バージョンです
パッケージ openssh-clients-7.4p1-23.el7_9.x86_64 はインストール済みか最新バージョンです
何もしません
[root@localhost ~]#
```

```bash:dnfコマンドのインストール
[root@localhost ~]# yum -y install wget
...
[root@localhost ~]# yum -y install epel-release
...
[root@localhost ~]# yum -y install dnf
...
完了しました!
[root@localhost ~]#
```

```bash:Firewall に HTTP と HTTPS を追加
[root@localhost ~]# firewall-cmd --add-service=https --permanent

success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@localhost ~]#
```

```bash:Gitlab パッケージのリポジトリへの追加
[root@localhost ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
Detected operating system as centos/7.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/config_file.repo?os=centos&dist=7&source=script
done.
...
The repository is setup! You can now install packages.
[root@localhost ~]#
```

```bash:Gitlab パッケージをインストール
[root@localhost ~]# dnf install gitlab-ce
...(基本的にyで進める)
完了しました!
[root@localhost ~]#
```
この時に`external_url`を登録した場合でも、アクセス元のhostsもしくはDNSサーバへのレコード登録が必要になります。
一旦、[こちら](https://masavlog.com/programming/gitlab_external_url/)を実施すればアクセスができるようになります。

## 5. GitLabへのアクセス
CentOSへhttpアクセスをする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153287/a3298318-c81b-228f-a823-f8731bcfc4bb.png)

rootパスワードは下記ファイルに書かれているのでそれを使用する。
```bash:Gitlabのrootユーザパスワード
[root@localhost ~]# cat /etc/gitlab/initial_root_password
```

ログイン。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153287/0a057906-b0a6-b8ec-32d7-e06f9a180606.png)

日本語表記に変更してみる。
1. プロフィール画像をクリック→「Preferences」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153287/6fb0ebf9-6e86-45ca-fe4f-ad1762a53441.png)

2. 「language」で検索 →日本語に変更して「Save changes」を押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153287/049fb97f-b421-ed90-288a-9fa8a55e82cf.png)

3. 更新すると日本語になる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2153287/e51aeb42-41e3-16a4-f90f-f663004c661b.png)