改善の第 4 段階
日時: 2023 年 8 月 22 日
参加者:クラス全員
内 容:
Jenkins に基づいて Tomcat 環境を自動的にパッケージ化してデプロイする
目次
2. インストールと展開: Jenkins に基づいて Tomcat 環境を自動的にパッケージ化し、展開します。
(2) すべてのホストのファイアウォールとselinuxをオフにし、ホスト名を変更します。
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 は自動的にパッケージ化してデプロイします。