CentOS8.1ビルドGitlabサーバーの詳細なチュートリアル

GitlabとGithubの違いについてはあまり説明しません。一言で言えば、Gitlabは企業の民営化のために展開されたGitサーバーであり、Githubはインターネット用のオンラインGitサーバーです。

Githubはオープンソースプロジェクトに無料で使用できますが、Gitlabは有料ですか?分散バージョン管理機能Gitlabも無料で利用でき、コミュニティバージョン(Gitlab CE)がすべての人に提供されます! Gitlabは現在強力(2020)であり、独自のDevOpsランディングソリューション(生産性を向上させるための武器)のセットを備えていますが、機能のこの部分は有料のフラッグシップ/エンタープライズバージョン(Gitlab EE)で提供されます!民営化された倉庫を建設するGithubの機能も課金されるのと同じように、それは正常です!

この記事の内容はシンプルで簡単で、車の速度は速くありません。座りすぎたり、安定しすぎたりする必要はありません。それでは、Gitlabサーバーを「ゼロ」から正式に構築しましょう。

まず、バイドゥでギブラブの公式ウェブサイトを見つけて、最初にホームページにアクセスしてください!深く入りすぎないでください! (将来的には、表示されるインターフェイスが異なる可能性があります。時代は進んでおり、Webサイトは常に更新されています!ここにある一連のスクリーンショットは2020.06のものです)

この最初の画面の広告とデザインを見てください。テクノロジーと魅力→DevOps、CI、CD、各キーワードは、中国のさまざまなインターネット企業がR&Dシステムの変革に取り組んでいる現在の方向性(2020年)です。 「Gitlabを無料でお試しください」という大きな黄色のボタンは、→「Gitlabを無料でお試しください」、つまりトライアル後に課金される主力のGitlabEEへの入り口を意味するものではありません。ホームページを見回したところ、伝説的な無料コミュニティバージョンのGitlabCEの入り口が見つかりませんでした。上部のナビゲーションメニュー項目「InstallGitlab」に移動して見てみましょう。

また、30日間の試用期間があるフラッグシップバージョン(Enterprise Edition)の入場とインストールの手順でもあります!ただし、「GitLabを実行するには4GB以上の空きRAMを推奨する」という重要な情報があります。GitLabを実行するには4GB以上の空きRAMを使用することをお勧めします。仮想マシンをインストールするときやサーバーを選択するときは注意が必要です。オペレーティングシステム用のスペースがまだ残っているため、少なくとも4GB以上、できれば6GB以上! CentOS 8のGitlabインストール手順をクリックして、必要なコミュニティバージョン(GitlabCE)があるかどうかを確認しましょう。

一見、まだそこにないように見えますが、CentOS 8でのインストール手順と方法が拡張されています!次に、CentOS 8にインストールする方法を確認します。確認した後、最後に見つけたものは次のとおりです。

インストール手順の最後に、「CEまたはEE」という短いリンクがあります。CEバージョンのエントリがあるようです。クリックしてください。

新しいページの前のいくつかの段落では、フラッグシップバージョン(エンタープライズ向けのGitlab EE)を使用する利点について説明しています...最後まで、無料のコミュニティバージョン(GitlabCE)のリンク「InstallGitLab Community Edition」が配置され、非常に深く隠されていました。私は他の人が知っているのではないかと心配しています!クリックし続けます:

いよいよここにあります。これで、ページ内のブラウズアドレスバーの内容とインストール手順がCEバージョンになりました(将来この記事を読む学生のために、Gitlab公式ウェブサイトがその時点で改訂されている可能性があります。コミュニティバージョン(GitlabCE)の入り口の場所とアドレス)変更される可能性がありますが、Gitlabの無料版がある限り、公式ウェブサイトのどこかに間違いなく入り口があります!)。

Gitlab CEバージョンのインストール手順を見つけました。いつものように、新しいCentOS 8.1仮想マシンを準備しました。公式の推奨に従って、この仮想マシンのメモリとハードディスクはより大きく設定されています。

仮想マシンの準備ができたら、GitlabCEの公式バージョンのインストール手順に従ってインストールできます。実際には非常に簡単です。本格的な計算には3つのステップしかありません(私はrootなので、sudoは必要ありません)。

手順1:policycoreutils、openssh-server、openssh-clientsコンポーネントをインストールして有効にし、ファイアウォールに対して開きます(ファイアウォールをリロードすることを忘れないでください)。

# dnf install -y curl policycoreutils openssh-server openssh-clients
# systemctl enable sshd
# systemctl start sshd
# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl reload firewalld

実際、電子メール通知に関連するPostfixコンポーネントは、当面はインストールして構成する必要はありません。これは、後で外部SMTPサーバーを構成するために配置できます。

# dnf install postfix
# systemctl enable postfix
# systemctl start postfix

ステップ2:curlツールを使用して、RPMインストールパッケージのGitlabCEバージョンのウェアハウス構成スクリプトをダウンロードして構成します(仮想マシンがネットワークに接続できることを確認してください。これはRPMインストールパッケージのウェアハウス構成スクリプトのみであり、実際のインストールパッケージではないことに注意してください)

# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

ステップ3:GitlabCEバージョンをインストールし、外部アクセス用のURLアドレスを指定します。ここで注意してください:外部アクセスURLアドレスは、カスタムドメイン名を使用します。ドメイン名が実際に存在しなくても、問題ありません。さらに、サーバーにhttps関連の証明書がない場合は、httpsを使用せず、httpプロトコルを直接使用してください。クライアントを使用する場合は、HOSTでマッピングを行うことができます。もちろん、実際のドメイン名を使用することをお勧めします。ドメイン名を使用して外部アクセスURLアドレスを指定するのはなぜですか?後でGitlabを使用するときに、これが賢明な選択であることがわかるからです。

# EXTERNAL_URL="http://gitlab.xgclassroom.com" dnf install -y gitlab-ce

この時点で、2番目のステップで構成した外部ステーションから最大700Mのgitlab-ceパッケージをダウンロードするのがいかに難しいかがわかります。10分以上かかると推定されています。私は驚きません、驚きません!もちろん、国際ネットワークVPNをお持ちの場合は、私が言わなかったように扱ってください。 ! !

3番目のステップのカタツムリの速度は耐えられません。Ctrl+ Cはダウンロードプロセスを中断します。別の方法を試してください。

gitlab-ceのrmpパッケージを自分で他の場所からダウンロードし、サーバーにアップロードしてインストールします。オンラインインストールには国内のミラーアドレスを使用します。

ここでは、オンラインインストールに国内のミラーアドレスを使用する2番目の方法について説明します。ここでは、より包括的な使用方法を提供するため、清華大学が提供するミラーサーバーを選択します(https://mirror.tuna.tsinghua.edu.cn / help / gitlab-ce /)、GitlabCEバージョンをインストールするための指示に従います(次の手順は上記の2番目の手順から始まります)。

新しい2番目のステップ:viまたはvimを使用して、yumソース構成ファイル/etc/yum.repos.d/gitlab-ce.repoを作成および編集します。

vim /etc/yum.repos.d/gitlab-ce.repo

次のyumソース構成情報を入力します。

[ gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

新しい3番目のステップ:yumパッケージマネージャーを使用してGitlabCEバージョンをインストールする

# yum makecache
# yum -y install gitlab-ce

「新しい第3ステップ」には、元の第3ステップよりも何かが欠けていることに気づきましたか?注意深い学生は、Gitlabサーバーの外部アクセスアドレス(EXTERNAL_URL)が構成されていないことを発見したに違いありません。心配しないでください。Gitlabがインストールされた後、それに合わせます。国内のミラーイメージは比較的高速で、数分以内にダウンロードしてインストールし、怒っているキツネの頭のアイコンが表示されます!

では、「新しい3番目のステップ」で欠落しているGitlabサーバーの外部アクセスアドレス(EXTERNAL_URL)を入力します。どこで構成すればよいですか? Linuxサーバーのさまざまなディレクトリに精通している人なら誰でも推測できるはずです。Gitlabはユニバーサルバージョン制御ソフトウェアであり、構成ファイルもLinuxの規則に従って/ etcディレクトリに配置する必要があります。 cdを使用して/ etcディレクトリに移動し、確認するか、ls / etc / gitlを使用してもう一度タブを押して確認してください。

# ls /etc/gitlab/
gitlab.rb

案の定、Gitlab構成ファイルがあります! catコマンドを使用して、内容が正常ではなく、目が見えないことを確認してください。次に、grepコマンドを使用して、最初に外部アクセスアドレス(EXTERNAL_URL)を含む構成コンテンツを除外します。

# grep -i 'EXTERNAL_URL'/etc/gitlab/gitlab.rb 
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.example.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url']= nil # Defaults to external_url +'/api/v4'
# gitlab_pages['auth_redirect_uri']= nil # Defaults to projects subdomain of pages_external_url and +'/auth'
# gitlab_pages['gitlab_server']= nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as`external_url`,
# For example,if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

非常に良いです。外部アクセスアドレス(EXTERNAL_URL)に関連するコンテンツが非常に多いことを確認してください。実行する前に、cpコマンドを使用して/etc/gitlab/gitlab.rbファイルをバックアップしてください。このリスクが高い直後に文字列を置き換える必要があるためです。オペレーティング!準備して!

# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
# ls /etc/gitlab/
gitlab.rb gitlab.rb.bak

最後に、lsがバックアップが成功したことを確認したら、開始できます。

次に、sedコマンドを使用して、/ etc / gitlab /gitlab.rbファイルのhttp://gitlab.example.comをhttp://gitlab.xgclassroom.comに置き換えます。

sedコマンド文字列の置換形式:sed -i "検索するフィールドは&gに置き換えられます"ファイル名、-iはインプレース編集、つまり編集とインプレース変更を意味します。パラメーターの先頭のsは検索を意味します。 、削除の場合はdに置き換えることができ、最後のgはグローバル、つまり全文検索を意味します。

# sed -i "s#http://gitlab.example.com#http://gitlab.xgclassroom.com#g"/etc/gitlab/gitlab.rb

その後、grepコマンドを使用して、外部アクセスアドレス(EXTERNAL_URL)に関連するコンテンツをフィルタリングします。

# grep -i 'EXTERNAL_URL' gitlab.rb 
##! For more details on configuring external_url see:
##! EXTERNAL_URL will be used to populate/replace this value.
external_url 'http://gitlab.xgclassroom.com'
# registry_external_url 'https://registry.example.com'
# pages_external_url "http://pages.example.com/"
# gitlab_pages['artifacts_server_url']= nil # Defaults to external_url +'/api/v4'
# gitlab_pages['auth_redirect_uri']= nil # Defaults to projects subdomain of pages_external_url and +'/auth'
# gitlab_pages['gitlab_server']= nil # Defaults to external_url
# mattermost_external_url 'http://mattermost.example.com'
# When the registry is automatically enabled using the same domain as`external_url`,
# For example,if external_url is the same for two secondaries, you must specify
# If it is blank, it defaults to external_url.

交換が成功したことがわかりました!ただし、あまり興奮しないでください。また、gitlab-ctlツールを使用して、変更された構成ファイルに従ってgitlabサービスインスタンスを再構成し、構成を有効にします。

# gitlab-ctl reconfigure
...
巨大なgitlabシステムのため、これはタイムクリティカルなプロセスになります。お待ちください。
...

gitlabサービスインスタンスが再構成された後、gitlab-ctlツールを使用してgitblabのサービスステータスを確認できます。

# gitlab-ctl status
run: alertmanager:(pid 32119) 292s; run: log:(pid 31878) 325s
run: gitaly:(pid 32004) 294s; run: log:(pid 31180) 401s
run: gitlab-exporter:(pid 32013) 293s; run: log:(pid 31778) 342s
run: gitlab-workhorse:(pid 31980) 294s; run: log:(pid 31506) 366s
run: grafana:(pid 32136) 291s; run: log:(pid 31951) 302s
run: logrotate:(pid 31615) 357s; run: log:(pid 31703) 354s
run: nginx:(pid 31548) 363s; run: log:(pid 31568) 360s
run: node-exporter:(pid 31998) 294s; run: log:(pid 31729) 347s
run: postgres-exporter:(pid 32129) 291s; run: log:(pid 31905) 321s
run: postgresql:(pid 31219) 398s; run: log:(pid 31326) 397s
run: prometheus:(pid 32103) 293s; run: log:(pid 31843) 331s
run: puma:(pid 31412) 377s; run: log:(pid 31433) 376s
run: redis:(pid 30999) 410s; run: log:(pid 31038) 407s
run: redis-exporter:(pid 32017) 293s; run: log:(pid 31807) 337s
run: sidekiq:(pid 31436) 375s; run: log:(pid 31454) 371s

次のコマンドを使用して、オペレーティングシステムのメモリ使用量を確認し、メモリがgitlabに十分かどうかを確認することもできます。

# free -m
  total    used    free   shared buff/cache  available
Mem:375720633948212991376
Swap:8191128179

上記の結果でスワップパーティションがあまり使用されていない場合は、基本的にgitlabサービスに十分なメモリがあることを意味します。スワップパーティションが大量に使用される場合は、マシンにメモリを追加することを検討する必要があります。仮想マシンのメモリを増やすのは非常に簡単です。前記!

最後に、仮想マシンの[ホスト](https://cloud.tencent.com/product/cdh?from=10680)ブラウザーからIPアドレスまたはドメイン名を使用します(ドメイン名を使用する場合は、ホストC:\ Windows \ System32 \ drivers \ etc \ hostsでドメイン名とIPアドレスのマッピングを構成する必要があります。実際にはまだIP)gitlabサービスにアクセスします。

上のスクリーンショットに示すように、私は自分のGitlabサーバーに正常にアクセスできることがわかります。最初の使用では、Gitlabサービスのスーパーアドミニストレーターrootアカウントのパスワードを変更する必要があります。パスワードを変更した後、ログインして楽しんでください。

IT担当者はGitlabの使用に精通している必要があると思うので、ここでは説明しません。クライアントSSHキーアプリケーションに加えて、注意すべき点が1つあります。GitforWindowsなどのGitクライアントツールによって読み取られるデフォルトキーファイル名は良好な一致であるため、ssh-keygenによって生成されたクライアントデフォルトキーファイル名を変更しようとしないでください。 (構成によっても変更できますが、大変面倒です)!

以上が本稿の内容ですので、皆様のご勉強に役立てていただければ幸いです。

Recommended Posts

CentOS8.1ビルドGitlabサーバーの詳細なチュートリアル
Ubuntu16.04ビルドGitLabサーバーチュートリアル
Linux(centos7)ビルドgitlab
マスタースレーブDNSサーバーを構築するためのCentos7チュートリアル
CentOS 8.1でLEMP(Linux + Nginx + MySQL + PHP)環境を構築する(詳細なチュートリアル)
CentOS7でOpenV **サーバーを構築する
CentOS7でOpenLDAPサーバーを構築する
vmwareインストールCentOS7詳細チュートリアル
CentOSサーバー初期化設定の詳細な手順
CentOS8インストールMariaDB詳細チュートリアル
CentOS6最小インストールKVM詳細チュートリアル
Centos8のインストール図(非常に詳細なチュートリアル)
gitlabを構築するためのCentos6メソッドの手順
centos7でFTPサーバーを構築する
Centos7ビルドjavaWebサーバーtomcat
Centos7のインストールとgitlabサーバーの展開
CentOS7にMySQL8をインストールするための詳細なチュートリアル
CentOS7ビルドジェンキンス
Centosビルドlnmp
Centos7ビルドpython3.8.5 + scrapy + gerapy
CentOS7はGitlabをインストールします
centos8カスタムディレクトリにnginxをインストールします(詳細なチュートリアル)
CentOSでNginxサーバーをすばやく構築する方法
ローカルyumソースを構成するためのCentOS8詳細チュートリアル
詳細なチュートリアルを構築するためのPython3開発環境
Centos7によるPHPのインストールとNginxのチュートリアルの詳細
centos8にnginxをインストールするための詳細なチュートリアル(グラフィック)
CentOS7.3 64ビット、ビルドZabbix3.4
CentOSビルドプライベートgit
Centos7からCentos8にアップグレードするためのチュートリアル(詳細な図)
centos7でk8s1.9.9をビルドする
Centosサーバーでgiteaをセットアップする方法を教える3分
CentOS6.7ビルドLNMP環境
Centos6.9ビルドrabbitmq3.6.8クラスター
CentosはMYSQL8.Xチュートリアルをインストールします
CentOS 7.3+サーバーJRE1.8 + Hadoop-2.8.0
Centosインストールelasticsearchチュートリアル
CentOSサーバー展開(YUM)
Centos7.6ビルドLNMP環境
Centos7ビルドKubernetesクラスター
Centos7インストールkubernetesチュートリアル
Centos7インストールMysql8チュートリアル
CentOSはNginxを使用してダウンロード機能サーバーを構築します
ローカルWebサーバーを構築するためのCentos8の実装手順
ジェンキンスはセントスに基づいて構築されています
CentOSでHadoopを構築する
Centos7ビルドDNSサービス
vmwareでのCentOS7ネットワーク設定チュートリアルの詳細な説明
LinuxシステムへのJDK8のインストールに関する詳細なチュートリアル(CentOS7のインストール)
Linux CentOS7インストールチュートリアル
CentOS7ビルドLNMP環境
CentOS7.6サーバー展開VNC
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
Centos8のOpenStackUssuriの最小限の展開とインストールの詳細なチュートリアル
CentOSでGitサーバーをセットアップするための詳細な手順
Centos6.5でドッカー環境を構築する
[Linux] Sambaサーバーのビルド(ubuntu16.04)
CentOs7.3ビルドSolrスタンドアロンサービス
CentOs7.3ビルドRabbitMQ3.6スタンドアロンサービス
CentOS7.6でzabbixモニタリングzabbix4.2をビルドする
ubuntu16.04ビルドpptpdV **サーバー