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ディスプレイデバイス向けの画像を作成する方法

推薦する

dockerにros2をインストールするための詳細な手順

目次メイントピック1. UbuntuにDockerをインストールする2. DockerにROS2-F...

Windows での自動展開に Jenkins を使用するチュートリアル図

今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...

パーティクルダイナミックボタン効果を実現するCSS

オリジナルリンクhttps://github.com/XboxYan/no…ボタンは、おそらく We...

Win10 に Linux ubuntu-18.04 デュアル システムをインストールする (インストール ガイド)

コンピューターに Linux Ubuntu システムをインストールしました。初めてインストールしまし...

MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)

目次MySQLデータベースの名前を変更する方法最初の方法: データベースの名前を変更することは非推奨...

CSS3でアニメーションを実装する3つの方法

これは、面接者の CSS に関する基本的な知識をテストするものです。 CSSでアニメーションを実装す...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

4 つの主要な SQL ランキング関数 ROW_NUMBER、RANK、DENSE_RANK、NTILE の使用方法の紹介

1. ROW_NUMBER()定義: ROW_NUMBER() 関数は、select によってクエリ...

Linux で Golang をインストールする方法

Go は、シンプルで信頼性が高く、効率的なソフトウェアを簡単に構築できるオープンソース プログラミン...

MySQL の永続性とロールバックの原理を 1 つの記事で理解する

目次再実行ログディスクデータを直接更新するのではなく、最初にメモリデータを更新する必要があるのはなぜ...

純粋なHTML+CSSでタイピング効果を実現

この記事は主に、一定の参考値を持つ純粋な HTML + CSS によって実現されるタイピング効果を紹...

Linux ユーザー スクリプトの作成/推測ゲーム/ネットワーク カード トラフィック監視の紹介

目次1. ユーザーが作成したスクリプト2. 単語当てゲーム3. ネットワークカードのトラフィック監視...

Dockerを使用してMySQL 8.0をデプロイする方法の例

1. 公式サイトを参照してdockerをインストールする2. MySQLイメージをプルします(デフォ...

js キャンバスはランダムなパーティクル効果を実現します

この記事の例では、参考のためにjsキャンバスランダムパーティクルエフェクトの具体的なコードを共有して...

Windows Server 2019 で NAS を構成する方法

序文このチュートリアルでは最新バージョンをインストールします。 NAS は非常に安定して動作するので...