Debian 9にGitLab Community Edition(CE)11.xをインストールする方法

GitHubがMicrosoftに買収されて以来、かなりの数の開発者が独自のコードリポジトリをgithub.comから代替の自己ホスト型ソリューションに移行することを計画しています。GitLab Community Edition(CE)が最も一般的な選択肢です。

洗練された柔軟なソリューションとして、GitLab CEはさまざまな方法で展開できますが、ここでは公式に推奨されている方法であるOmnibusパッケージのインストールのみを取り上げます。

前提条件

  • 4GB以上のメモリを備えた新しいVultr Debian 9 x64サーバーインスタンス。最大100人のユーザーにサービスを提供するには、8GB以上をお勧めします。そのIPv4アドレスがであるとし203.0.113.1ます。
  • sudoのユーザー
  • gitlab.example.com上記のインスタンスを指すドメイン。

注: 独自のサーバーインスタンスにデプロイする場合は、すべての例の値を実際の値に置き換えてください。

ステップ1:GitLab CEをホストするための基本的なタスクを実行する

SSHターミナルを起動し、sudoユーザーとしてDebian 9 x64サーバーインスタンスにログインします。

スワップパーティションを追加し、swappiness設定を微調整します

4GBのメモリを搭載したマシンにGitLab CE 11.xをデプロイする場合、スムーズに実行するために4GBのスワップパーティションをセットアップする必要があります。

sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

注: 別のサーバーサイズを使用している場合、スワップパーティションのサイズは異なる場合があります。

システムパフォーマンスの目的で、カーネルのswappiness設定を次のような低い値に構成することをお勧めします10

echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness

catコマンドの出力はになります10

マシンのホスト名と完全修飾ドメイン名(FQDN)を設定する

次のコマンドを使用して、マシンのホスト名gitlab、およびFQDN を設定しますgitlab.example.com

sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts

結果を確認できます。

hostname
hostname -f

ファイアウォールルールを設定する

ウェブサイトを実行するための適切なファイアウォールルールを設定します。

sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

上記の設定はすべてすぐに有効になります。次のコマンドを使用して、確認のためにそれらをリストします。

sudo iptables -L -n

iptable-persistentツールを使用して既存のすべてのiptablesルールをファイルに保存し/etc/iptables/rules.v4、すべてのiptablesルールを永続化します。

sudo apt install -y iptables-persistent

インストール中に、現在のIPv4 / IPv6ルールを保存するかどうかを尋ねられます。押してENTER二回に両方の現在のIPv4とIPv6のルールを保存する/etc/iptables/rules.v4/etc/iptables/rules.v6

後でIPv4ルールを更新しようとする場合は、以下を使用して更新を保存します。

sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

システムを更新する

sudo apt update
sudo apt upgrade -y && sudo shutdown -r now

システムが稼働中になったら、同じsudoユーザーとして再度ログインして次に進みます。

ステップ2:必要な依存関係をインストールする

GitLab CEをインストールする前に、必要な依存関係をインストールする必要があります。

sudo apt install -y curl openssh-server ca-certificates

また、Postfixを使用して通知メッセージを送信する場合は、Postfixをインストールする必要があります。

sudo apt install -y postfix

インストール中に、構成画面が表示される場合があります。

  1. を押しTAB<OK>、最初の画面でボタンをハイライトし、を押しますENTER
  2. を選択してInternet Siteを押しENTERます。
  3. 以下のためにmail nameフィールド、入力サーバーのFQDN、 gitlab.example.com、を押しENTER
  4. 他の画面が表示されたら、を押しENTERてデフォルト設定を受け入れます。

Postfixサービスを開始して有効にします。

sudo systemctl enable postfix.service
sudo systemctl start postfix.service

Postfixのファイアウォールルールを変更します。

sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'

Postfixをインストール/etc/postfix/main.cfしたら、実際のサーバー設定に従ってメインの設定ファイルを編集してPostfixを設定する必要があります。

注: 上記の手順に加えて、SMTPポート25でのVultrのデフォルトのブロックをキャンセルするには、サポートチケットを送信する必要があります。

または、別のメッセージングソリューションを使用する場合は、GitLab CEのインストール後にPostfixのインストールをスキップして、外部SMTPサーバーを使用することを選択します。

ステップ3:GitLab APTリポジトリをセットアップしてからGitLab CEをインストールする

システムにGitLab CE APTリポジトリをセットアップします。

cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

次に、GitLab CE 11.xをインストールします。

sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce

インストールには時間がかかる場合があります。

最後に、お気に入りのWebブラウザでをポイントしhttp://gitlab.example.com、インストールを完了するように求められたら、新しいパスワードを送信します。

今後、以下の認証情報を使用して管理者としてログインします。

  • ユーザー名: root
  • パスワード: <your-new-password>

ステップ4:Let's Encrypt SSL証明書を統合してHTTPSアクセスを有効にする

これで、サーバーインスタンスにGitLab CE 11.xが正常にインストールされ、ユーザーは既にHTTPプロトコルを使用してサイトにアクセスできます。セキュリティ上の理由から、Let's Encrypt SSL証明書を統合してGitLabサーバーへのHTTPSアクセスを有効にすることをお勧めします。

viエディターを使用してGitLab CE構成ファイルを開きます。

sudo vi /etc/gitlab/gitlab.rb

次の2行を見つけます。

external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts

それらを適宜交換してください:

external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']

保存して終了:

:wq!

更新された設定を使用してGitLab CEを再構成します。

sudo gitlab-ctl reconfigure

再構成にはしばらく時間がかかる場合があります。

再構成が完了すると、すべてのユーザーはGitLabサイトにアクセスするときにHTTPSプロトコルを使用する必要があります。

注: HTTPからHTTPSに切り替えた後、レガシーCookieによりGitLab 422エラーが発生する場合があります。Cookieをクリアすると、この問題が修正されます。



DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

CentOS 7、Ubuntu 16.04、Debian 9にGolang 1.8.3をインストールする方法

GolangはGoogleが開発したプログラミング言語です。汎用性、シンプルさ、信頼性のおかげで、Golangは最も人気のあるものの1つになりました

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

はじめにWeb分散オーサリングおよびバージョン管理(WebDAV)は、リモートでファイルを作成および変更するためのフレームワークを提供するHTTP拡張です。

Debian、CentOS、およびFreeBSDでSudoを使用する方法

Debian、CentOS、およびFreeBSDでSudoを使用する方法

LinuxおよびUnixのシステム管理者の間では、sudoユーザーを使用してサーバーにアクセスし、コマンドをルートレベルで実行することは非常に一般的です。sudの使用

DebianでのChrootのセットアップ

DebianでのChrootのセットアップ

この記事では、Debianでchroot jailをセットアップする方法を説明します。私はあなたがDebian 7.xを使っていると思います。Debian 6または8を実行している場合、これは機能する可能性があります、bu

DebianにPiVPNをインストールする方法

DebianにPiVPNをインストールする方法

はじめにDebianでVPNサーバーを設定する簡単な方法は、PiVPNを使用することです。PiVPNは、OpenVPNのインストーラーおよびラッパーです。それはあなたのための簡単なコマンドを作成します

Debian 9でソースからBrotliをビルドする方法

Debian 9でソースからBrotliをビルドする方法

別のシステムを使用していますか?Brotliは、Gzipよりも圧縮率が高い新しい圧縮方法です。そのソースコードはGithubで公開されています。ティ

Debian 9にNeos CMSをインストールする方法

Debian 9にNeos CMSをインストールする方法

別のシステムを使用していますか?Neosは、CMSとアプリケーションフレームワークをコアとするコンテンツアプリケーションプラットフォームです。このガイドでは、インストール方法を説明します

Debian JessieでCactiをセットアップする

Debian JessieでCactiをセットアップする

はじめにCactiは、RRDデータに完全に基づいたオープンソースの監視およびグラフ作成ツールです。サボテンを通じて、ほぼすべてのタイプのデビックを監視できます

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

CentOS 8、Ubuntu 18.04、Debian 10、Fedora 31にGolang 1.13をインストールする方法

Go(Golangとも呼ばれます)は、静的に型付けされ、コンパイルされた、Cのようなプログラミング言語で、Googleによって開発されました。シンプルさと多用途性により、b

Debian 8のFlash 5にPBXをインストールする

Debian 8のFlash 5にPBXをインストールする

PBX In A Flash 5(PIAF5)は、Vultr VPSを本格的なPBXに変えるDebian 8ベースのオペレーティングシステムです。次のような特徴があります。

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

Ubuntu 16.04およびDebian 9にTermRecordをインストールする方法

別のシステムを使用していますか?TermRecordはPythonで記述されたシンプルなオープンソースツールで、ターミナルセッションを簡単に共有できる自己完結型に保存できます。

Debian 9にMatomo Analyticsをインストールする方法

Debian 9にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

OSの選択:CentOS、Ubuntu、Debian、FreeBSD、CoreOS、またはWindows Server

この記事では、Vultrでテンプレートとして提供されるサーバーオペレーティングシステムの概要を説明します。CentOS CentOSはRHEL(Re

X-Cart 5をDebian 10にインストールする方法

X-Cart 5をDebian 10にインストールする方法

別のシステムを使用していますか?X-Cartは、数多くの機能と統合を備えた非常に柔軟なオープンソースのeコマースプラットフォームです。X-Cartのソースコードはホストです

MuninでDebianサーバーのステータスを監視する

MuninでDebianサーバーのステータスを監視する

Muninは、マシンのプロセスとリソースを調査する監視ツールであり、Webインターフェースを介して情報をグラフで表示します。フォローインを使用する

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

サーバーにIPアドレス範囲を追加する(CentOS / Ubuntu / Debian)

はじめにこのチュートリアルでは、CentOS、Debian、またはUbuntuを実行しているLinuxサーバーにIP範囲/サブネット全体を追加するプロセスについて説明します。プロセス

Debian 9のディアスポラでソーシャルネットワークを構築する

Debian 9のディアスポラでソーシャルネットワークを構築する

別のシステムを使用していますか?Diasporaはプライバシーを意識したオープンソースのソーシャルネットワークです。このチュートリアルでは、ディアスポラpoを設定する方法を学びます

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

Selfoss RSSリーダーをDebian 9 LAMP VPSにインストールする方法

別のシステムを使用していますか?Selfoss RSSリーダーは、無料でオープンソースのセルフホスト型のWebベースの多目的ライブストリーム、マッシュアップ、ニュースフィード(RSS / Atom)です。

UbuntuまたはDebianでApt-GetをIPv4またはIPv6に強制する

UbuntuまたはDebianでApt-GetをIPv4またはIPv6に強制する

ここVultrでは、デプロイ可能なすべてのVPSでIPv6を有効にするオプションがあります。しかし、これにより、一部のプログラムとコマンドはどちらか一方を優先する場合があります

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、