独自のプライベートGitHubクローンとしてGitLabを設定する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。
代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。
序章
GitとGitHubは、多くのGitリポジトリとそれに関連する権限を簡単に管理および管理できる優れたツールです。 これは、オープンソースソフトウェアを作成している場合はすばらしいことですが、クローズドソースソフトウェアを作成している場合は、コードをサードパーティのサーバーに信頼したくない場合があります。 では、制御外のサーバーでgitリポジトリをホストせずに、GithubやBitBucketなどの制御、柔軟性、使いやすさをどのように実現できるでしょうか。
GitLabに入ります。 GitLabは、GitHubを使用してGitリポジトリにシンプルで強力なWebベースのインターフェイスを提供します。これは、独自のクラウドサーバーでホストし、必要に応じてアクセスを制御できます。リポジトリのサイズは、サーバーのストレージ容量によってのみ制限されます。 このチュートリアルでは、DigitalOceanVPSをGitLabサーバーとして設定する方法について説明します。
注:このチュートリアルでは、ソースからGitLabをインストールする方法について説明します。 最初に書かれたとき、これが唯一のオプションでした。 今日では、GitLabの「オムニバス」パッケージを使用して起動して実行する方がはるかに簡単です。 アプリケーションイメージを使用して、ワンクリックでDigitalOceanでGitLabドロップレットを起動することもできます。
このチュートリアルは、新しいUbuntu12.04VPSを使用していることを前提としています。 GitLabを機能させるために必要なすべてのソフトウェアをインストールします。 既存のVPS(ドロップレット)または別のLinuxディストリビューションを使用している場合、特に互換性のないPythonバージョンとRubyバージョンで問題が発生する可能性があります。 開始する前に、Ruby2.0とPython2.7がインストールされていることを確認してください。
最初のステップは、いくつかの必要なパッケージをインストールすることです。
sudo apt-get update
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
Ruby 1.8がインストールされていないことを確認してください(デフォルトのUbuntu 12.04 VPSではインストールされません)。
Ruby 2.0をインストールします(これにはしばらく時間がかかります):
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
cd ruby-2.0.0-p247
./configure
make
sudo make install
終了したら、次の手順を実行して、Ruby 2(1.8ではない)がインストールされていることを確認できます。
ruby --version
出力が次のようになっている場合は、問題ありません。
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]
次に、Bundlergemをインストールする必要があります。
sudo gem install bundler --no-ri --no-rdoc
そして、GitLabが使用するgitユーザーを作成します。
sudo adduser --disabled-login --gecos 'GitLab' git
GitLabシェルのインストール
次のコマンドを使用してGitLabシェルをダウンロードします。
cd /home/git
sudo -u git -H git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
sudo -u git -H git checkout v1.7.0
sudo -u git -H cp config.yml.example config.yml
これで、GitLabShell1.7.0のコピーと例ができました。 config.yml
行く準備ができています。
このVPSでドメイン名を指定している場合は、時間をかけて編集する必要があります config.yml
このドメインを使用します。
nano config.yml
上部近くに次のような線が表示されます。
gitlab_url: "http://localhost/"
変更 http://localhost/
ドメイン名と一致する部分。 したがって、ドメインが www.YOURDOMAIN.com の場合、行は次のようになります。
gitlab_url: "http://www.YOURDOMAIN.com/"
これで、GitLabシェルインストーラーを実行できます。
sudo -u git -H ./bin/install
データベースの設定
MySQLバックエンドを使用するようにGitLabをセットアップします。 最初のステップは、以下のコマンドを使用してMySQLをインストールすることです。 インストールプロセス中に、MySQLルートパスワードを設定するように求められます。 好きなように設定しますが、次の手順で必要になるので書き留めておきます。
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
これでMySQLがインストールされ、rootパスワードが前の手順で選択した値に設定されます。 次に、GitLabが使用するMySQLユーザーを作成する必要があります。 これを行うには、最初に必要なSQLクエリを一時ファイルに保存します。 タイプ:
nano tempfile
以下に貼り付けて、 $password
実際のパスワードの最初の行。 これはGitLabのデータベースパスワードになるため、このパスワードを追跡します。
CREATE USER 'gitlab'@'localhost' IDENTIFIED BY '$password';
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
次に、ファイルを保存し、次のコマンドを実行して(プロンプトの最初のステップからMySQLルートパスワードを入力)、MySQLにクエリを実行させます。
cat tempfile | mysql -u root -p
新しいMySQLユーザーが正常に作成されたことを確認するために、にログインしてみましょう。 mysql
を使用して gitlab
ユーザー:
mysql -u gitlab -p
いくつかのテキストの後に:が続く場合:
mysql>
その後、すべてが正常に機能しました。 先に進み、次のように入力します。
exit;
で mysql>
MySQLを終了するように求め、 tempfile
パスワードが含まれているため、ファイル:
rm tempfile
この時点で、GitLabを正常にインストールするようにすべてが構成されているので、インストールを続行しましょう。
cd /home/git
sudo -u git -H git clone https://github.com/gitlabhq/gitlabhq.git gitlab
cd /home/git/gitlab
sudo -u git -H git checkout 6-0-stable
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
GitLabシェルをセットアップしたときと同じように、VPS用にドメインを構成している場合は、 config.yml
そのドメインを使用します。
sudo -u git -H nano config/gitlab.yml
ファイルの上部近くに、次のようなテキストブロックが必要です。
gitlab:
## Web server settings
host: localhost
port: 80
https: false
変更 host:
ドメイン名に一致するエントリ。 ドメインがwww.YOURDOMAIN.comの場合、次のようになります。
gitlab:
## Web server settings
host: www.YOURDOMAIN.com
port: 80
https: false
また、いくつかのLinuxファイルのアクセス許可を設定し、 git
ユーザーのGit構成、およびいくつかのGitLab構成とディレクトリを設定します git
ユーザー:
cd /home/git/gitlab
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
sudo -u git -H mkdir public/uploads
sudo chmod -R u+rwX public/uploads
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab@localhost"
sudo -u git -H git config --global core.autocrlf input
sudo -u git cp config/database.yml.mysql config/database.yml
次に、GitLabに使用するように指示する必要があります gitlab
以前に設定したMySQLユーザー。 これを行うには、 config/database.yml
ファイル:
sudo -u git -H nano config/database.yml
上部近くに「 production:
含まれます username
と password
エントリ。 デフォルトでは、次のようになります。
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: gitlabhq_production
pool: 10
username: root
password: "secure password"
変更 username
と password
以前に設定したGitLabデータベースユーザーに一致するエントリ。 したがって、GitLabMySQLユーザーに使用したパスワードが $password
編集されたファイルは次のようになります。
production:
adapter: mysql2
encoding: utf8
reconnect: false
database: gitlabhq_production
pool: 10
username: gitlab
password: "$password"
ファイルを保存すると、サーバーの他のユーザーがパスワードを見ることができないようにファイルを保護します。
sudo -u git -H chmod o-rwx config/database.yml
さらにいくつかの必要なgemをインストールしましょう(この手順には時間がかかる場合があります)。
cd /home/git/gitlab
sudo gem install charlock_holmes --version '0.6.9.4'
sudo -u git -H bundle install --deployment --without development test postgres aws
そして、いくつかの最終セットアップを実行します(続行するかどうかを尋ねられたらyesと入力します):
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
これが終了すると、画面に多くの情報が印刷され、最後に表示されます Administrator account created
管理者の資格情報を提供します。 次のようになります。
Administrator account created:
[email protected]
password......5iveL!fe
次に、サーバーが起動するたびに起動するようにGitLabを設定しましょう。
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
sudo update-rc.d gitlab defaults 21
以下を実行して、すべてが機能していることを確認します。
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
エラーメッセージがなく、そのコマンドによって出力されたデータが正しく表示されている場合は、GitLabのインストールが機能しています。 ほとんど終わった! 次のコマンドでGitLabを起動します。
sudo service gitlab start
NGINXの設定
GitLabはデフォルトでnginxWebサーバーと連携します。 Apacheなどの独自のWebサーバーを既にセットアップしている場合、これらの手順は適用されません。 他のWebサーバーでGitLabを構成する方法については、これらのレシピを確認してください。 それ以外の場合は、次の手順に従って、GitLabで動作するようにnginxをインストールおよび構成します。
sudo apt-get -y install nginx
cd /home/git/gitlab
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
編集 /etc/nginx/sites-available/gitlab
ドメイン名を使用するには:
sudo nano /etc/nginx/sites-available/gitlab
ファイルの先頭から少し離れると、エントリが表示されます server_name
に設定されています YOUR_SERVER_FQDN
. 前の手順と同様に、 YOUR_SERVER_FQDN
あなたのドメイン名で。 元のファイルは次のようになります。
server {
listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
server_name YOUR_SERVER_FQDN; #
ドメインがwww.YOURDOMAIN.comの場合は、次のように変更する必要があります。
server {
listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
server_name www.YOURDOMAIN.com; #
そしてnginxを再起動します:
sudo service nginx restart
出来上がり! 完了です。 上記の管理者ログインとパスワードを使用して、WebブラウザーからGitLabに接続します(デフォルトユーザー: [email protected]
、 合格: 5iveL!fe
)そしてGitLabをお楽しみください。
512MBのVPSを使用している場合、GitLabのメモリ要件により、 502 Bad Gateway
エラー。 その場合は、以下をお読みください…
トラブルシューティング
502不正なゲートウェイエラー
完璧な世界では、GitLabは完全に実行されます。 残念ながら、GitLabには驚くほど高いメモリ要件があるため、512MBのVPSでは、最初のサインイン時にチョークすることがよくあります。 これは、GitLabが最初のログインで大量のメモリを使用するためです。 Ubuntu 12.04 VPSにはメモリを超えるとスワップスペースがないため、GitLabの一部が終了します。 言うまでもなく、GitLabの一部が予期せず終了した場合、GitLabは正常に動作しません。
最も簡単な解決策は、少なくとも最初のサインインのために、VPSにより多くのメモリを割り当てることです。 それを望まない場合、別のオプションはスワップスペースを増やすことです。 DigitalOceanには、これをここで利用できるようにする方法に関する完全なチュートリアルがすでにあります(ただし、512MB以上のスワップを追加することをお勧めします)。 簡単な修正は、以下を実行することです。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024k
sudo mkswap /swapfile
sudo swapon /swapfile
これでスワップファイルが実行されてアクティブになりますが、起動するたびにアクティブになるように設定するには、編集する必要があります /etc/fstab
:
sudo nano /etc/fstab
以下をファイルの最後に貼り付けます。
/swapfile none swap sw 0 0
次に、VPSを再起動します。
sudo restart
VPSが再起動するまで1〜2分待ってから、GitLabを再試行してください。 初めて機能しない場合は、Bad Gatewayページを数回更新すると、すぐにGitLabログインページが表示されます。
参照: