Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順

Jenkins の Publish Over SSH プラグインを使用してプロジェクトをリモート マシンにデプロイする手順

SSH プラグインの使用による公開

Publish Over SSH を使用する前に、SSH 秘密キーを作成する必要があります。マシン間のパスワード不要のログインを構成します。マシン A の IP が 192.168.AA.AAA、マシン B の IP が 192.168.BB.BBB で、マシン A はパスワードなしでマシン B にログインでき、マシン B はパスワードなしでマシン A にログインできるとします。生成方法は次のとおりです。

マシン A に入り、次を実行します。

cd ~
ssh-keygen -t rsa

次のコマンドは、パスワードなしでマシン192.168.AA.AAAを介してマシン192.168.BB.BBBにログインできることを示しています。

sshコピーID 192.168.BB.BBB 

検証方法は、マシン A で ssh 192.168.BB.BBB を実行し、ifconfig を実行して現在の IP を確認します。マシンの IP が 192.168.BB.BBB になっていることがわかったら、パスワードなしのログイン設定が成功したことを意味します。

マシン B に入り、次を実行します。

cd ~
ssh-keygen -t rsa
sshコピーID 192.168.AA.AAA

検証方法は、マシン B で ssh 192.168.AA.AAA を実行し、ifconfig を実行して現在の IP を確認します。マシンの IP が 192.168.BB.BBB になっていることがわかったら、パスワードなしのログイン設定が成功したことを意味します。

システム構成でSSH経由での公開を構成する

Jenkins->システム管理->システム設定に移動し、SSH経由での公開を設定します。

パラメータの説明:

パスフレーズ: パスワード (設定している場合はキーパスワード)
キーへのパス: キーファイル(秘密鍵)へのパス
キー: 秘密鍵をこのボックスにコピーします
実行を無効にする: 実行中のコマンドを無効にする プライベート設定:
SSH サーバー名: サーバーの名前 (任意の名前)
ホスト名: SSH に接続する必要があるホスト名または IP アドレス (IP を推奨)
ユーザー名: ユーザー名
リモートディレクトリ: リモートディレクトリ
パスワード認証を使用するか、別のキーを使用します。パブリック設定を置き換えることができます(非常に拡張性の高いパブリック設定を選択して拡張します)。
プライベート構成の詳細:
ポート: ポート (デフォルト 22)
タイムアウト (ms): タイムアウト (ミリ秒) デフォルト値は許容されます。
実行を無効にする: 実行中のコマンドを無効にする
テスト構成: テスト接続

ビルドされたプロジェクトで SSH を設定します。

実行前に、Build > Post Steps の Execute shell 構成と連携し、scp コマンドを実行して、コピーするプロジェクトをリモート マシンにリモート コピーする必要があります。実行シェルの内容は次のとおりです。

scp -r /root/.jenkins/workspace/youxuan_api_pre/qt360-web/target/youxuan_api [email protected]:/usr/local/jenkinsTempFolder/
エクスポート BUILD_ID=DONTKILLME

ビルドされたプロジェクト -> 構成 -> ビルド後の操作をクリックし、ビルド成果物を SSH 経由で送信するを選択し、次のように構成します (注: 以下の Exec コマンドは、リモート マシンで実行されるスクリプトです)。

スクリプトの内容は次のとおりです。

#!/bin/bash
echo "=====================プロジェクトのデプロイを開始==========================="
ps -aux | grep /usr/local/tomcat/ | grep -v grep > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt
sed 's/ / /g' tomcat_info1.txt > tomcat_info.txt
sed 's/ / /g' tomcat_info.txt > tomcat_info1.txt 
cat tomcat_info1.txt | cut -d' ' -f 2 > tomcat_info.txt
`cat tomcat_info.txt` の行
する
  -9 $line を消す
終わり
cd /usr/local/tomcat/webapps
rm -rf youxuan_api*
mv /usr/local/jenkinsTempFolder/youxuan_api /usr/local/tomcat/webapps
/etc/init.d/tomcat スタート
同期
エコー 3 > /proc/sys/vm/drop_caches
echo "=====================プロジェクトのデプロイが成功しました==========================="

パラメータの説明:

SSHサーバー名: システム設定で設定した名前を選択します
転送セットソースファイル: アップロードするファイル (注: ワークスペースのパスからの相対パス。次の設定に示すように複数の値を入力できます。デフォルトでは で区切られています)
プレフィックスを削除: ディレクトリを削除します (転送セット ソース ファイル内のディレクトリのみ指定できます)
リモート ディレクトリ: リモート ディレクトリ (必要に応じて入力してください。ここではテストを行っているため、面倒で入力しませんでした。システム構成はデフォルトで継承されます)
実行コマンド: 実行するコマンドを記述します (新しいバージョンでは、転送セット ソース ファイルと実行コマンドの両方を入力する必要がありますが、両方を入力する必要はありません。古いバージョンでは、どちらか一方のみを入力できます)
高級:
除外ファイル: 除外ファイル (ディレクトリを転送するときに便利です。ワイルドカードを使用します。例: **/*.log、**/*.tmp、.git/)
パターンセパレーター: セパレーター (転送セットソースファイルのセパレーターを設定します。ここで変更する場合は、上記の内容も変更する必要があります)
デフォルトの除外なし: デフォルトの除外ルールを無効にします (詳細についてはヘルプを参照してください)
空のディレクトリを作成する: このオプションは、プラグインのデフォルトの動作を変更します。デフォルトの動作は、ファイルが存在するかどうかを照合し、存在する場合はそれを保存するためのディレクトリを作成することです。このオプションを選択すると、空のディレクトリであっても、ファイルを保存するためのディレクトリが作成されます。 (個人的な理解)
ファイルをフラット化: ファイルのみをアップロードし、ディレクトリを作成しません (リモート ディレクトリを除く)
リモート ディレクトリは日付形式です: リモート ディレクトリは日付付きのフォルダーを作成します (日付形式はリモート ディレクトリで設定する必要があります)。具体的な形式については、次の表を参照してください。
リモートディレクトリ 作成されたディレクトリ
'qa承認済み/'yyyyMMddHHmmss qa承認済み/20101107154555
'builds/'yyyy/MM/dd/'build-${BUILD_NUMBER}' builds/2010/11/07/build-456 (ビルド番号が 456 の場合)
yyyy_MM/'ビルド'-EEE-d-HHmmss 2010_11/ビルド-Sun-7-154555
yyyy-MM-dd_HH-mm-ss 2010-11-07_15-45-55
実行タイムアウト (ms): スクリプトを実行するためのタイムアウト (ミリ秒単位)
pty で実行: 端末実行スクリプトをシミュレートする
転送セットの追加: 構成を追加する

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • JenkinsはSSHを使用してコンパイルおよび公開します
  • Jenkins の SSH グローバル認証情報を追加する

<<:  MySQL 5.7.18 zip バージョンのインストールと設定方法のグラフィック チュートリアル (win7)

>>:  JavaScript を使用して動的な QQ 登録ページを作成する

推薦する

type=fileファイル変更フォームの名前が正常にエコーされない問題を解決

easyui フレームワークのコードは次のとおりです。 css: .ファイルボックス{ フロート:...

div 要素に終了タグがないため、Web ページを開くことができません

最初は速度の問題だと思ったので、その後、すべての画像リンク リクエストをクロスサイト接続ではなくサイ...

Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...

CSS3 transition-delay属性のデフォルト値が単位なしの0であり無効である問題を解決します

今日は、CSS3 の transition-delay 属性のデフォルト値 0 に単位がないのは無効...

WeChatアプレットが弾丸画面を送信するビデオプレーヤーを実装

この記事では、WeChatアプレットでビデオプレーヤーの集中砲火を実装するための具体的なコードを参考...

繰り返し送信、繰り返し更新、バックオフ防止に関する問題と解決策の分析

1つ。序文<br />この種の質問は、どの専門掲示板でも見かけます。Google で検索...

モバイルブラウザが位置をサポートしない場合の解決策: 修正

具体的な方法は以下の通りです。 CSSコードコードをコピーコードは次のとおりです。 .wap_bot...

Ubuntu 16.04にJenkinsをインストールするための詳細な手順

1. 前提条件JDKがインストールされましたecho $PATHソフトリンクを作成し、JDKのインス...

MySQL マスタースレーブ同期遅延の原因と解決策

歴史的な理由により、MySQL レプリケーションは、REDO ログではなく論理バイナリ ログに基づい...

Vueベースのビデオプレーヤーの実装例

既存のビデオ プレーヤーがニーズを満たせない場合は、ビデオを自分でカプセル化する必要があります。ビデ...

ショートビデオ(Douyin)の透かし除去ツールの実装コード

目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...

Dockerコンテナデータボリュームの原理と使用法の分析

コンテナデータボリュームとはデータがコンテナ内にある場合、コンテナを削除するとデータは失われます。例...

Ubuntu 18.04 に vsftpd をインストールするための実装コード

vsftpdをインストールする $ sudo apt-get install vsftpd -y v...

VMware 仮想マシン ubuntu18.04 インストール チュートリアル

インストール手順1. 仮想マシンを作成する 2. [カスタム(詳細)]を選択し、[次へ]をクリックし...

CocosCreator最適化DrawCallの詳細な説明

目次序文ドローコールとはDrawCall はパフォーマンスにどのような影響を与えますか?ドローコール...