Jenkins に基づいて Tomcat 環境を自動的にパッケージ化してデプロイする ------- 初心者からマスターまで運用と保守を学ぶ 85 日目

改善の第 4 段階

日時: 2023 年 8 月 22 日

参加者:クラス全員

内  容:

Jenkins に基づいて Tomcat 環境を自動的にパッケージ化してデプロイする

目次

1. 従来の Web サイト展開プロセス

(1) 従来のコードがオンラインになるプロセス

(2) 現在主流の Web サイト展開プロセス

(3) Jenkins の仕組み:

2. インストールと展開: Jenkins に基づいて Tomcat 環境を自動的にパッケージ化し、展開します。

(1) 実験環境とサーバーの設定

(2) すべてのホストのファイアウォールとselinuxをオフにし、ホスト名を変更します。

(3) gitホストの設定

(4) jenkinsホストの設定

(5) Jenkinsの設定

(6) Webホストの設定

(7) Webページアクセステスト:


1.従来の Web サイト展開プロセス

運用保守プロセスでは、Web サイトの展開も運用保守タスクの 1 つです。

従来の Web サイト展開プロセスは、次のように大まかに分けられます。

要件分析 --> プロトタイプ設計 --> コードの開発 --> コードの提出 --> イントラネット展開 --> イントラネット テスト --> オンラインで確認 --> データのバックアップ --> 外部ネットワークの更新 --> 外部ネットワークのテスト→リリース完了。

        内部ネットワークのテストでコードに異常が見つかった場合は、コードの開発者名を返してコードを修正し、外部ネットワークのテストで外部ネットワークに展開したコードに異常が見つかった場合は、 Web サイトは時間内にロールバックできます。

 

(1)従来のコードがオンラインになるプロセス

  開発者はオンラインへのリクエストを開始します (電子メールには開発された WAR パッケージが含まれています) --> 運用および保守担当者がオンライン ロード スケジューラ (Nginx) に接続します --> サーバーのグループを分離 (Tomcat) --> に接続しますサーバー (Tomcat) --> 古いコードをバックアップ (tar パッケージ化) --> 古いコード ディレクトリを削除 --> 新しい WAR パッケージをアップロード --> 外部ネットワーク テスト --> テストが失敗した場合はロールバックバックアップによるコード --> テストに合格した場合、rsync スクリプトを使用してコードを他のサーバーにプッシュ --> 外部ネットワーク テストを統合 --> スケジューラーを接続して分離メカニズムを復元 --> 別のサーバー グループを分離オンライン手順を実行するには --> オンラインで完了します。

(2)現在主流の Web サイト展開プロセス

        現在の主流の Web サイト展開方法: Hudson/Jenkins ツール プラットフォームによる完全自動展開 + テスト これは、スケーラブルな継続的統合エンジンであり、オープン ソース ソフトウェア プロジェクトであり、オープンで使いやすいソフトウェア プラットフォームを提供することを目的としています。ソフトウェアの継続的な統合が容易になり、可能になります。Jenkins はインストール、構成、使用が非常に簡単です。

        開発者:コードを作成した後、ソース コードを自分でコンパイルしてパッケージ化する必要はなく、コード ブランチを SVN または Git ウェアハウスに直接保存するだけで済みます。

        運用および保守担当者:手動介入によるエラー率を削減すると同時に、運用および保守担当者をコードのアップロード、手動バックアップ、更新などの複雑な操作から解放します。

        テスター: Jenkins を通じて簡単なコードと Web サイトのテストを実行できます。

 

(3) Jenkins の仕組み:

        まず、SVN/Git バージョン管理システムからソース コードをローカルにコピーし、Maven を呼び出して、設定されたスクリプトに従ってビルドします。システム全体の鍵となるのはビルド スクリプトであり、統合で実行する必要があるタスクを Jenkins に指示します。

 

2. インストールと展開: Jenkins に基づいて Tomcat 環境を自動的にパッケージ化し、展開します。

(1)実験環境とサーバーの設定

IPアドレス

CPU名

役割

192.168.100.131

ギット

gitサーバー

192.168.100.132

Jenkins git クライアント

ジェンキンスサーバー

192.168.100.133

トムキャット

ウェブサーバー

(2)すべてのホストのファイアウォールと selinux をオフにし、ホスト名を変更します。

gitホスト

 

ジェンキンスホスト

 

ウェブホスト

 

(3) gitホストの設定

1. # rpm インストールの依存関係: 1 と 2 の両方がインストールされます

[root@gitclient ~]# yum -y installcurl-devel expat-devel gettext-devel openssl-devel zlib-devel

 

2. # コンパイルとインストール — サーバーとクライアント、https://mirrors.edge.kernel.org/pub/software/scm/git/ にアクセスして、必要なバージョンをダウンロードします

[root@gitclient ~]# tar xf git-2.22.0.tar.gz -C /usr/src/

[root@gitclient ~]# cd /usr/src/git-2.22.0/

[root@git git-2.22.0]# make configure

[root@git git-2.22.0]# ./configure --prefix=/usr/local/git && make && make install

 

        注: 上の図に示されているように、/bin/sh: autoconf: command not found make: *** [configure] error 127、どうすればよいですか?

プロンプトに従って autoconf をインストールします

[root@git git-2.22.0]# yum -y install autoconf

 

次に、再構成、コンパイル、インストールを行います。

[root@git git-2.22.0]# ln -sf /usr/local/git/bin/git /usr/bin/

[root@git git-2.22.0]# git --version

 

3. #git サーバー上でユーザーを構成する

[root@git ~]# useradd git

[root@git ~]# echo "123456" | passwd --stdin git

 

4.ローカルウェアハウスプローブを作成する

[root@git ~]# su - git

[git@git ~]$ mkdir probe.git

[git@git ~]$ cd probe.git

[git@git probe.git]$ git --bare init

[git@git probe.git]$ exit

 

5.プロジェクト コードのクローンを作成し、作成したウェアハウスと同期します。

[root@git ~]# rz   #psi-probe.tar.gz をアップロード

[root@git ~]# tar xf psi-probe.tar.gz

[root@git ~]# git clone [email protected]:/home/git/probe.git

[root@git ~]# cp -rf psi-probe/* プローブ/

[root@git ~]# cd プローブ/

[root@git プローブ]# git add 。

[root@git プローブ]# git config --global user.email "[email protected]"

[root@git プローブ]# git config --global user.name "huyang"

[root@git プローブ]# git config --list

[root@git プローブ]# git commit -m "すべてのプローブ"

[root@git プローブ]# git プッシュ オリジン マスター

 

(4) jenkinsホストの設定

1. ソースコードから jenkins をインストールする

[root@jenkins ~]#rm -rf /usr/bin/java

[ root@jenkins ~]#tar xf jdk-17_linux-x64_bin.tar.gz

[ root@jenkins ~]#mv jdk-17.0.8 /usr/local/java

[root@jenkins ~]#vim /etc/profile

[root@jenkins ~]#source /etc/profile

[root@jenkins ~]#java -version

[root@jenkins ~]# rpm -ivh jenkins-2.181-1.1.noarch.rpm

 

2.ジェンキンスを開始する

[root@jenkins ~]# jenkins を開始します (開いたままにしておきます)

 

パスワードは画像の通りです。

[root@jenkins ~]# netstat -lnpt | grep:8080

 

3. Web設定

ブラウザアクセステスト: http://192.168.1 00.1 32 : 8080

 

秘密キーを入力してください:

 

Jenkins のロックを解除し、パスワードをコマンド ラインから取得します。

 

 認証パスワードを入力し、「次へ」をクリックします

 

推奨プラグインのインストールを選択する

 

プラグインを自動的にダウンロードします (ステータスはすべて緑色、次のステップ)

 

ステータスが赤になります。再起動して再度インストールしてください。

 

ステータスが赤になり、再起動すれば入ることができますが、プラグインのインストールエラーがあり、影響を受けます。

 

 

緑色に変わったら、次の操作を行います。

 

管理者ユーザーを作成し、管理者アカウントの使用を選択して続行します。

 

インスタンスの設定を保存して完了です。

 

クリックして始めましょう

 

使用する準備ができて!

 

(5) Jenkinsの設定

1. Jenkins に必要なプラグインをインストールします

        Jenkins ホームページで、左側の [Jenkins の管理] >> [プラグインの管理] >> [オプションのプラグイン] をクリックし、フィルター検索ボックスにインストールするSSH 経由で発行 およびMaven 統合プラグインを入力し、左側のチェック ボックスをオンにします。をクリックし、「直接インストール」をクリックすると、プラグインのインストール操作が開始されます。

 

 

 

チェック:

 

ページの下:

 

2.検証資格情報を追加する

ここで資格情報を追加するかどうかを選択できます。このテストには資格情報は含まれません。

以下に示す操作:

 

以下に示す操作:

 

以下に示す操作:

 

以下に示す操作:

 

以下に示す操作:

 

        資格情報ページで「システム」をクリックして「システム」ページに移動します。左側のナビゲーション バーで [ドメインの追加] をクリックします。

「ドメインの追加」ページにジャンプします。このページで「web」というドメイン名を作成し、「ok」をクリックして設定を完了します。

「認証情報の追加」

 

「+認証情報を追加」をクリックします。

 

上記のデータを入力した後、「OK」をクリックすると、以下に示すように、新しく追加されたリモート Web ホスト アカウントが表示されます。

 

3. SSH経由で公開リモートホストを追加

Jenkins ホームページで[Jenkins の管理] -> [システムの構成] -> [SSH 経由で公開] -> [SSH サーバー] -> [追加] オプション ボタンをクリックして、SSH リモート ホストを追加します。

 

        図に示すように、名前、ホスト名、ユーザー名などの必要な情報を入力した後、「詳細」オプションボタンをクリックします -> 「パスワード認証を使用するか、別のキーを使用する」オプションにチェックを入れます -> 「リモート」を入力しますホストのログイン パスワード」 -> 「設定のテスト」を選択して、リモート ホストの設定をテストします。リモート ホスト構成のテストが成功したら、[保存] ボタンをクリックします。

 

4. Maven、JDK、および Git 環境を構成する

        Jenkins ホームページで、「Jenkins の管理」 -> 「グローバル ツール構成」 -> 「JDK」 -> 「JDK の追加」をクリックし、JDK エイリアスを「JDK17」に設定しますこの場合、「自動的にインストール」オプションを削除し、「JAVA_HOME」を JDK の実際のインストール パスに設定します。

/usr/local/java

 

 

5. Jenkins に Maven をインストールする

[root@jenkins ~]# tar xf apache-maven-3.5.0-bin.tar.gz

[root@jenkins ~]# mv apache-maven-3.5.0 /usr/local/maven-3.5.0

 

6. Maven 用の Alibaba Cloud ミラー ステーションを変更する

[root@jenkins ~]# vim /usr/local/maven-3.5.0/conf/settings.xml

#删除两个<mirrors>中的所有东西,大概12行,把下面的阿里云镜像站添加到两个<mirrors>中

    <mirror>

        <id>nexus-aliyun</id>

        <mirrorOf>central</mirrorOf>

        <name>Nexus aliyun</name>

<url>http://maven.aliyun.com/nexus/content/groups/public</url>

</mirror>

最終効果

 

        [グローバル ツール構成] 構成インターフェイスで Maven 構成オプションを見つけ、[Maven の追加] をクリックしてエイリアスをmaven3.5.0 に設定します。

 

7. Gitの設定

[root@jenkins ~]# どの git なのか

/usr/bin/git

 

 

上記のグローバル基本構成が完了したら、「保存」をクリックして完了します。

(6) Webホストの設定

1.Tomcatをインストールする

[root@tomcat ~]# tar xf apache-tomcat-8.5.40.tar.gz

[root@tomcat ~]# mv apache-tomcat-8.5.40 /usr/local/tomcat

 

2.公開キーを jenkins ホストに公開します。

[root@tomcat ~]# ssh-keygen

[root@tomcat ~]# ssh-copy-id 192.168.100.132

 

3.ホスト Jenkins は、デフォルトで jenkins ユーザーを使用して git に接続するため、jenkins ユーザーを使用してキー ペアを生成し、それを git に送信します。

[root@jenkins ~]# id ジェンキンス

[root@jenkins ~]# su -s /bin/bash jenkins

bash-4.2$ ssh-keygen

bash-4.2$ ssh-copy-id [email protected]

bash-4.2$ ssh [email protected]           #ログインテスト

bash-4.2$ 終了

[root@jenkins ~]# ssh-keygen

[root@jenkins ~]# ssh-copy-id [email protected]

[root@jenkins ~]# ssh [email protected]              #ログインテスト

 

4. 新しい Maven プロジェクトを作成する

        上記の設定が完了したら、Jenkins ホームページに戻り、「新しいタスク」を選択し、タスク名「プローブ」を入力し、「Maven プロジェクト」を選択して、現在のページの下部にある「OK」ボタンをクリックします。

「新規アイテム」を選択します

「Maven プロジェクト」を選択し、「OK」をクリックします。

 

OK」ボタンをクリックした後、「ソースコード管理」、「Gi t」を選択し、「RepositoriesURL」を次のように設定します。

[email protected]:/home/git/probe.git

 

「ビルド」を選択します

2 行目に「clean package -Dmaven.test.skip=true」を入力します。

 

「 Post-Build Operations 」で        「send build artifacts over SSH 」を選択します。 「Exec command」でコマンドを実行する意味は、自動デプロイメントの前にTomcatプロセスを強制終了し、warパッケージを削除して、scpリモートコピーコマンドを使用することです。 Jenkins を自動的にパッケージ化するには、適切なプロジェクトの war パッケージを現在の Tomcat アプリケーション ディレクトリにコピーします。次に、Tomcat を再起動します。

選択後、「実行コマンド」に次のように入力します。

scp 192.168。1 00.1 3 2:/root/.jenkins/workspace/probe/psi-probe-web/target/probe.war /usr/local/tomcat/webapps/

/usr/local/tomcat/bin/startup.sh

        上記の設定がすべて完了したら、「保存」をクリックします。次に、プロジェクトがビルドされるまで、先ほど作成したプローブ」→「今すぐビルド」をクリックします。ビルドプロセスは「コンソール出力」で確認できます。

 

「今すぐビルド」を選択すると #1 が表示されます

 

履歴をクリックするとリンクが表示されます

 

リンクをクリックして #1 に移動します

 

コンソール出力を選択してビルドプロセスを表示します

 

 

待ち時間は終わりました

5. Jenkins の自動パッケージ化とデプロイメントの結果を確認する

Web ホストで、プローブ ディレクトリが /usr/local/tomcat/webapps ディレクトリにコピーされているかどうかを確認します。

[root@tomcat ~]# ls /usr/local/tomcat/webapps/

[root@tomcat ~]# ls /usr/local/tomcat/webapps/probe -l

 

 

上記の結果から判断すると、Jenkins は準備されたプローブ戦争パッケージをコピーしました。

(7) Webページアクセステスト:

ビルド後の実行コマンドから、Tomcat が再起動され、ブラウザからテストプローブ監視システムにアクセスしていることがわかります。http://192.168.100.133:8080/プローブ

アクセスできません。権限を設定する必要があります。

[root@tomcat ~]# vim /usr/local/tomcat/conf/tomcat-users.xml

[root@tomcat ~]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

[root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh

[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh

 

もう一度テストにアクセスしてください。

http://192.168.100.133:8080/probe 、ユーザー名: tomcat、パスワード: tomcat を入力してください

 

ログインすると、次のように表示されます。

 

この時点で、Jenkins は自動的にパッケージ化してデプロイします。

おすすめ

転載: blog.csdn.net/2302_77582029/article/details/132430536