CentOS7 に gitlab 7.3.0をインストール

CentOS7 に gitlab 7.3.0をインストール

CentOS7 に gitlab 7.3.0をインストール

CentOS7 に gitlab 7.3.0をインストール へのコメントはまだありません

はじめに

Gitのソースコードをインターネット上で共有したいけれど、セキュリティもろもろの関係からインターネット上に置くのがためらわれる場合など、GitHubライクなweb管理機能のあるGitlabを利用することができます。他にもGitHubをクローンしたようなものもありますが、これが一番メジャーそうだったので、今回はCentos7にGitlab 7.3.0をインストールする方法をご紹介します。

仮定

ご自身のドメインを myhost.jp と仮定し、GitLabをドメインのサブフォルダ myhost.jp/gitlab で運用するものとします。

git ,curl インストール

git ユーザー追加

これがベストな方法か、少々疑問ですが、作業はすべて新規に作成するgit ユーザーで行ってください。

gitユーザーのパスワードはお任せします。

gitユーザーをsudo可能なユーザーに加えます。

remi,epelリポジトリー追加

Redisなどのインストールに remiとepelのリポジトリー情報が必要なので、rpmダウンロード&インストール

Mysql(mariadb)関連モジュールインストール

Mysql rootパスワード設定

Redis,関連モジュールインストール

mysql,redis起動、自動起動設定

Rubyインストール

mysql用のライブラリーのコンパイルに必要なものインストール

gemrc作成

これはRubyのお作法みたいなものなので気にせずにこの通りやってみてください。

gem インストール時にドキュメントインストールなどを省略します。

Railsインストール、ついでにMysql2のgemもインストール

gitlab-shellインストール

以下のURL指定の部分を調整(gitlabをホストするURLを記述)

インストール実行

gitlabインストール

githubからソースをクローンします。(ダウンロードかなり時間食います。合計70mbぐらい)

ホスト名設定(gitlabをホストするURLを記述)、相対ルートの設定

相対パスの設定

Mysqlのユーザ名、パスワードを設定(Productionモード)

バンドルインストール(かなり長い時間を要します)

データベース作成

英語で、前のデータが失われるよ。新規のデータをseedから作るけどいい?みたいなメッセージが出ますが、 yes と入力して続行してください。

エラーが出てうまく行かない場合、以下のgemを入れてみてください。

最後に出力される、ログイン名とパスワードをメモっておきます。

login………root
password……5iveL!fe

passengerのgemインストール

コンパイル前にチェックが走り、curl-config が無いよ的なエラーが表示された場合は、

他のエラーの場合は、ご自身でお調べください。
エラーが消えるまで以下を繰り返してみる。

nginxインストール(passenger連携用にコンパイル)

以下のコマンドを打つといろいろ出てきますが、適当に選択してインストールしてください。
/opt/nginx 配下にnginxがインストールされます。

/opt/nginx フォルダ権限調整

ファイアーウォール設定

動作確認の前にファイアーウォールがデフォでかかっているのでhttpを通すように変更する。

まず確認。

sshとdhcpしか有効じゃないので、httpを追加する。
その前にどんなサービスが定義されていて、今どれが publicで有効かチェックする方法。

nginxなので httpサービスを追加してみる

ファイアーウォール再起動

httpが有効になっているか確認

nginxの設定確認と、起動

-t オプションで設定ファイルをチェックし、OKならば、一旦起動してみて、ブラウザーで http://localhost として、nginxのトップページが開ければOK。

nginx起動

停止は

として、nginx: master process となるプロセスIDを殺すと止めることができます。

nginx passenger連携設定

passengerの場所は、インストール時に自動的に組み込まれているので、その他の項目の調整。

http://www.myhost.jp/gitlab で公開する。

以下の部分を追記

nginx用 サービス起動ファイル作成

$ sudo nano /usr/lib/systemd/system/nginx.service

デーモンリロード、nginx起動

nginx動作確認

サーバーのIPにブラウザーで接続で nginxのwelcompageが表示されれば、nginxの動作はOK

http://192.168.x.x

nginx(nobody)ユーザーをgitグループに加える

nginxが /home/git/repositories フォルダへアクセスする必要があるので権限を調整します。

グループのアクセス権がないと /home/git 配下のファイルにアクセスできないようなので
gitのhome ディレクトリの権限調整(700 ->> 710)

SELinuxを無効化

一旦リブートしてください

アセットプリコンパイル

sidekiqデーモン起動の設定

起動ファイルを微調整します。

/usr/bin/bundle となっているところを /usr/local/binに変更

起動ファイルのコピー&権限変更

sidekiq(Gitlab)サービスの起動、自動起動設定

動作確認

ブラウザーでGitlabのURLにアクセスしてみてください。かなり長時間待たされると思いますが、気長に待ちましょう。

http://myhost.jp/gitlab

Screenshot-GitLab - Chromium

データベース作成時にメモっておいたIDとパスワードでログインしてみる

login………root
password……5iveL!fe

プロジェクト(リポジトリー)の作成

ここからはGUIなので、操作は簡単です。
新規プロジェクトを作成してみます。

Screenshot-Admin area | GitLab - Chromium

Screenshot-New Project | GitLab - Chromium

実際にリポジトリーが作成されているか確認

もし正しく作成されていない場合は、何らかの不具合が考えられますので、Gitlabを再起動しましょう。(再起動後、再度ブラウザーからプロジェクト作成を行い、確認してみてください)

gitのベアリポジトリ再作成

GUIから作ったgitのbareリポジトリーがなにかおかしいようです。
リポジトリフォルダにある全ファイルを一旦消去して、コマンドラインでbareリポジトリーを再構築します。

クライアントからファイルを追加しリポジトリーにPushしてみる

適当なフォルダを作成し、そこでGitリポジトリを作成。新規にREADMEというファイルを作成し、GitlabにPushしてみます。
(originの URLは ssh接続なので、host名:repositories/xxxx/abc.git)

repositoriesはいらないはずなんですが、これを付けないとうまく動作しません。
詳しいところは良く分かっていませんが、これで我慢してください。

Screenshot-mito - abc | GitLab - Chromium

ブラウザーでコミット内容確認

Screenshot-mito - abc | GitLab - Chromium-1

以上です。お疲れさまでした。


About the author:

Related Posts

Leave a comment

Back to Top