ステージ4
日時: 2023 年 8 月 21 日
参加者:クラス全員
内 容:
Gitlab サービスのデプロイとアプリケーション
目次
1. Gitlab の概要
Gitlab は、Git をベースにした WEB コード ウェアハウス ホスティング ソフトウェアです。Gitlab を使用して、Github と同様のコード ウェアハウスを構築できます。一般に、gitlab を使用してプライベート コード ウェアハウスを構築することは、主に企業の内部コード管理に使用されます。
Gitlab の機能は、提出されたコードをレビューし、問題を追跡することです。これは、ソフトウェア エンジニアリング (コード) の品質を管理するために非常に重要です。
Gitlab は Community Edition (CE) と Enterprise Edition (EE) に分かれています。ほとんどの企業は依然としてコミュニティ バージョンを選択するでしょう。GitLab のデプロイメントにはサーバー構成が必要です。サーバーには 2 つのコアと 4G のメモリーを搭載することが推奨されます。
2. Gitlabの動作原理
gitlab の原理は実際には git の動作原理であり、GitHub も git に基づいて実装されています。
リモートのリモート倉庫:
リモート リポジトリのコンテンツは、複数の場所に分散された協力関係にあるローカル リポジトリによって変更される可能性があるため、ローカル リポジトリと同期される場合もされない場合もありますが、そのコンテンツは最も古いものになります。
リポジトリのローカル ウェアハウス:
送信されたコードの各バージョンはここに保存されます。ワークスペースやステージング領域の内容と比較すると、その内容は古いものになります。git commit 後、インデックスのディレクトリ ツリーはローカル ウェアハウスに同期され、次のコードの実行に便利です。 git Push を介してローカルを同期する手順 ウェアハウスとリモート ウェアハウスの同期。
インデックス一時記憶域:
git ディレクトリ内のインデックス ファイルについては、git add で追加されたファイルの関連情報 (ファイル名、サイズ) が一時記憶領域に記録されます。ファイルの実体は保存されません。各ファイルの実体は id で参照されます。 git status を使用すると、一時ストレージ領域のステータスを表示できます。ステージング領域は、現在のワークスペース内のどのコンテンツが git によって管理されているかをマークします。特定の要件または機能を完了した後にコードを送信する必要がある場合、最初のステップは、git add を使用してそのコードをステージング領域に送信することです。
ワークスペース ワークスペース:
プログラマーが開発変更を加えるところが今の姿であり、内容も最新のものです。通常、開発を行う際には、リモートウェアハウスにあるブランチをコピーし、そのブランチを元に開発を行い、開発プロセスはワークスペース上で行われます。
要約:
すべてのオブジェクトはワークスペース内で生成および変更されます。
すべての変更は、インデックス領域に入った後でのみバージョン管理されます。
変更されたコードをローカル ウェアハウスに送信することによってのみ、ウェアハウスに変更の痕跡を残すことができます。
ローカルの変更をファシリテーターと共有し、リモート リポジトリにプッシュして共有します。
3. Gitlabのサービス構成
Nginx:静的 Web サーバー
gitlab-shell: Git コマンドを処理し、許可されたキーのリストを変更するために使用されます。
gitlab-workhorse:軽量リバース プロキシ サーバー (これはアジャイル リバース プロキシで、ファイルのアップロードやダウンロードなどの大きな HTTP リクエストを処理し、他のリクエストは Gitlab Rails アプリケーションにリバース プロキシされます)
logrotate:ログ ファイル管理ツール
postgresql:データベース
redis:キャッシュ データベース
Sidekiq:キューに入れられたタスクをバックグラウンドで実行するために使用されます。
unicorn: Gitlab Rails アプリケーションはこのサーバーでホストされています
4. Gitlabの利点
git は配布されていますが、svn は配布されていません
ローカルに配布されている git を使用することで、さまざまな履歴トレースを自由に保存でき、サーバーを汚染する心配がなく、サーバーに接続できない場合でもコードの送信やログの表示が可能です。
GIT ブランチは SVN ブランチとは異なります
SVN のブランチは実際にはリポジトリのコピーですが、Git ウェアハウスはスナップショットであるため、Git の切り替えやブランチのマージなどの操作が高速になります。
git には強力なコード ウェアハウス管理システムがあります – gitlab
権限の管理、コードレビュー、プロジェクトの作成と管理が簡単に行えます。
5. Gitlab環境のデプロイメント
(1)インストールと展開
1. ホスト名の設定
[root@localhost ~]# ホスト名 gitlab
[root@localhost ~]# bash
2.依存関係パッケージをインストールする
[root@gitlab ~]# yum -y installcurl openssh-server openssh-clients postfix croniepolicycoreutils-python
3. Postfix を起動し、起動時に自動的に起動するように設定します。
[root@gitlab ~]# systemctl start postfix
[root@gitlab ~]# systemctl 後置を有効にする
4.ファイアウォールを設定する
[root@gitlab ~]# systemctl stop firewalld
[root@gitlab ~]# iptables -F
[root@gitlab ~]# setenforce 0
5. gitlab rpm パッケージをダウンロードしてインストールします
清華オープンソース ミラー ステーション:清華大学オープンソース ソフトウェア ミラー ステーション | 清華オープンソース ミラー
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
[root@gitlab ~]# rpm -ivh gitlab-ce-11.11.3-ce.0.el7.x86_64.rpm
6.構成ファイル /etc/gitlab/gitlab.rb を変更します。これは実稼働環境で必要に応じて変更できます。
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
13 外部 URL 'http://192.168.200.111'
7.設定ファイルをリロードします
[root@gitlab ~]# gitlab-ctl の再構成
[root@gitlab ~]# gitlab-ctl restart
[root@gitlab ~]# netstat -lnpt | grep:80
開始: gitlib-ctl start シャットダウン: gitlab-ctl stop
再起動: gitlab-ctl 再起動
設定のリロード: gitlab-ctl reconfigure
ステータスの表示: gitlab-ctl ステータス
8. gitlab のバージョンを確認する
[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt
(2) Web業務:
1.ブラウザで GitLab にログインし、「http://192.168.100.131」と入力します。
パスワードを入力する
2. パスワードは8桁必要です
3. ログイン: root、12345678
4.ログインに成功したら、GitLab ホームページにアクセスできます。
5.新しいプロジェクトを作成する
6. 名前と権限を作成します
7. Readme を追加する
8. テスト コンテンツの作成: gitlab テストです。緑色のボタンをクリックして追加します。
(3) テスト:
1. クライアントテスト:
[root@localhost ~]# hostname jenkins
[root@localhost ~]# bash
[root@jenkins ~]# git config --global user.name "jenkins"
[root@jenkins ~]# git config --global user.email "[email protected]"
[root@jenkins ~]# git config --global color.ui true
[root@jenkins ~]# git config --list
[root@jenkins ~]# git clone http://192.168.200.111/root/huyang.git
[root@jenkins ~]# ls huyang/
[root@jenkins ~]# cat huyang/README.md
コンテンツのテストを追加します。
Get: (前のコンテンツを削除して、再度クローンを作成します)
2.メール機能を設定する
1)設定ファイルを変更する
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
2) #gitlab設定の送信者を変更する
3)設定をリロードし、サービスを再起動します。
[root@gitlab ~]# gitlab-ctl の再構成
[root@gitlab ~]# gitlab-ctl restart
4) テストメール:
[root@gitlab ~]# gitlab-rails console -eproduction
irb(main):001:0> Notify.test_email('[email protected]', 'Message Subject', 'Message Body').deliver_now
電子メール通知:
5) Web 上で電子メールを設定し、電子メールによるリマインダーを送信します。
電子メール通知