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を作成および編集します。
次の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