さくらのVPS (Ubuntu12.04) にGitLab(6.4.3)をインストールする
まえがき
動機
- 2014年1月1日、おもむろに一年の抱負などを考える
- 抱負の中で考えたことをブレイクダウンしていったら、Redmineを使いたくなった (このあたりは別途ブログに書く)
- さくらVPSを契約し、サーバを弄り始めて、メールサーバに続く肩慣らしとして、ソースコードのバージョン管理システム "Git" のリポジトリを自前で管理出来る "GitLab" をセットアップしてみようと思い立つ。
GitLab: Self Hosted Git Management Application
注意書き
- 普段はOpenFrameworksとかUnityとかAndroidとかでヒューマンインタフェース書いたりUX考えてる人です。サーバいじりは趣味レベル
- 間違いがあるかもしれませんご注意下さい
やりたいこと
サーバ環境
手順
参考にしたサイト
- 公式インストールガイド
gitlabhq/doc/install/installation.md at master · gitlabhq/gitlabhq · GitHub
こちらには gitlab.com ドメインで同様の内容が上がっていますね。そろそろ、GitHubから離れて独立してやっていくのでしょうか。 (にしてはgithubクローン過ぎて立ち振る舞い方微妙そうですが…)
ここに従えば基本的には完了です。以下、変更した箇所などをメモっていきます
バージョンなど
Ruby と gitは Ubuntu12.04 の標準リポジトリだと少し古い物が入ってしまうので、上記インストールガイドに従って新しい物を取得し入れ直します。
データベースはMySQLを選択しました。MySQLは、apt-get で得られた物をそのまま使っています。
設定ファイルで編集したところ
変更箇所だけ記載しています
4.GitLab shell にて
## /home/git/gitlab-shell/config.yml # Url to gitlab instance. Used for api calls. Should end with a slash. gitlab_url: "http://gitlab.example.jp/" #事前にお名前.comでAレコードを指定済
また、ここで、Redisがサーバ内でport 6379 を使って通信してることが記載されているので、メモっておきます。
6. GitLab : Configure it にて
## /home/git/gitlab/config/gitlab.yml ## 前略 ## GitLab settings gitlab: ## Web server settings host: gitlab.example.jp #登録したホストネーム port: 80 ## Email settings # Email address used in the "From" field in mails sent by GitLab email_from: gitlab@example.jp # Email address of your support contact (default: same as email_from) support_email: support@example.jp ## User settings default_projects_limit: 100 ## 私個人でしか使わないので増やしておきます。管理画面から増やすことも出来ます ## 後略
/home/git/gitlab/config/unicorn.rb
はいじっていません
Configure GitLab DB Settings にて
## /home/git/gitlab/config/database.yaml production: adapter: mysql2 encoding: utf8 reconnect: false database: gitlabhq_production pool: 10 username: git password: "pswd" #ダブルクオーテーションは残したまま、MySQLのセッティングの際にgit ユーザに登録したパスワードを記入します。 # host: localhost # socket: /tmp/mysql.sock
7.Nginx : Site Configuration にて
## /etc/nginx/sites-available/gitlab server { listen *:80; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea #listen gitlab.example.jp:80; server_name gitlab.example.jp; # e.g., server_name source.example.com;
引っかかったところ
- gitlab-shelからRedis へのアクセスが出来ていなかった
INPUT port 6379 を ACCEPT に変更。
- すべての作業後、admin@local.host でログインが出来なかった
そもそもgitlab上に、上記adminユーザが不在な感じだったので、6.GitLab : Initialize Database and Activate Advanced Features にて、production データベースの作成し直しを行った。
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
push時のSSHの設定
このサーバではSSHを受けるポートを標準の22とは異なる別のポートに変更していたので、gitlabにsshの公開鍵を登録した後、ローカルのコンピュータに .ssh/configure
を作って、sshアクセスの設定を行います。
Host gitlab.example.jp #登録名。何でも良い HostName gitlab.example.jp #アクセスするホストネーム。gitlabが実在する場所 User UserName #gitlabのユーザネーム IdentityFile ~/.ssh/ida_rsa #対応する秘密鍵 Port 99999 #自分のサーバのsshポート
参考にしたサイト → gitにsshで接続(ポートと秘密鍵を指定) - まじめにゆいがどくそん