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)
$ 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
ログインしなおす。その時ポート番号は変えたものを指定。
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」の下からバージョンを選択。
すると以下のように手順が出てきます。
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を設定しなおそう(気づくまでに時間かかった)。