Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

Jenkinsを使用してプロジェクトを別のホストにデプロイするプロセス

環境

ホスト名IPアドレス仕える
ジェンキンス192.168.216.200トムキャット、ジェンキンス
サーバ192.168.216.215トムキャット


// ファイアウォールをオフにする selinux

//パッケージングコマンドgitをインストールします
[root@jenkins ~]# yum -y mavenをインストールします
[root@jenkins ~]# yum -y gitをインストール

//パスワード不要のログインを設定する [root@localhost ~]# ssh-keygen 
公開/秘密 RSA キー ペアを生成しています。
キーを保存するファイル (/root/.ssh/id_rsa) を入力します。 
パスフレーズを入力してください (パスフレーズがない場合は空白): 
同じパスフレーズをもう一度入力してください: 
あなたの識別情報は /root/.ssh/id_rsa に保存されました。
公開鍵は /root/.ssh/id_rsa.pub に保存されました。
キーのフィンガープリントは次のとおりです。
SHA256:npcyZyHpOPmqGL1nbpZRj7UYULZxJhvNIcDg2G9Qvso ルート@localhost.localdomain
キーのランダムアート画像は次のとおりです。
+---[RSA 3072]----+
| .oooBo+. |
| + うー。Xo |
| . + ..o |
| o .o.. |
| +.S*.. |
| o o.=oooo |
| . E +o* = |
| o .*o * |
| . oBo.. |
+----[SHA256]-----+
[root@localhost ~]# ssh-copy-id [email protected]
/usr/bin/ssh-copy-id: INFO: インストールされるキーのソース: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: すでにインストールされているキーを除外するために、新しいキーでログインしようとしています
/usr/bin/ssh-copy-id: INFO: インストールするキーが 1 つ残っています -- ここでプロンプトが表示された場合は、新しいキーをインストールしてください
[email protected]のパスワード: 

追加されたキーの数: 1

ここで、「ssh '[email protected]'」を使用してマシンにログインしてみます。
必要なキーだけが追加されたことを確認します。

[root@localhost ~]# ssh [email protected]
最終ログイン: 2021年10月20日水曜日 11:03:43 192.168.216.200から
[root@localhost ~]# 終了
ログアウト 192.168.216.215 への接続が閉じられました。

Jenkinsターミナルに入る



パイプライン
    エージェント
    
    ステージ {
        ステージ('ビルド') {
            手順 {
                // GitHubリポジトリからコードを取得する
                git 'https://gitee.com/forgotten/tomcat-java-demo.git' # パッケージをダウンロードし、ホスト上で git コマンドが使用できることを確認します // Unix エージェントで Maven を実行します。
                sh "mvn -Dmaven.test.failure.ignore=true clean package" #warパッケージにパッケージ化h "mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war" #パッケージ名を変更// WindowsエージェントでMavenを実行するには、
                // bat "mvn -Dmaven.test.failure.ignore=true パッケージをクリーンアップ"
                
            } 
        }        
        ステージ("公開"){
            ステップ{
                sh "ssh [email protected] 'tar -Jcf /opt/backup/webapps-\$(date +%Y-%m%d).tar.xz /usr/local/tomcat/webapps/*'" # 元のプロジェクトをバックアップします。h "scp target/myapp.war [email protected]:/usr/local/tomcat/webapps/" # パッケージをターゲット ホストに転送します。sh "ssh [email protected] '/usr/local/tomcat/bin/catalina.sh stop;sleep 3;/usr/local/tomcat/bin/catalina.sh start'" # 生成されたプロジェクトを再起動します。}
        }
    }
}


ターゲットホストに移動して確認する

手動展開

//ファイアウォール、selinuxをオフにする

// git コマンドが存在することを確認し、デプロイされたプロジェクト パッケージをプルします [root@jenkins opt]# git clone https://gitee.com/forgotten/tomcat-java-demo.git
'tomcat-java-demo' にクローンしています...
リモート: オブジェクトを列挙しています: 558、完了。
リモート: オブジェクトのカウント: 100% (558/558)、完了。
リモート: オブジェクトの圧縮中: 100% (316/316)、完了。
リモート: 合計 558 (デルタ 217)、再利用 558 (デルタ 217)、パック再利用 0
オブジェクトの受信: 100% (558/558)、5.08 MiB | 673.00 KiB/s、完了。
処理デルタ: 100% (217/217)、完了。
[ルート@jenkins opt]# ls
tomcat-java-デモ

//パッケージ、mvn コマンドが存在することを確認してください [root@jenkins opt]# cd tomcat-java-demo/
[root@jenkins tomcat-java-demo]# ls
db Dockerfile ライセンス README.md
deploy.yaml jenkinsfile pom.xml src // pom.xml のすべてのファイルは mvn [root@jenkins tomcat-java-demo]# mvn clean package でパッケージ化されます
[root@jenkins tomcat-java-demo]# mv target/ly-simple-tomcat-0.0.1-SNAPSHOT.war target/myapp.war
[root@jenkins tomcat-java-demo]# ls ターゲット/
クラス ly-simple-tomcat-0.0.1-SNAPSHOT maven-status
生成されたソース maven-archiver myapp.war

// パスワード不要のログインがあることを確認し、SSH 経由でサーバー側の Tomcat を起動し、デプロイするパッケージを渡します [root@jenkins tomcat-java-demo]# scp target/myapp.war [email protected]:/usr/local/tomcat/webapps/
//tomcatは自動的に解凍し、しばらくするとウェブサイトの対応するディレクトリに入り、新しくデプロイされたプロジェクトを見ることができます。

Jenkins を使用してプロジェクトを別のホストにデプロイする方法についての記事はこれで終わりです。Jenkins プロジェクトを別のホストにデプロイする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Jenkins のスケジュールされたビルドタスクを作成する
  • Jenkins の SSH グローバル認証情報を追加する
  • Jenkins 構成 Maven プロジェクトのパッケージ化、デプロイメント、リリース
  • Jenkins で定期的にタスクを実行するためのシェル スクリプトを実装する方法
  • JenkinsとSonarQubeを統合する際に発生するエラー問題を解決する
  • Jenkins 自動ビルドツールを使用したアジャイル開発

<<:  テキストエリアをレイアウトしたときにテキストが左下にあり、サイズを変更できない問題の解決策

>>:  WebデザイナーがRetinaディスプレイデバイス向けの画像を作成する方法

推薦する

MySQL sql_mode の使用に関する詳細な説明

目次序文sql_mode の説明最も重要なオプションすべてのオプション要約する序文前回の記事「MyS...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...

CentOS8 - bash: 文字化けとその解決方法

この状況は通常、中国語言語パックがインストールされていないか、デフォルトの言語設定に問題があるために...

Linux インデックスノード inode の詳細な説明

1. inodeの紹介inode を理解するには、まずファイル ストレージから始める必要があります。...

VMware Workstation 14 Pro(仮想マシン)にシステムをインストールする方法の詳細な説明

この記事では、VMware Workstation 14 Pro (仮想マシン) にシステムをインス...

MySQL 8.0.18 はクローンプラグインを使用して MGR 実装を再構築します

3 ノード MGR 内の 1 つのノードに異常があり、MGR クラスターに再度追加する必要があるとし...

MySQL マスタースレーブ同期における server-id の例の詳細な説明

序文MySQL クラスターを構築する場合、当然のことながら、データの一貫性を確保するために、データベ...

Windows 8 での ssh コマンドの使用記録

1. 仮想マシンとgit bashウィンドウを開き、接続の準備をします2. 仮想マシンでifconf...

Windows 環境での MYSQL5.7 設定ファイルの場所のグラフィカル分析

1. MYSQLインストールディレクトリ次のようにコードをコピーします。 select @@bas...

mysql 5.7.18 winx64 パスワード変更

MySQL 5.7.18 が正常にインストールされた後、バージョン 5.7 では空のパスワードでのロ...

React仮想リストの実装

目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...

純粋なCSS3で実装されたネオンライト効果

達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...

jsはタイトルと説明のキーワードを検出し、見つかった場合は置換するか他のページにジャンプします。

キーワード 一般タイトルには、クラック、キー、シリアル番号、キージェネレータなどの単語を含めることは...

JavaScript 配列メソッドの詳細な例

目次導入配列の作成作成方法詳しい説明方法参加する() push() と pop() shift() ...

Nexus を使用して Docker リポジトリを作成する方法

公式の Docker レジストリを使用して作成されたウェアハウスでは、イメージを削除してもデフォルト...