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

推薦する

JavaScript Domはカルーセルの原理と例を実装します

カルーセルを作りたい場合、まずその原理を理解する必要があります。画像を右から左にスライドさせるにはど...

テーブルレイアウトの長所と短所、そして推奨されない理由

テーブルの欠点1. テーブルは他の HTML タグよりも多くのバイトを占有します。 (ダウンロード時...

Vue のグローバル ウォーターマーク実装例

目次1. 透かしのJsファイルを作成する2. 導入操作2.1 App.vueや他のページでの参照2....

React でインデックスをキーとして使用することが推奨されないのはなぜですか?

1. 古い仮想DOMと新しい仮想DOMを比較し、まずキーが同じかどうかを確認します。 2. 引き続...

Tomcatを使用して共有ライブラリを設定し、同じjarを共有する

デプロイされるプロジェクトが増えるにつれて、Tomcat にデプロイされるリリース パッケージも増え...

node.js の require メソッドの読み込みルールの詳細な説明

require メソッドの読み込みルールキャッシュからの読み込みを優先するコアモジュールパス形式のモ...

Zookeeperスタンドアロン環境とクラスタ環境の構築

1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...

CentOS SVN サーバーで複数のプロジェクトを管理する方法

一つの要求一般的に、企業には複数のプロジェクトがあります。SVN サーバーを設定した後は、プロジェク...

CSS 属性セレクタを使用して HTML DNA を接合する方法

CSS 属性セレクターは素晴らしいです。大量のクラス名を追加することを回避し、コード内の問題を指摘す...

MySQLで現在の時間間隔の前日のデータをクエリする

1. 背景実際のプロジェクトでは、分散スケジュールされたタスク実行の状況に遭遇することがあります。ス...

vue+elementUI で埋め込みテーブルを実装する方法の例

大学 4 年生のときのインターンシップ中に、表内のデータの番号をクリックすると、そのデータの下に新し...

Element PlusはAffixを実装します

目次1. コンポーネントの紹介2. ソースコード分析2.1 テンプレート2.2 スクリプト2.3 実...

MySQL 5.7.19 のインストールと設定方法のグラフィック チュートリアル (win10)

以下に記録されているように、WIN10システムにMYSQLをダウンロードしてインストールするための詳...

設定ファイルを書いてMyBatisを簡単に使う方法

設定ファイルを書いてMyBatisを簡単に使う方法マイバティス3.xここでは MyBatis につい...

Zabbix パスワードをリセットする方法 (ワンステップ)

問題の説明長い間アカウントパスワードを入力して Zabbix にログインしていないため、管理者パスワ...