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

推薦する

Vueはタブを切り替えてデータの状態を維持する3つの方法を実装します

Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...

Vue cli開発に基づく外部コンポーネントVantのデフォルトスタイルの変更の詳細な説明

目次序文1. 少ない2. コンポーネントをインポートする3. 設定ファイルを変更するステップ1: l...

docker を使用して hbase をデプロイする方法

スタンドアロンの hbase について、まずは説明しましょう。 Dockerをインストールするまず ...

Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...

Deepin で virtualenv をインストールして使用するチュートリアル

virtualenv は、分離された Python 仮想環境を作成するためのツールです。独立したディ...

WeChatアプレットはユーザーログインモジュールサーバーの構築を実装します

サーバーの構築には node.js を選択しました。まだインストールしていない方は、私の他の nod...

MySQL マルチインスタンス インストール ブート自動起動サービス設定プロセス

1.MySQLの複数インスタンスMySQL マルチインスタンスとは、1 台以上のマシン上で複数の M...

CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現す...

一般的な XHTML タグの使用方法の紹介

XHTML には多くのタグがありますが、頻繁に使用されるのはごくわずかであり、習得する必要があるのは...

Linux仮想マシンの静的IPアドレスを構成するための手順を完了します

序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...

FileZilla 425 FTP に接続できない (Alibaba クラウド サーバー) の解決策

Alibaba Cloud ServerがFTPに接続できないFileZilla 425 データ接続...

React Native スキャフォールディングの基本的な使い方の詳細な説明

プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...

MySQLリモート接続失敗の解決策

以前、MySQLがローカルでは接続できるのにリモートでは接続できないという問題に遭遇したことがありま...

MySQLプリコンパイル機能の詳細な説明

この記事では、MySQLのプリコンパイル機能について紹介します。具体的な内容は以下のとおりです。 1...

MySQL binlog ログを開く方法

binlog は、すべての mysql dml 操作を記録するバイナリ ログ ファイルです。 bin...