DevOps-GitHub/GitLab
GitHub は、オープン ソース コード ホスティング プラットフォームです。Web ベースの Git ウェアハウスは、パブリック ウェアハウスとプライベート ウェアハウス (プライベート ウェアハウスは有料) を提供します。
GitLab は無料のプライベート リポジトリを作成できます。
GitHub
迅速な操作のため、ここではウェアハウスの作成と登録についての説明は省略します。
まずはGitHub上にリモートリポジトリを作成しますgithub_test
GitHub リモート リポジトリの使用
-
github でクローン アドレスを取得します (このアドレスは私の倉庫のアドレスではなく、あなたの倉庫のアドレスであることに注意してください)
https://github.com/rkun0068/github_test.git
-
プロジェクトをローカル Linux に複製し、デフォルトで現在のディレクトリに複製します (github に接続できない場合は、https://github.com/521xueweihan/GitHub520で方法を見つけることができます。通常、
/etc/hosts
ファイルの下に DNS を構成し、リフレッシュしてください)[root@workstation ~]# git clone https://github.com/rkun0068/github_test.git Cloning into 'github_test'... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. [root@workstation ~]# cd github_test/ [root@workstation github_test]# ls README.md [root@workstation github_test]# cat README.md # github_test GitHub测试
-
コードファイルを送信する
[root@workstation github_test]# vi hello.py [root@workstation github_test]# cat hello.py print("hello,github") [root@workstation github_test]# git add hello.py [root@workstation github_test]# git commit -m "提交hello.py" [main 9408d5c] 提交hello.py 1 file changed, 1 insertion(+) create mode 100644 hello.py
-
を使用して
git push
github にプッシュします[root@workstation github_test]# git push -u origin main Counting objects: 4, done. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 308 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: To git@github.com:rkun0068/github_test.git 253eb95..a5196f7 main -> main Branch main set up to track remote branch main from origin.
パスワードなしでセットアップする
- 空のパスワード キー ペアをローカルで試してください
- 秘密鍵をローカルに保管し、公開鍵を相手に渡す
- ローカルからリモートへのパスワード不要の実現
[root@workstation ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@workstation" -N ""
Generating public/private rsa key pair.
Created directory '/root/.ssh'.
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ic2UQovuX1DlWRLaY4yWM9+L1UKIeHa4mCHZXMBV65M root@workstation
The key's randomart image is:
+---[RSA 2048]----+
| .ooo.=.. |
| *.+ % * |
| + B / @ . |
| . . # X = . |
| . = S E + . |
| . . + o |
| . . . . |
| . . |
| . |
+----[SHA256]-----+
[root@workstation ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq/MCM/q8ipB4lsmOSzve25/pPr+FjdxnMM857/cwdqtttcJLID7vnzsgxo/W/bZXg+3h0r4P+VjLR3QLdR2XI/TSEvHdHQxB6Pi8lzbDYaUqTi14RrP5fJIC48pJwArBVMWNGQireXjynQ4Urgy7YJIwQNi1SgFxxrOpxk8PuKCo/ZmKKdS37mJA/rGmMV0xMvqKWgOAm0hrnXKpX1f7YRUeRJfGpN6o73stExbSEd4kas+LAnu++UQ/PNBo+s15Uw9Sm70Vr7mJ9pjLa0swtE6GrX2CbgnOcYg7LS7ngQbeS3KEB+dk7j/j5q0y8o+x6lbIhWWGlOFPGadxADPtF root@workstation
GitHub 設定の SSH KEYS にキーを追加します。
https://github.com/settings/keys
GitLab
ダウンロードリンク
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
インストールと構成
[root@workstation ~]# rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
[root@workstation ~]# vi /etc/gitlab/gitlab.rb
[root@workstation ~]# cat /etc/gitlab/gitlab.rb | grep 'external_url'
##! For more details on configuring external_url see:
external_url 'http://192.168.182.130'
# registry_external_url 'https://registry.gitlab.example.com'
# pages_external_url "http://pages.example.com/"
# mattermost_external_url 'http://mattermost.example.com'
#修改成gitlab服务器IP地址,对外服务大约在13行
初期化 (長い時間がかかります。約 3 分かかります。各コンポーネントの構成と起動が自動的に行われます)
gitlab-ctl reconfigure
ステータスの表示
[root@workstation ~]# gitlab-ctl status
run: gitaly: (pid 9745) 65s; run: log: (pid 9109) 171s
run: gitlab-monitor: (pid 9781) 63s; run: log: (pid 9445) 136s
run: gitlab-workhorse: (pid 9759) 64s; run: log: (pid 9215) 165s
run: logrotate: (pid 9320) 153s; run: log: (pid 9319) 153s
run: nginx: (pid 9274) 159s; run: log: (pid 9273) 159s
run: node-exporter: (pid 9395) 142s; run: log: (pid 9394) 142s
run: postgres-exporter: (pid 9837) 62s; run: log: (pid 9600) 113s
run: postgresql: (pid 8774) 231s; run: log: (pid 8773) 231s
run: prometheus: (pid 9824) 62s; run: log: (pid 9544) 124s
run: redis: (pid 8651) 237s; run: log: (pid 8650) 237s
run: redis-exporter: (pid 9494) 130s; run: log: (pid 9493) 130s
run: sidekiq: (pid 9048) 178s; run: log: (pid 9047) 178s
run: unicorn: (pid 8980) 184s; run: log: (pid 8979) 184s
ログイン
IPにアクセスしてパスワードを設定する
設定したパスワードを使用してログインします
GitLab の設定
- アカウント登録時のメール認証
- マージリクエストがある場合は、電子メールで通知されます。
- パスワードを変更する場合はメールで変更してください
開発者が SSH キーを設定する
-
開発者のコンピュータに空のパスワード キーを設定します (上記のキーを使用することも、新しいキーを作成することもできます)
ssh-keygen -t rsa -f /root/.ssh/id_rsa -C "root@workstation" -N ""
-
ビューキー
[root@workstation ~]# cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq/MCM/q8ipB4lsmOSzve25/pPr+FjdxnMM857/cwdqtttcJLID7vnzsgxo/W/bZXg+3h0r4P+VjLR3QLdR2XI/TSEvHdHQxB6Pi8lzbDYaUqTi14RrP5fJIC48pJwArBVMWNGQireXjynQ4Urgy7YJIwQNi1SgFxxrOpxk8PuKCo/ZmKKdS37mJA/rGmMV0xMvqKWgOAm0hrnXKpX1f7YRUeRJfGpN6o73stExbSEd4kas+LAnu++UQ/PNBo+s15Uw9Sm70Vr7mJ9pjLa0swtE6GrX2CbgnOcYg7LS7ngQbeS3KEB+dk7j/j5q0y8o+x6lbIhWWGlOFPGadxADPtF root@workstation
-
キーを貼り付けます
GitLab がリポジトリを作成する
-
GitLab がウェアハウス (コード保管場所) を作成します
-
カスタムアイテム
リモート リポジトリのクローンをローカルに作成する
-
gitlab のヘルプを確認してください
-
開発者のコンピュータ設定の ID
[root@workstation ~]# git config --global user.name "rkun18" [root@workstation ~]# git config --global user.email "[email protected]" [root@workstation ~]# git clone [email protected]:root/gitlab_test.git
-
開発者のコンピュータで git コマンド clone を使用し、プロジェクトをアップロードします。
[root@workstation ~]# cd gitlab_test/ [root@workstation gitlab_test]# echo "gitlab_test" > README.md [root@workstation gitlab_test]# git add . [root@workstation gitlab_test]# git commit -m "add README.md" [master (root-commit) eaf506f] add README.md 1 file changed, 1 insertion(+) create mode 100644 README.md [root@workstation gitlab_test]# git branch * master [root@workstation gitlab_test]# git push -u origin master Counting objects: 3, done. Writing objects: 100% (3/3), 224 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.182.130:root/gitlab_test.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
-
確認する
継続的インテグレーション (CI)
継続的インテグレーション、CI
開発者のチームが頻繁に作業を統合するソフトウェア開発手法であり、通常は各メンバーが少なくとも 1 日に 1 回統合します。つまり、毎日複数の統合が行われる可能性があります。各統合は自動化されたビルド (コンパイル、テスト、リリース) によって検証され、統合エラーをできるだけ早く検出します。
継続的展開 (CD)
継続的デリバリーに基づいて、安定した機能を備え、製品要件に沿ったバージョンが系統的に本番環境に導入されます。これは継続的デリバリーの最後のリンクとみなすことができます。
連続リリース
連続放出(CR)
リリースとは、展開後のプロジェクトのソフトウェア バージョン全体の定期的または不定期な更新です。たとえば、新機能の更新やページ フレームワークの表示などです。
継続的なテスト
連続試験(CT)
継続的なテストはソフトウェア開発プロセス全体を通じて実行され、プログラマーが提出したコードを検証し、コンプライアンスをチェックしてバグを減らし、最終エラーを減らし、アジャイルで無駄のない開発を実現します。
コード更新方法
ブルーグリーン展開
システムが中断することなくサービスを提供できるようにするためのオンライン コードの展開方法。
Blue-Green デプロイメント モデルには 2 つのクラスターが含まれています。
通常の状況 (無制限の動作) では、クラスター A とクラスター B は同じコード バージョンを持ち、同時に外部にサービスを提供します。
プロジェクトがオンラインになると、まずクラスター (クラスター A など) をロード リストから削除し、バージョンをデプロイします。クラスター B は引き続きサービスを提供します。
クラスター A のアップグレードが完了したら、負荷分散をクラスター A にリダイレクトし、負荷リストからクラスター B を削除して、新しいバージョンをデプロイします。クラスタ A は再びサービスを提供します。
クラスター B もアップグレードされると、クラスター B もロード リストに復元されます。現時点では、両方のクラスターのバージョンがアップグレードされており、外部サービスはほとんど中断されていません。