t3.smallでGitLab

t3.smallでGitLabを運用してみました。

GitLabはメモリを結構くいます。

デフォルトでは、搭載メモリ÷4×3(UnicornのWorkerプロセス数。デフォルトではCPUコア数 + 1)のメモリをくいます。

t3.smallは、CPUコア数が2、メモリが2Gなので、CPUコア数+1(=3)×メモリ÷4(=512M)=1.5Gでギリギリ動作します。

目次

インストール

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce
vi /etc/gitlab/gitlab.rb
external_url http://ホスト名
gitlab_rails['time_zone'] = 'Asia/Tokyo'
gitlab-ctl reconfigure

あとは、セキュリティグループのインバウンドでポート開放して、external_urlにアクセスすればログイン画面が表示されます。

初期パスワードは、ID・パスワード共にrootです。

初期設定とPush

rootでログインして以下を作成・設定します。
・アカウント作成
・Group作成
・Project作成
・ProjectにMemberをMaintainersロールで追加

GitLabはデフォルトブランチはProtectedがかかる為、MaintainersロールだけがPush/Pullできます。

developerロールでPush/Pullしたい場合は、Maintainersロールで一旦masterにPushしてから、Settings->Repository->Protected Branchesでmasterブランチをunprotectedします。その後、Memberの設定で権限をdeveloperに変更します。

CI設定

デフォルトではCI設定されているので、Push後Pendingになるので、Settings->Ci/CD->Auto DevOps->Default to Auto DevOps pipelineのチェックを外しておきます。

git push でのID/PW省略

pushするアカウントのhomeに.netrcを作成します。

machine GitLabのホスト名
login GitLabログインID
password GitLabログインパスワード

メール送信設定

EC2では25番ポートが塞がれており申請が必要で、GitLabからメール送信する場合、587のSMTPを用意するのが手取り早いです。

vi /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'Fromメールアドレス'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'

以下はホスティングサービスのSMTPを使う場合

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'SMTPサーバー名'
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = 'SMTPユーザー名'
gitlab_rails['smtp_password'] = 'SMTPパスワード'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab-ctl reconfigure

あとは、セキュリティグループのインバウンドで587ポートを開放して、ログイン画面のForgot your password?あたりでメール送信を試してみます。

2段階認証

Profile Settings – Account – Two-Factor Authentication
QRコードをGoogle認証で読み取る。
以降、ID/PW入力後、Google認証のワンタイムパスワードを入力するようになります。

push/pullでの2段階認証回避

2段階認証を設定するとpush/pull時もワンタイムパスワードが必要になってしまいますので、以下の回避設定を行います。

Profile Setting – Access Tokens
Nameに何か入力しapiにチェックしcreate

.netrcのpasswordに払い出されたTokenを設定します。

swap作成

t3.smallでGitLabを起動すると、残りのメモリが心許ないのでswapを作成しておきます。

sudo dd if=/dev/zero of=/swapfile bs=1M count=1024
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo free
sudo vi /etc/fstab
+/swapfile swap swap defaults 0 0

サーバ移行

サーバ移行を経験したのでついでに記載します。
ポイントは、GitLabのバージョンを合わせておくことです。

移行元

sudo gitlab-rake gitlab:backup:create
sudo chmod 777 -R /var/opt/gitlab/backups

移行先

移行元の/var/opt/gitlab/backupsに作成されたバックファイルを、移行先の/var/opt/gitlab/backupsに移動します。

cd /var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore
yes
yes
gitlab-ctl reconfigure
gitlab-ctl restart

https化

今回は、Let’s EncryptでSSLしました。

certbot certonly --webroot -w Apache等のhtmlディレクトリ -d GitLabのドメイン名 -m SSLを取得するメールアドレス --agree-tos -n
vi /etc/gitlab/gitlab.rb
external_url 'https://ホスト名'
nginx['ssl_certificate'] = "/etc/letsencrypt/live/ホスト名/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/ホスト名/privkey.pem"
gitlab-ctl reconfigure
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次