サクラVPS(centos7)にGitLabをインストールしてみた。

# 1.概要
サクラVPS(centos7)にGitlabをインストールして見ました。
社内でGitを使いたい勢の圧力が高まり、社内のサーバーに入れる前に試しに、個人のサクラVPS(centos7)に入れて練習してみようと思い立ちました。
その際の手順を残したいと思います。

# 2.更地にした。
サーバーの中身を消して、centos7をインストールした状態にしました。
ユーザを作成した後に、yumを更新。

```console
$sudo yum update
```

# 3.インストール
gitlab-ceを入れるつもりなので、以下のドキュメントを参考に上から順番にインストールしていきます。
[Download and install GitLab | GitLab](https://about.gitlab.com/install/#centos-7?version=ce)

## 3-1.HTTP、HTTPS、およびSSHアクセスを有効化していきます。

```console
$sudo yum install -y curl policycoreutils-python openssh-server openssh-clients
```

sshの有効化

```console
$sudo systemctl enable sshd
$sudo systemctl start sshd
```

firewalldコマンドでエラーが出た！

```console
$sudo firewall-cmd --permanent --add-service=http
$FirewallD is not running
```

firewalldサービス有効化と起動

```console
$systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.

$systemctl start firewalld
```

今度は成功した。

```console
$sudo firewall-cmd --permanent --add-service=http
success
$sudo firewall-cmd --permanent --add-service=https
success

$sudo systemctl reload firewalld
```


## 3-2.メール送信するためにPostfixの設定します。
今回は、このままPostfixを設定して行きますが、変更する場合は、次を参照 ([configure an external SMTP server](https://docs.gitlab.com/omnibus/settings/smtp.html))

```console
$sudo yum install postfix
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * epel: www.ftp.ne.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
Package 2:postfix-2.10.1-7.el7.x86_64 already installed and latest version
Nothing to do
$sudo systemctl enable postfix
$sudo systemctl start postfix
```

### 3-3.GitLabパッケージリポジトリを追加し、パッケージをインストールする。

```console
$curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
```

gitlab-ceをインスールします。[gitlab.example.com]の部分をアクセスするURLに変更します。https URLの場合、デフォルトだとGitLabはLet's Encryptで証明書を使用します。独自の証明書を使用することも、http URLを使用することもできるようです。
今回は独自のドメインがあるので、それを使用したいと思います。
Let's Encryptも使用したいので、httpsです。

```console
$sudo EXTERNAL_URL="https://gitlab.example.com" yum install -y gitlab-ce
```

### 3-4.ブラウザでログインします。
先程、EXTERNAL_URLで定義したURLにアクセスしますが、アクセスできない。
![2019-11-25_12h26_31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/dd1f43c9-0409-6614-bc17-98e7ef1c33fc.png)

色々見直した結果、サクラVPSのパケットフィルタの設定でSSHしか許可してない事が分かり。
![2019-11-25_15h22_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/c8d909fd-770c-fa04-5bf7-243c39377978.png)

WEBとメールを許可し。
![2019-11-25_15h24_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/50c64452-0efa-e39d-0733-e0cb3abe49c2.png)

こんな感じの設定にした。
![2019-11-25_15h24_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/422acad4-9edd-9cf9-7144-800bf36c4051.png)

EXTERNAL_URLで設定したURLに接続…今回は成功！
最初にrootのパスワードを設定する画面が表示されます。
![2019-11-25_15h39_42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/89bccf98-b8be-3621-9a27-836df4f4c90c.png)

設定すると、ログイン画面に移行します。
![2019-11-25_15h41_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/7b35282e-2481-c645-6deb-8ab5e6220a61.png)

試しにログインしてみました。
![2019-11-25_15h44_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/71fec33e-b367-d144-bd61-2aa0d479f76f.png)

問題なさそうです。

証明書もLet's Encryptの使用していますね。
![2019-11-25_17h13_25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/6ea15a0d-9cda-d985-99e3-c561bb2cb3b2.png)



# 4.ユーザ作成の制限
今の状態だと誰でもユーザを作れてしまうので、制限します。
![2019-11-25_18h04_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/5ac5741e-4c9a-fe68-9512-2861204f750f.png)

## 4-1.管理者権限でログインします。
## 4-2.上のメニューにある、レンチ(Admin Area)のマークをクリックします。
![2019-11-25_18h00_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/cb9b29e4-b3d8-891a-27d4-85db68b13aff.png)

## 4-3.サイドメニューの[Settings]⇒[General]を選択します。
![2019-11-25_18h00_57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/dbe1a2a4-d61c-8c19-d3ae-3f9534e31e26.png)

## 4-4.設定画面で[Sign-up restrictions]の[Expand]をクリックして展開します。
![2019-11-25_18h01_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/f759e67b-e7c6-e7c6-2ac8-a00abd570bfe.png)

## 4-5.Sign-up enabledのチェックを外します。
![2019-11-25_18h01_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/37fdc4be-9335-99f0-f9c3-65422eff0209.png)
↓
![2019-11-25_18h02_52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/cadab58d-6ec3-f7c3-66f2-aad8e0fb39c2.png)

## 4-5.[Save changes]ボタンを押下します。
![2019-11-25_18h05_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/023a171f-d2c3-c43f-c36e-1a0121d33b98.png)

## 4-6.ログイン画面に戻って確認。
![2019-11-25_17h58_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/259433/29e513d2-d7c3-234a-074a-b243491f0ed1.png)

# 5.今後
証明書は自動取得にしたい。それとなんでこんなに遅いのだろうか。サーバーのスペック？