Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル)

簡単に言うと、今日は Gitlab-CI を使用してリモート サーバーに自動的にデプロイする方法について説明します。

この記事を読んだ友人は、私がサイトを Gitlab-Runner サーバーに自動的にデプロイしたことに気付くでしょう。今回は、 sshを使用してリモート マシンにデプロイします (リソースの取得を回避するために、CI サーバーとデプロイ サーバーを分離します)。

SSHパスワードフリーログイン

繰り返しになりますが、CI/CD は基本的に、手動の統合とコピー展開方法をスクリプト化したものです。リモート展開の重要な側面は、パスワード不要の制御を要求することです。

Gitlab Runner をリモート マシンにデプロイするには、リモート マシンがgitlab runnerアカウントを信頼している必要があります。

  • まずsu gitlab-runnerを実行してgitlab-runnerアカウントに切り替えます
  • CIマシン(マスター)でssh-keygenコマンドを使用して公開鍵を作成します。作成するにはssh-keygen -t rsaを使用します。プログラムは保存ディレクトリを尋ねます。変更する必要がない場合は、Enterキーを数回押して、~/.sshディレクトリのid_rsa.pubファイルを制御対象マシンの~/.sshディレクトリにコピーし、
  • ファイルの内容を~/.ssh/authorized_keysファイルにインポートします。
ホスト:
scp /home/gitlab-runner/.ssh/id_rsa.pub
制御されているパーティー:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

4. 制御対象マシンの権限を設定します。
~/.ssh権限は 700 に設定されています。
~/.ssh/authorized_keys権限は 600 に設定されています

その後、マスター CI マシンはパスワードなしでリモート マシンにログインできるようになります。

継続的にデプロイするにはどうすればいいですか?

イメージ タグを使用した継続的デプロイ: GitLab プロジェクトでは、タグを入力するだけで済みます --> イメージ構築ジョブを実行します (この git タグをイメージ タグとして使用) --> デプロイ ジョブを実行し、git タグを取得します --> タグ イメージをデプロイします

  • CI_COMMIT_REF_NAME変数は、プロジェクトがビルドされるブランチまたはタグ名を取得します。
  • デプロイメント中に挿入されたタグ変数を検出するには、docker-compose.yml でimage: ${DOCKER_REGISTRY}/eap/eap-front-end:${TAG}設定します。
build_image:フロントエンド:
 ステージ: build_image
 スクリプト:
 ビルドは docker によって実行されます。  
 - docker ログイン $DOCKER_REGISTRY_HOST -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD
 - docker push $DOCKER_REGISTRY_HOST/eap/eap-front-end:$CI_COMMIT_REF_NAME    
 タグ:  
 -私のタグ
 のみ:  
 - タグ
 
デプロイ:アルファ:
 ステージ: デプロイ
 変数:
 デプロイパス: "/home/eap/website"
 スクリプト:
 - ssh -t ***@10.202.42.252 "cd $deploy_path && export TAG=$CI_COMMIT_REF_NAME && docker-compose -f docker-compose.yml build && docker-compose -f docker-compose.yml up -d" 
 タグ:
 -私のタグ
 のみ:
 - タグ

上記の黄色の背景の行は、ssh リモート ログイン --> デプロイメント ディレクトリへの切り替え --> このビルドの git タグの挿入 --> コンテナのデプロイメントの実行というスクリプト メソッドを示しています。

以上、この記事では、gitlab-ci のリモート マシンへの継続的デプロイメントのプロセスを記録しました。ssh パスワードなしのログインは私が最近習得したもので、継続的デプロイメントの方法はシンプルで実用的です。

これで、Gitlab-ci を使用してリモート マシンに継続的にデプロイする方法 (詳細なチュートリアル) に関するこの記事は終了です。リモート マシンに継続的にデプロイする Gitlab-ci の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerを使用してGitlabを素早くデプロイする方法
  • Docker+Jenkins+Gitlab+Djangoアプリケーションデプロイ実践の詳細な説明
  • Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順
  • Docker-compose を使用して GitLab をデプロイする方法

<<:  React NativeのScrollViewプルダウンリフレッシュ効果

>>:  Reactは二次連結(左右連結)を実現する

推薦する

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

Docker を使って LEMP 環境を素早く構築する方法の例

LEMP(Linux + Nginx + MySQL + PHP)は、基本的に今日のWeb開発者にと...

Linux でハイパースレッディング技術を動的に有効/無効にする方法の詳細な説明

序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...

Zabbix 5.0 ディスク自動検出と読み取り/書き込み監視の問題を分析する

ディスクを自動的に検出する構成キーの値注: このキー値は Linux プラットフォームでのみサポート...

SSH経由でローカルLinux仮想マシンに接続するプロセスを記録する

実験環境:物理マシン Windows 10 x64物理NIC情報IPv4 アドレス: 192.168...

MySQL無料インストールバージョンの設定チュートリアル

この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...

Linux で静的ルーティングを追加するための 2 つの実装方法の分析

ルートを追加するコマンド: 1.ルート追加route add -net 192.56.76.0 ne...

LinuxでVIMエディタを使う方法

豊富なオプションを備えた強力なエディターとして、Vim は多くのユーザーに愛されています。この記事で...

相同性とクロスドメイン、jsonp(関数カプセル化)、CORS原則の詳細な分析

目次同一起源ポリシーAjax リクエストの制限: Ajaxは自身のサーバーにのみリクエストを送信でき...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

CSSインジェクションの知識の要約

最近のブラウザでは、CSS 内で JavaScript を実行することはできなくなりました。以前は、...

Windows での MySQL のダウンロード、インストール、設定、使用に関するチュートリアル

MySQLの概要MySQL はリレーショナル データベース管理システムです。データベースは構造化され...

ローカルの Windows リモート デスクトップから Alibaba Cloud Ubuntu 16.04 サーバーに接続する方法

ローカル Windows リモート デスクトップが Alibaba Cloud Ubuntu 16....

Mysql データベース ストアド プロシージャの基本構文の説明

プロシージャ sp_name を削除します//これまで、MYSQL 構文の基礎知識について説明して...