Gitlabは、Rubyで記述されたWebベースのgitリポジトリ管理アプリケーションです。 GitHubに似ており、プロジェクトWikiや問題追跡システムなどの機能が含まれています。 GitlabプロジェクトはDmitriyZaporozhetsによって開始され、ソフトウェアはIBM、StackExchange、NASA、Alibaba、Red Hatなどを含む100.000を超えるテクノロジー企業によって使用されています。Gitlabは、独自のgitサーバーを構築するための最良のソリューションの1つです。
Gitlabは、Ubuntu、Debian、CentOSなどの主要なLinuxディストリビューションでサポートされています。 Gitlabは、Debian / Ubuntu用の.debパッケージと、RhelおよびCentOS用の.rpmパッケージを提供します。パッケージには、Ruby、Redis、Nginx、Unicorn、PostgreSQLを含むすべての依存関係が含まれています。 Gitlabには、Community Edition(Gitlab CE)とEnterprise Edition(Gitlab EE)の2つのバージョンがあります。独自のgitサーバーを構築したい場合は、無料のCEエディションが必要なすべての機能を提供する可能性があります。
このチュートリアルでは、データベースシステムとしてPostgreSQLを使用し、Ubuntu15.04バージョンのWebサーバーとしてNginxを使用してGitlabCEをインストールする手順を順を追って説明します。 Rubyバージョン2.x.x、gitlab安定バージョン8.xを使用します。
- Ubuntu15.04-64ビット。
- CPU2コア-gitlabサイトから推奨 。
- 2 GBRAM/メモリ-gitlabサイトから推奨 。
- root権限。
Gitlabの依存関係をインストールする前に、ubuntuリポジトリから最新の更新を取得します。 SSHアクセスでubuntuサーバーにログインし、rootユーザーになってから、リポジトリを更新します。
sudo su
apt-get update
Gitlabには、メール通知を送信するためのredis-server、git-core、nodejs、postfixなどの多くのソフトウェア依存関係があります。単一のaptコマンドでインストールします:
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs git-core postfix
注:中 Postfixのインストール後、「インターネットサイト」を選択し、Enterキーを押してホスト名を確認します。
すべてのパッケージがインストールされている場合は、gitのバージョンを確認し、gitのバージョンが1.7.x以降であることを確認してください。
git --version
git version 2.1.4
Gitlabにはrubyバージョン2.x以降が必要です。このチュートリアルでは、rubyバージョン2.7を使用します。この段階では、rubyを手動で(ソースから)インストールする必要があります。以前にシステムにrubyをインストールしたことがある場合は、以下のコマンドで削除します。
apt-get remove ruby -y
次に、rubyを手動でインストールします。 rubyソースファイル用の新しいディレクトリを作成します:
mkdir -p /tmp/ruby && cd /tmp/ruby
curlコマンドを使用してrubyソースをダウンロードします:
curl -O --progress https://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.7.tar.gz
次に、ruby.tar.gzを確認して抽出し、rubyディレクトリに入ります。
echo 'e2e195a4a58133e3ad33b955c829bb536fa3c075 ruby-2.1.7.tar.gz' | shasum -c - && \
tar xzf ruby-2.1.7.tar.gz && \
cd ruby-2.1.7
Rubyをコンパイルしてインストールします:
./configure --disable-install-rdoc --prefix=/usr/local
make
make install
次のステップとして、Goをインストールする必要があります。 gitlab 8.0以降、gitHTTPリクエストはGoで記述されたgitlab-workhorseによって処理されます。 gitlab-workhorseをインストールするには、goコンパイラをダウンロードしてインストールする必要があります。
Go用の新しいディレクトリを作成します:
mkdir -p /tmp/go && cd /tmp/go
Goをダウンロード-64ビットバージョンを使用します:
curl -O --progress https://storage.googleapis.com/golang/go1.5.1.linux-amd64.tar.gz
確認して「/usr/ local /」ディレクトリに解凍します:
echo '46eecd290d8803887dec718c691cc243f2175fe0 go1.5.1.linux-amd64.tar.gz' | shasum -c - && \
sudo tar -C /usr/local -xzf go1.5.1.linux-amd64.tar.gz
次に、binディレクトリにGoのシンボリックリンクを作成します。
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
これで、RubyとGoがインストールされました。
ステップ4-新しいLinuxユーザーを作成してPostgreSQLデータベースを構成します
このステップでは、 "git"という新しいLinuxシステムユーザーを作成します ホームディレクトリ"/home/git"。 Gitlabは後でgitユーザーとして実行されます。
adduserコマンドを使用して新しいユーザーgitを作成します:
sudo adduser --disabled-login --gecos 'GitLab' git
次に、gitlab用にデータベースを構成します。 GitlabはMySQLとPostgreSQLをサポートしています。このチュートリアルでは、推奨されるデータベースタイプのPostGreSQLを使用します。
以下のaptコマンドを使用してPostgreSQLをインストールします。
sudo apt-get install -y postgresql postgresql-client libpq-dev
完了したら、PostgreSQLにログインし、「 git」という名前の新しいロール/ユーザーを作成します。 "gitlabの場合:
sudo -u postgres psql -d template1
CREATE USER git CREATEDB;
次に、「 gitlabhq_production」という名前のgitlab用の新しいデータベースを作成します "そしてデータベースをgituser/ roleに付与します:
CREATE DATABASE gitlabhq_production OWNER git;
次に、postgresqlシェルを終了し、作成したデータベースを使用して新しいロール/ユーザーをテストします。
\q
sudo -u git -H psql -d gitlabhq_production
「git」という新しいシステムユーザーが作成されました。
gitlabデータベース「gitlabhq_production」に付与されたpsotgreSQLの新しいロール/ユーザー「git」も作成されました。
「/etc/ redis」ディレクトリにあるredis構成ファイルを編集する前に、redis.conf.originalという名前のバックアップコピーを作成します。
cd /etc/redis/
cp redis.conf redis.conf.original
次に、vimエディターでファイル「redis.conf」を編集します。
vim redis.conf
45行目に移動し、値を 0に変更します 、RedisがポートではなくUNIXソケットでのみリッスンするようにしたいため:
Listen 0
次に、ファイルの最後に移動して、redisソケットとそのアクセス許可を追加します。
unixsocket /var/run/redis/redis.sock
unixsocketperm 777
ファイルを保存して終了します。
次に、「/ var / run」ディレクトリにredisソケット用の新しいディレクトリを作成し、ディレクトリの所有者と権限を調整します。
mkdir -p /var/run/redis
chown redis:redis /var/run/redis
chmod 755 /var/run/redis
redisソケットディレクトリに移動し、以下のコマンドを実行します:
cd /var/run/redis
if [ -d /etc/tmpfiles.d ]; then
echo 'd /var/run/redis 0755 redis redis 10d -' | sudo tee -a /etc/tmpfiles.d/redis.conf
fi
すべて完了したら、redisサーバーを再起動し、ユーザー「git」をグループ「redis」に追加します。
sudo service redis-server restart
sudo usermod -aG redis git
ディレクトリ「/home/ git」に移動し、GITリポジトリからgitlabをダウンロードします:
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-2-stable gitlab
注:
sudo -u git -H clone command=ユーザー"git"としてコマンド"clone"を実行します。
-GitLabを構成します
gitlabディレクトリに移動してgitlabを設定します:
cd /home/git/gitlab
gitlab構成ファイルgitlab.yml.exampleの例を「config」ディレクトリのgitlab.ymlにコピーします。
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
gitlabディレクトリで、サブディレクトリ「logandtmp」の所有者をgitユーザーに変更します。
sudo chown -R git {log,tmp}
次に、他のディレクトリの権限を変更して、gitlab(gitユーザー)がそれらに書き込めるようにします。
mkdir -p public/uploads/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX {tmp,tmp/pids,tmp/sockets,builds,shared/artifacts}
sudo chmod -R 0750 public/uploads
ユニコーンとラックの攻撃構成の例をコピーします:
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
次に、以下のgitコマンドを使用してgitユーザーのグローバル設定を構成する必要があります。
sudo -u git -H git config --global core.autocrlf input
そして、ファイル「resque.yml」をconfigディレクトリにコピーしてredis接続を構成し、vimで編集してredis構成を変更し、ソケットでリッスンするようにredisを構成したのでunixソケットを使用する必要があります。
sudo -u git -H cp config/resque.yml.example config/resque.yml
次のステップはGitLabDB設定を構成することで、データベースにpostgreSQLを使用します。構成ファイルをコピーして、アクセス許可を変更します:
sudo -u git -H cp config/database.yml.postgresql config/database.yml
sudo -u git -H chmod o-rwx config/database.yml
sudo gem install bundler
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos
コマンドが終了するまで待ちます。
Gitlab-shellは、GitlabのSSHアクセスとリポジトリ管理を可能にします。デフォルトの構成を使用するため、編集する必要はありません。以下のコマンドを実行してgitlab-shellをインストールします:
sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.8] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production
REDIS_URL =本番環境でのredis構成には必ずunixソケットを使用してください。
-gitlab-workhorseをインストールします
Gitlab-workhorseは、GoでコーディングされたユニコーンからのGitHTTPトラフィックを処理する小さなデーモンです。クローンを作成してインストールします:
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git
cd gitlab-workhorse
sudo -u git -H git checkout 0.4.2
sudo -u git -H make
-データベースを初期化し、gitlab機能をアクティブ化します
gitlabインストールディレクトリに移動し、以下のコマンドを実行します:
cd /home/git/gitlab
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
"はい"と入力します テーブルを作成します。
結果は、ユーザー名が「 root」のgitlabアカウントになります "とパスワード"5iveL!fe "。
gitlab initスクリプトをgitlabインストールディレクトリからコピーし、update-rc.dコマンドを使用して起動時に開始するgitlabを追加します。
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21
次に、ログ管理用にgitlablogrotate構成をコピーします。
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab
そして、アプリケーションのステータスを確認し、アセットをコンパイルします:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
エラーがない場合は、次のコマンドでgitlabを起動します:
/etc/init.d/gitlab start
ブラウザリクエストを処理するためのフロントエンドウェブサーバーとしてNginxを使用します。次のaptコマンドでインストールするだけです:
apt-get install nginx -y
gitlabディレクトリからNginx仮想ホスト構成をコピーし、デフォルトのNginxデフォルト仮想ホストを削除します。
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo rm /etc/nginx/sites-enabled/default
vimで設定ファイルを編集します:
sudo vim /etc/nginx/sites-available/gitlab
HTTPセクションのListen行とServerName行の値を変更します:
Listen *:80; #Port Default
#Listen 0.0.0.0:80; #comment one of this
ServerName my.gitlab.me; #Gitlab FQDN/Domain
保存して終了します。
gitlab仮想ホストをアクティブ化し、nginxを起動して、gitlabを再起動します:
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab>
service nginx start
/etc/init.d/gitlab restart
これで、 my.gitlab.meのブラウザでgitlabにアクセスできます。 (サーバー用に選択したホスト名)そしてデフォルトのユーザー名 " root でログインします "とパスワード"5iveL!fe "。
まず、gitlabのデフォルトのパスワードを自分のパスワードに置き換える必要があります。
これで、ubuntu15.04にPostgreSQLとNginxを搭載したGitlab8が正常にインストールされました。
注:
「502badgateway」などのエラーがある場合は、ユニコーンのタイムアウトを増やすか、ハードウェアをアップグレードして修正してください。 gitlabインストールディレクトリに移動し、vimでunicorn.rbファイルを編集します:
sudo -u git -H vim config/unicorn.rb
Gitlabのトラブルシューティングについて詳しくは、https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guideをご覧ください。
Gitlabは、Rubyで記述されたオープンソースのgitリポジトリ管理ソフトウェアです。これは、独自のgitサーバーを構築するための最良のソリューションの1つです。 GitlabはDmitriyZaporozhetsによって作成され、Gitlab CE(Community Edition)とGitlab EE(Enterprise Edition)の2つのバージョンで利用できます。 Gitlabは、100.000以上のテクノロジー企業で使用されている、美しいインターフェースを使用して簡単にインストールおよび構成できます。これは、開発者が他の開発者と一緒にアプリケーションを構築するのに役立つ非常に強力なソフトウェアです。