GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu15.04にPostgreSQLとNginxを使用してGitlabをインストールする方法

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権限。
ステップ1-Linuxシステムを更新する

Gitlabの依存関係をインストールする前に、ubuntuリポジトリから最新の更新を取得します。 SSHアクセスでubuntuサーバーにログインし、rootユーザーになってから、リポジトリを更新します。

sudo su
apt-get update
ステップ2-Gitlab依存関係をインストールする

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
ステップ3-RubyandGoをインストールする

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」も作成されました。

ステップ5-Redisサーバーを設定する

「/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
ステップ6-GitLabをインストールする

ディレクトリ「/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
-Gemをインストールします
sudo gem install bundler
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

コマンドが終了するまで待ちます。

-Gitlabシェルをインストールします

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 "。

ステップ7-初期化スクリプトを構成する

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

ステップ8-Nginxをインストールして構成する

ブラウザリクエストを処理するためのフロントエンドウェブサーバーとして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以上のテクノロジー企業で使用されている、美しいインターフェースを使用して簡単にインストールおよび構成できます。これは、開発者が他の開発者と一緒にアプリケーションを構築するのに役立つ非常に強力なソフトウェアです。


Ubuntu
  1. Ubuntu16.04にPostgreSQLとNginxを使用してMattermostをインストールする方法

  2. Ubuntu15.04にPostgresqlとphpPgAdminをインストールする方法

  3. Ubuntu11.10にPHP5とMySQLを使用してNginxをインストールする方法

  1. Ubuntu16.04でPostgreSQLを使用してRubyonRails(RoR)をインストールする方法

  2. Ubuntu16.04にNginxでMediaWikiをインストールする方法

  3. Ubuntu18.04にNginxとLetsencryptを使用してMagento2をインストールする方法

  1. Ubuntu15.10にNginxを使用してMagentoをインストールする方法

  2. Ubuntu 15.10にNginx、PHP-FPM、SSLを使用してDrupal8をインストールする方法

  3. Ubuntu15.10にNginxでMailpileをインストールする方法