VPSにGitLabを入れてみる

以前構築したけどあまり使ってなかったGitHubのクローンGitLab。

ゴミデータもたくさんあるしいっそのことイチから再構築してしまおう。
そしてちゃんとログ残そう。。。


環境は「お名前.com」のVPS。詳しくは割愛。

OS再インストール

コンパネからサヨウナラする。

TeraTermでの接続を見事に忘れる

TeraTermで接続するもその方法を見事に忘れるど阿呆である。

「お名前.com」の場合、コンパネにある「SSH Private key」をダウンロード。
TeraTermを起動しIPを入力。
ユーザー名は「root」。
RSA/DSA/ECDSA/ED25519鍵を使う」を選択してダウンロードした秘密鍵ファイルを選択。
これでおk。

VPSの設定

ユーザーの追加やSSHの設定等。

こちらを参考にさせていただきました。

お名前.com VPS を借りて最初にやったこと(1) ユーザ作成とSSH設定 | karakaram-blog

OSのアップデート

# yum update

再起動

# reboot

再接続からのルートパスワードの変更

# passwd root

作業ユーザーの追加、パスワード設定、rootになれるように設定。

# useradd 作業ユーザー名
# passwd 作業ユーザー名
# gpasswd -a 作業ユーザ名 wheel

昇格できるユーザーの設定

# vi /etc/pam.d/su

下の記述の#を削除

# auth       required     pam_wheel.so use_uid

sudo権限を設定

# visudo

下の記述の#を削除

%wheel        ALL=(ALL)       ALL

作業ユーザー用のSSH Keyを生成

# su 作業ユーザ
$ ssh-keygen -t rsa -C "任意のコメント"

「Generating public/private rsa key pair.」というメッセージ以降の対話はすべてそのままEnterでおk。

パーミッションの設定

$ cd /home/作業ユーザ/
$ chmod 700 .ssh
$ chmod 600 .ssh/*
$ mv .ssh/id_rsa.pub .ssh/authorized_keys

生成された秘密鍵ファイルをクライアントに転送
(TeraTermでの転送方法を忘れただと?メニューのファイルをクリックしてから言えwww)

転送した秘密鍵TeraTermログインしなおす。

$ su -
# vi /etc/ssh/sshd_config

SSHの設定をいじる。

#標準の22から変更。
Port ポート番号(0~65535の内から。かぶっちゃやーよ)
#rootでのログインを禁止
PermitRootLogin no
#rsa鍵認証を有効
RSAAuthentication yes
#公開鍵認証を有効
PubkeyAuthentication yes
#公開鍵ファイルの場所
AuthorizedKeysFile .ssh/authorized_keys
#パスワード鍵認証を無効
PasswordAuthentication no

SSHを再起動

# /etc/rc.d/init.d/sshd restart

IPTABLESを修正

# vi /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 変更したポート番号 -j ACCEPT

IPTABLESを再起動

# /etc/init.d/iptables restart

ログインしなおす。その時ポート番号は変えたものを指定。

スナップショットをとっておく

シャットダウンする。

$ sudo shutdown -h now

VPSのコンパネからスナップショットをとっておく。

GitLabの構築

さていよいよGitLabの構築。
以前構築した際は鬼めんどかった記憶がありますが、今はOmnibus Packagesというものがあるので楽ちん?

まずはOSのバージョン確認

$ cat /etc/redhat-release
$ uname -a

執筆時の環境はCentOS release 6.6の64bit。

https://about.gitlab.com/downloads/

上記URLにアクセスし「Install a GitLab CE Omnibus package on」の下からバージョンを選択。
すると以下のように手順が出てきます。

f:id:allium_ramosum:20150802205438p:plain

32bitだと手順が異なる模様。

まぁ64bitなので関係なし!

手順1から順にコマンドを打っていく。

「3. Configure and start GitLab」の手順でエラーが出た場合はログを見て対応。
執筆時はsysctlでエラーがでてました。
sysctlの引数に -e を付与。

sudo vim /opt/gitlab/embedded/cookbooks/gitlab/recipes/postgresql.rb

# hope this works...
execute "sysctl" do
  command "/sbin/sysctl -e -p /etc/sysctl.conf"
  action :nothing
end

この対応は根本的な解決になってないそうですが。

他の原因でも大体Issueに記載されてると思うのでググればなんとかなるはず。

あとiptablesをいじるようで、SSHのポートが22以外だと接続できなくなってしまう。
再度iptablesを設定しなおそう(気づくまでに時間かかった)。

動作確認

ブラウザでVPSIPアドレスドメインがあるならそれ。要は80番ポートでアクセス。
以下のような画面が出れば一安心していいと思う。

f:id:allium_ramosum:20150802220559p:plain

次にCIとの連携だが次回。