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

推薦する

HTMLのmarquee属性でテキストを踊らせる

構文: <marquee> …</marquee>モバイル属性マーキーを使用...

vue3でDOMをマウントするためのプラグインを書く際の問題について

vue2と比較して、vue3にはアプリの概念が追加され、vue3プロジェクトの作成も // メイン....

使用したコマンドを表示するLinuxコマンドメソッドの概要

システムでは多くのコマンドが使用されていますが、使用したコマンドをどのように確認すればよいでしょうか...

よく使われるCSSスタイル(レイアウト)の詳しい説明

新しいCSS3プロパティと互換性ありCSS3では、プラグインprefixfree.min.jsを使用...

Webデザインの経験:ナビゲーションシステムをシンプルにする

<br />友人と話し合っていたとき、フレームワークのレイヤー設計の中で最も核となるのは...

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

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

HTMLテーブルで、各セルに異なる色と幅を設定します

設定が有効にならない場合が多いため、幅や高さなどをテーブル内で直接設定しないことをお勧めします。スタ...

1 つの記事で Nginx の現在の制限を理解する (簡単な実装)

Nginx は現在、最も人気のあるロード バランサーの 1 つです。インターネット トラフィックの...

Linux で SVN サーバーをインストールする方法

1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...

Vueのログインとログアウトの詳細な説明

目次ログインビジネスプロセスログイン機能の実装要約するまず、エフェクトの実装プロセスを見てみましょう...

HTML内のフレームセットタグが正常に表示されない原因の解析と解決方法

<frameset></frameset>は皆さんもよくご存知のものです。こ...

CocosCreator でカメラトラッキングに cc.follow を使用する方法

Cocos Creator バージョン: 2.3.4デモのダウンロード: https://files...

Windows で Nginx を使用して https サーバーとリバース プロキシを構成する際の問題

リクエストロジックフロントエンド --> https経由でnginxをリクエストnginx -...

Nginxでネットワーク分離を解決した実践記録を詳しく解説

必要最近、Node オンライン サービスを移行する必要があったため、2 つの新しいオンライン サーバ...