前回の記事 「マイクロサービス アーキテクチャ パターン パート 1: 分化パターン」では、マイクロサービスの魅力的な天下について詳しく説明しました。これは、マイクロサービスとそのパターンに関する私の包含的な記事シリーズの始まりでした。
論理的なステップとしては、このシリーズの第 2 部に進むことになりますが、次に調査してお話ししたいのは、これらのマイクロサービスをエンド ユーザーにシームレスに供给する主要なプロセスであると判定しました。
CI/CD は、アプリ開発のさまざまな段階に自動化を追加することで実現される、アプリを顧客に配信するための手段です。 CI/CD (継続的インテグレーションと継続的デプロイメント) を掌握することで、開発者はバックエンド プロジェクトの功效物がプロジェクト リポジトリの境地を越えてどのように存在するかをより深く懂得できるようになると私は信じています。この懂得は、開発者の視点に底子的な変化をもたらす能够性もあります。自分の仕事を単にコード行として見るのではなく、プロジェクトのより広範なコンテキストを価値のある製品として受け入れることができるようになります。
この記事では、実際の応用を通じて CI/CD プロセスをわかりやすく説明することを目标としています。ステップバイステップのチュートリアルをモジュールごとに分けて説明し、CI/CD パイプラインを手動で構築します。これを行うために、 AWS、Docker、Kubernetes、Ansible、Git、Apache Maven、 Jenkinsなどの最新の DevOps ツールの力を活用します。それでは、この旅を始めましょう!
このモジュールは、AWS EC2 仮想サーバー インスタンスの作成専用です。この記事の一部として、Jenkins、Ansible、Kubernetes 用に 3 つの EC2 インスタンスをセットアップします。現時点では、次のモジュールに進み、「[モジュール 2]: Jenkins」、「[モジュール 6]: Ansible」、および「[モジュール 7]: Kubernetes」セクションでこのモジュールに再度アクセスできます。
//aws.amazon.com にアクセスします。
[AWS アカウントの作成]ボタンをクリックします。
アカウント作成 Web ページの唆使に従います。
//console.aws.amazon.com/console/home に移動します。 「サインイン」ボタンをクリックします。
この Web ページに须要な資格情報をすべて入力します。
検索ボックスで EC2 を検索します。
[EC2 サービス]をクリックして、[EC2 仮想サーバー] を選択します。
[インスタンスの起動]ボタンをクリックします。
「名前とタグ」セクションに進みます。
「名前」セクションに新しい AWS EC2 仮想サーバー インスタンスの名前を入力します。
「追加タグを追加」をクリックして、仮想サーバーにタグを追加することもできます。
「アプリケーションと OS イメージ (Amazon マシン イメージ)」セクションに進みます。
仮想サーバーを無料でプレイするには:
「インスタンスタイプ」セクションに進みます。
仮想サーバーを無料でプレイするには:
[インスタンス タイプ]セクションで、無料操纵枠対象タグを持つタイプを選択します。
私の場合、それはt2.micro (ファミリー: t2 1cCPU 1 GiB メモリ、現在の世代: true)です。
「ストレージの構成」セクションに進みます。
仮想サーバーを無料でプレイするには:
デフォルト設定を変更しないでください。無料操纵枠の対象となるお客様は、30 GB の EBS 汎用 (SSD) または磁気ストレージを动手できます。
「ネットワーク設定」セクションに進みます。
仮想サーバーのセキュリティを設定する须要があります。これをする、
デフォルトでは、仮想サーバーは (タイプ - SSH、プロトコル - TCP、ポート - 22 ) 経由でアクセスできます。追加の接続タイプが须要な場合は、追加の受信セキュリティ グループ ルールを追加して接続タイプを追加します。
「キーペア(ログイン)」セクションに進みます。
新しいキーペアをまだ作成していない場合は作成します。
「キーペア」をまだ作成していない場合:
[インスタンスの起動]ボタンをクリックして EC2 仮想サーバー インスタンスを起動します。
EC2 仮想サーバー インスタンスの作成プロセスが完了すると、次のように表现されます。
次に、 「すべてのインスタンスを表现」ボタンをクリックして「インスタンス」セクションに移動する须要があります。
これで、AWS EC2 仮想サーバー インスタンスが実行されていることがわかります。
次に、EC2 仮想サーバー インスタンスで JenkinsServer を構成しましょう。
Jenkins を実行するには仮想サーバーが须要です。
このチュートリアルの「[モジュール 1]: AWS EC2 仮想サーバー」セクションの手順に従ってこのステップを完了し、JenkinsServer という名前の EC2 仮想サーバー インスタンスを作成します。
セキュリティグループ設定を追加することを忘れないでください。これにより、 JenkinsとSSH がそれぞれポート8080と22で動作できるようになります。
EC2 仮想サーバー インスタンスを区別するには、 「JenkinsServer」という名前を操纵します。
新しい「JenkinsServer」 AWS EC2 インスタンス用に「CI_CD_Pipeline」セキュリティ グループと「CI_CD_Pipeline_Key_Pair」を作成します。記事内でさらに再操纵できます。
AWS コンソールのホームページ→ EC2 办理コンソールのダッシュボード→インスタンスに移動します。
次に、 JenkinsServerを選択し、 「接続」ボタンをクリックします。
すると、この Web ページが表现されます。もう一度「接続」ボタンをクリックしてください。
これで、EC2 仮想サーバー インスタンスのオンライン ターミナルが表现されます。
次に、EC2 仮想サーバー インスタンスに Jenkins をダウンロードする须要があります。
次の唆使に従ってください。
Jenkins のダウンロードに移動します。
安靖版 (LTS) および凡是リリース (毎週) のオプションが表现されます。 LTS オプションを選択します。
このWebページが表现されます。
sudo wget -O /etc/yum.repos.d/jenkins.repo //pkg.jenkins.io/redhat-stable/jenkins.repo
これで Jenkins がダウンロードされました。
Jenkins のインストールを完了するには、Jenkins キーをインポートする须要があります。
Jenkins キーをインポートするには、 「sudo rpm..」コマンドをコピーして実行する须要があります。
sudo rpm --import //pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
このようにして、 「rpm」パッケージ マネージャーは、インストールする Jenkins パッケージが Jenkins プロジェクトによって公開されたものとまったく同じであること、および改ざんまたは破損していないことを確認できます。
Jenkins を実行するには、EC2 仮想サーバー インスタンスにJavaをインストールする须要があります。
Javaをインストールするには、次のコマンドを操纵します。
sudo amazon-linux-extras install java-openjdk11 -y
次のコマンドを操纵して、 Javaが正しくインストールされたかどうかを確認します。
java -version
そのようなものが見られます。
Jenkins を実行するには、EC2 仮想サーバー インスタンスにfontconfigをインストールする须要があります。
このコマンドを操纵します。
sudo yum install fontconfig java-11-openjdk -y
Fontconfig は、システム全部のフォント構成、カスタマイズ、アプリケーション アクセスを供给するように設計されたライブラリです。 Jenkins にはフォントをレンダリングする機能があるため、Jenkins にはこれが须要です。
前のステップでは、特定の Jenkins リポジトリを操纵するように EC2 仮想サーバー インスタンスを構成し、このリポジトリに関連付けられた GPG キーをインポートしました。次に、追加した Jenkins も含め、認識しているすべてのリポジトリを検索して Jenkins パッケージを見つけるコマンドを実行する须要があります。 Jenkins リポジトリで Jenkins パッケージを見つけると、ダウンロードしてインストールします。
このコマンドを実行してみましょう。
sudo yum install jenkins -y
このコマンドを操纵して Jenkins を起動できます。
sudo systemctl start jenkins
Jenkins が実行されていることを確認するには、次のコマンドを操纵します。
sudo systemctl status jenkins
以下のスクリーンショットに着力がそのまま表现されます。
これで、Jenkins が起動して実行されるようになります。
Jenkins アプリケーションにアクセスするには、肆意の Web ブラウザを開いて、EC2 インスタンスのパブリック IP アドレスまたはドメイン名に続いてポート 8080 を入力します。
//<your-ec2-ip>:8080
初めて Jenkins にアクセスすると、自動天生されたパスワードでロックされます。
次のコマンドを操纵して、このパスワードを表现する须要があります。
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
このパスワードをコピーし、ブラウザに戻り、办理者パスワード フィールドに貼り付けて、[続行] をクリックします。
すると、このWebページが表现されるようになります。
これで、Jenkins サーバーを操纵できるようになりました。
これで、Jenkins が普通に動作しているので、Jenkins パイプラインの作成を開始できます。 Jenkins パイプラインを作成するには、新しい「Freestyle プロジェクト」を作成する须要があります。新しい「Freestyle プロジェクト」を作成するには、Jenkins ダッシュボードに移動し、 「新しい項目」ボタンをクリックする须要があります。
Github の名前「Freestyle プロジェクト」(「パイプライン」という名前は今後操纵されます) を入力し、 「OK」ボタンをクリックします。
次に、パイプラインの説明を入力します。
次に、「適用」ボタンをクリックして「保管」します。その後、このチュートリアルで構築するパイプラインの基礎を作成したことになります。
Jenkins が AWS EC2 仮想サーバー インスタンス上で実行されるようになったので、パイプラインを操纵して Git を構成できます。
Git は、ソフトウェア チームが特別な種類のデータベース内のコードに対するすべての変更を追跡できるように設計された、の分离バージョン办理システム (VCS) です。間違いがあった場合、開発者は時計を戻し、コードの之前のバージョンを比較して、チームメンバー全員への紊乱を最小限に抑えながら間違いを批改することができます。 VCS は特に次の場合に役立ちます。
最も普通的なバージョン办理システムである Git を操纵すると、プロジェクトの Github リポジトリから、Jenkins がインストールされている EC2 仮想サーバー インスタンスに最新のコードをプルできます。
このコマンドを操纵して Git をインストールします。
sudo yum install git -y
次に、次のコマンドを操纵して、Git が動作していることを確認します。
git --version
現在、Git は EC2 仮想サーバー インスタンス上で普通に動作しています。
Git は EC2 仮想サーバー インスタンス上で普通に動作しているため、Jenkins を Git と統合できるようになりました。
この統合を開始するには、Jenkins Github プラグインをインストールしましょう。
Jenkins ダッシュボード セクションに移動します。
「Jenkins の办理」ボタンをクリックし、 「プラグインの办理」ボタンをクリックします。
「操纵能够なプラグイン」ボタンをクリックします。
Githubプラグインの検索ボックスを見つけます。
Githubプラグインを選択します。
Githubプラグインを選択します。そして、 「复兴動せずにインストール」ボタンをクリックします。
Github プラグインのダウンロードが完了するまで待ちます。
はい! Jenkins Github プラグインがインストールされています。
GitHub Jenkins プラグインがインストールされたので、最終的に Jenkins を Git と統合するようにこのプラグインを構成できます。そのためには、「トップページに戻る」ボタンをクリックしてメインページに戻る须要があります。
次に、メイン ページで、 「Jenkins の办理」ボタンをクリックし、 「グローバル ツール構成」ボタンをクリックする须要があります。
次に、グローバル ツール構成 Web ページで、Git セクションに移動する须要があります。
[Git] セクションでは、コンピューター上の Git の名前とパスを指定して Git を構成する须要があります。
次に、 「適用」ボタンと「保管」ボタンをクリックします**。**
これで、Jenkins Github プラグインの構成が完了しました。
Jenkins Github プラグインがインストールされて構成されたので、パイプライン内でこのプラグインを操纵できるようになります。これにより、モジュール 2 で作成したパイプラインが、指定した GitHub リポジトリからプロジェクト コードをプルできるようになります。
このプラグインをパイプラインに統合するには、[ソース コード办理] セクションに移動し、パイプラインで Git を選択する须要があります。次に、プロジェクト リポジトリの URL を指定する须要があります。プロジェクト リポジトリが Github で公開されている場合、認証情報を供给する须要はありません。プロジェクト リポジトリが Github 上でプライベートである場合は、認証情報を供给する须要があります。
次のリポジトリ URL: で私のプロジェクトを操纵できます。
それをコピーして「リポジトリ URL」入力に貼り付けるだけです。次に、 「適用」ボタンと「保管」ボタンをクリックして、Git とパイプラインの統合を完了します。
これで、更新されたパイプラインを操纵して、Github からプロジェクトをプルできるようになりました。これを行うには、**「今すぐビルド」** ボタンをクリックする须要があります。その結果、ビルド履歴にビルドが胜利したことが表现されます。
ビルド履歴から最后のビルドを開きます。
これで、最后のビルドの胜利したジョブ結果が表现されます。 AWS EC2 ターミナルを開いた場合。パイプラインが普通に動作していることを確認できます。
このコマンドを操纵するだけです。
cd /var/lib/jenkins/workspace/{your pipeline name}
このようにして、Github からのプロジェクトが AWS EC2 仮想サーバー インスタンスにプルされたことがわかります。
Apache Maven は、ソフトウェア開発において広く操纵されているビルド自動化およびプロジェクト办理ツールです。プロジェクトの依存関係を办理し、一貫したビルド ライフサイクルを供给することで、コードのコンパイル、テスト、パッケージ化のプロセスを公道化します。 Maven は、XML ベースの構成ファイル (POM ファイル) を操纵してプロジェクトの構造、依存関係、およびタスクを定義し、開発者が複雑なソフトウェア プロジェクトを効率的に办理および展開できるようにします。
Git をパイプラインに統合したので、プロジェクトをビルド、テスト、パッケージ化できる Apache Maven を組み込むことでパイプラインをさらに強化できます。これを行うには、Jenkins と Git がインストールされている AWS EC2 仮想サーバー インスタンスに Apache Maven をインストールする须要があります。
Apache Maven をダウンロードするには、 「/opt」ディレクトリに移動します。
cd /opt
そして、このコマンドを操纵します。
sudo wget //dlcdn.apache.org/maven/maven-3/3.9.4/binaries/apache-maven-3.9.4-bin.tar.gz
このコマンドは、最新の公式 Apache Maven をダウンロードします (公式 Apache Maven Web サイトで最新バージョンを確認してください)。最新の公式 Apache Maven リリースを見つけるには、リンクを操纵してください。
次のコマンドを操纵して、ダウンロードしたアーカイブから Apache Maven を抽出します。
sudo tar -xvzf apache-maven-*.tar.gz
このコマンドを操纵してルート フォルダーに移動します。
cd ~
このコマンドを操纵して.bash_profileファイルを編集します。
vi .bash_profile
JAVA_HOME変数と M2_HOME 変数を追加します。
JAVA_HOME変数には JDK11 へのパスを割り当て、 M2_HOME変数には Maven ディレクトリへのパスを割り当てます。
JDK パスを検索するには、次のコマンドを操纵します。
sudo find / -name java
VIMの使い方
変更を保管します。
次に、このコマンドを実行してシステム変数を更新します。
source .bash_profile
$PATHを確認するには、次のコマンドを操纵します。
echo $PATH
Apache Maven を確認するには、次のコマンドを操纵します。
mvn -v
すべてを正しく実行すると、Apache Maven のバージョンを表现できるようになります。
Apache Maven は EC2 インスタンスで操纵できるため、Apache Maven プラグインをインストールしてパイプラインと統合できます。
これを実現するには、次の手順に従います。
ダウンロードプロセスが終了するまで待ちます。
そして「トップページに戻る」ボタンをクリックしてください。
Apache Maven Jenkins プラグインが普通にインストールされると、モジュール 2 と 3 で作成および更新したパイプライン内でこのプラグインを操纵できるようになります。
これを行うには、次の手順に従います。
次に「Maven」セクションに進みます。 「Maven を追加」ボタンをクリックします。 「自動的にインストールする」のチェックを外します。
次に、名前とMAVEN_HOMEパスを追加します。
「適用」ボタンと「保管」ボタンをクリックします。
これで、Apache Maven Jenkins プラグインの構成が完了しました。
Apache Maven GitHub プラグインがインストールされて構成されたので、パイプライン内で Apache Maven を操纵できるようになりました。これにより、「[モジュール 2]: Jenkins Server」で作成したパイプラインでプロジェクト コードを構築し、jar アーティファクトを作成できるようになります。
Apache Maven をパイプラインに統合するには、次の手順に従う须要があります。
最後に、 「適用」ボタンと「保管」ボタンをクリックして、Apache Maven とパイプラインの統合を完了する须要があります。
これで、更新されたパイプラインを操纵して Github プロジェクトを構築できるようになりました。これを行うには、**「今すぐビルド」** ボタンをクリックする须要があります。その結果、ビルド履歴にジョブの胜利結果が表现されます。
AWS EC2 ターミナルを開いた場合。パイプラインが普通に動作していることを確認できます。
このコマンドを操纵するだけです。
cd /var/lib/jenkins/workspace/{your pipeline name}/target
こうすることで、GitHub からのプロジェクトのビルドが胜利したことを示す JAR アーティファクトを確認できます。
次に、Docker と Ansible をインストールする新しい EC2 インスタンスを「Ansible Server」という名前で作成しましょう。
このチュートリアルの「 AWS EC2 仮想サーバー インスタンスの起動」セクションの手順に従って、このステップを完了します。セキュリティグループ設定を追加することを忘れないでください。これにより、Docker と SSH がそれぞれポート 8080 と 22 で動作できるようになります。
「接続」ボタンをクリックします。
これで、EC2 仮想サーバー インスタンスのオンライン ターミナルが表现されます。
sudo chown ansible-admin:ansible-admin /opt/docker
次に、Ansible EC2 インスタンスに docker をインストールする须要があります。これを行うには、新しい docker フォルダーを作成する须要があります。
sudo mkdir /opt/docker
次に、次のコマンドを実行して docker をインストールします。
sudo yum install docker -y
Docker 办理者権限を赋予するには、現在のユーザー「ansible-admin」をEC2 仮想サーバー「AnsibleServer」の Docker グループに追加する须要があります。
sudo usermod -a -G docker ansible-admin
これらの変更を有効にするには、ログアウトしてから再度ログインする须要があります。
その後、次のコマンドを実行できます
id ansible-admin
新しい docker ユーザーが存在することを確認します。
これで、Docker が Ansible EC2 インスタンスにインストールされたので、次のコマンドを実行して起動できるようになります。
sudo systemctl start docker
Docker が起動すると、次のコマンドを実行できます。
sudo systemctl status docker
docker がアクティブで現在実行中であることを確認します。
パイプラインの最終バージョンでは、プロセスに GitHub プロジェクトから新しい Docker イメージを作成し、それを Docker Hub にプッシュすることが含まれます。これを実現するには、GitHub プロジェクトに Dockerfile が含まれている须要があります。
「 [モジュール 3]: Git と Github」モジュールで供给されたプロジェクト「Hello」を操纵した場合、このプロジェクト リポジトリには既に Dockerfile が含まれているため、新しい Dockerfile を作成する须要はありません。
FROM eclipse-temurin:17-jre-jammy ENV HOME=/opt/app WORKDIR $HOME ADD hello-0.0.1-SNAPSHOT.jar $HOME ENTRYPOINT ["java", "-jar", "/opt/app/hello-0.0.1-SNAPSHOT.jar" ]
单独のプロジェクト リポジトリを操纵していて、そこに Dockerfile が含まれていない場合は、新しい Dockerfile を作成する须要があります。
新しい Dockerfile を作成するには、次のコマンドを実行すると、新しいファイルが作成されます。
sudo touch Dockerfile
次に、コンテナ化されたアプリケーション環境を構築する方式を説明する一連のコマンドをこのファイルに入力します。これらのコマンドには、イメージへのファイルのコピー、ソフトウェアのインストール、環境変数の設定、コンテナーの構成などのアクションが含まれます。
これらのコマンドを Dockerfile に入力するには、次のコマンドを実行します。
vim Dockerfile
Dockerfile を操纵する準備ができました。
Dockerfile を操纵する準備ができたので、**"JenkinsServer"**EC2 インスタンスからプロジェクトの JAR アーティファクトをコピーし、それを"AnsibleServer" EC2 インスタンスに貼り付けます。この転送はパイプラインを通じてさらに自動化されることに注重することが主要です。
このステップを完了すると、セットアップした Docker 環境とともに Dockerfile をテストする準備が整います。
テストを開始する前に、Dockerhub で必ず認証を行ってください。次のコマンドを実行します。
docker login
このコマンドでは、ユーザー名とパスワードを含む Dockerhub ログイン資格情報の入力を求められます。
これで、 Dockerへのログインプロセスが完了し、テストを続行する準備が整いました。
Dockerhub へのログインが完了すると、準備した Dockerfile のテストを開始する準備が整いました。
このコマンドを実行してdockerイメージを作成します。
docker build -t hello:latest .
次に、後続のコマンドを実行して、イメージの Dockerhub へのアップロードを轻易にするタグを確立します。
docker tag hello:latest zufarexplainedit/hello:latest
最後に、このコマンドを実行して、Docker イメージを Dockerhub にプッシュします。
docker push zufarexplainedit/hello:latest
これらの手順に従って、Dockerhub アカウントに移動して、新しいイメージが表现されるかどうかを確認します。
画像が効果的に追加されたことが確認できるはずです。この結果により、Docker 環境のインストールが胜利し、Dockerfile が正しいことが確認されます。
次に、EC2 仮想サーバー インスタンス上で Ansible サーバーを構成しましょう。
Ansible を実行するには仮想サーバーが须要です。
このチュートリアルの「[モジュール 1]: AWS EC2 仮想サーバー」セクションの唆使に従ってこのステップを完了し、Ansible の EC2 仮想サーバー インスタンスを作成します。
セキュリティグループ設定を追加することを忘れないでください。これにより、 AnsibleとSSH がそれぞれポート8080と22で動作できるようになります。
EC2 仮想サーバー インスタンスを区別するには、 「AnsibleServer」という名前を操纵します。
「CI_CD_Pipeline」セキュリティ グループと「CI_CD_Pipeline_Key_Pair」を新しい「AnsibleServer」 EC2 インスタンスに再操纵できます。
AWS コンソールのホームページ → EC2 办理コンソールのダッシュボード → インスタンス → AnsibleServer に移動します。
次に「接続」ボタンをクリックします。
すると、この Web ページが表现されます。もう一度「接続」ボタンをクリックしてください。
これで、EC2 仮想サーバー インスタンスのオンライン ターミナルが表现されます。
次に、EC2 仮想サーバー インスタンス上で Ansible Server を構成しましょう。
EC2 仮想サーバー インスタンスで AnsibleServer を構成する場合、最后に行う须要があるのは、ホスト名を変更することです。
やりましょう。次のコマンドを実行してホスト名ファイルを開きます。
sudo vi /etc/hostname
次のようなものが表现されるはずです。
このホスト名を「ansible-server」に置き換えます。次に、复兴動します。
sudo init 6
次に、新しいansible-adminユーザーを AWS EC2 仮想サーバー インスタンスに追加しましょう。
これを行うには、次のコマンドを操纵します。
sudo useradd ansible-admin
次に、 ansible-adminユーザーのパスワードを設定します。
sudo passwd ansible-admin
また、 sudoersファイルを編集してユーザー権限を構成する须要があります。
sudo visudo
このsudoersファイルに「ansible-admin ALL=(ALL) ALL」を追加します。
また、 /etc/ssh/sshd_configファイルを編集して PasswordAuthentication を有効にする须要があります。
sudo vi /etc/ssh/sshd_config
次に、サービスをリロードしてこれらの変更を確認する须要があります。
sudo service sshd reload
このコマンドを実行すると、次のように表现されます。
これで、このコマンドを操纵して、以降のすべてのコマンドに sudo を追加することを避けることができます。
sudo su - ansible-admin
この記事では、K8s EC2 仮想サーバー インスタンスなどのリモート サーバーをさらに办理することを計画しています。このため、SSH キーを設定する须要があります。
ssh-keygen
このコマンドを実行すると、次のように表现されます。
これで SSH キーが天生され、操纵できるようになりました。
これで、 「AnsibleServer」 EC2 仮想サーバー インスタンスに Ansible をインストールできるようになりました。
やりましょう。
このコマンドを実行して Ansible をインストールします。
sudo amazon-linux-extras install ansible2
Ansible を確認するには、次のコマンドを操纵します。
ansible --version
このコマンドを実行すると、次のように表现されます。
Ansible は「AnsibleServer」 EC2 仮想サーバー インスタンスにインストールされているため、Ansible と統合するように Jenkins を構成できます。 Jenkins を Ansible がインストールされている EC2 仮想サーバー インスタンスおよびKubernetesがインストールされている他の EC2 仮想サーバー インスタンスと統合するには、「Publish over SSH」プラグインをインストールする须要があります。
「ダッシュボード」 →「 Jenkinsの办理」 → 「システムの構成」 → 「操纵能够なプラグイン」に移動します。
次に、検索ボックスに「Publish over SSH」と入力します。
「复兴動せずにインストール」ボタンをクリックします。ダウンロードプロセスが終了するまで待ちます。
これで、「Publish over SSH」プラグインが Jenkins EC2 仮想サーバー インスタンスにインストールされました。
Apache Maven Jenkins プラグインが普通にインストールされると、モジュール 2 と 3 で作成および更新したパイプライン内でこのプラグインを操纵できるようになります。
これを行うには、次の手順に従います。
「ダッシュボード」 → 「Jenkins の办理」 → 「システムの構成」 → 「SSH 経由で公開」に移動します。
ホスト名、ユーザー名、奥秘キー (該当する場合はパスワード) など、须要なデータをスクリーンショットにあるとおりにすべて入力します。
次に、 「適用」ボタンと「保管」ボタンをクリックします。
これで、 「Publish over SSH」 Jenkins プラグインの構成が完了しました。
次に、「設定のテスト」をクリックして、プラグインが正しく動作していることを検証します。
左側では、テスト プラグインの設定ステータスが「胜利」であることがわかります。これはプラグインの設定が正しいことを象征します。
AnsibleServer EC2 インスタンス上に、プロジェクト JAR が保管される新しいフォルダーを作成する须要があります。この jar は、後で Docker イメージを作成するために操纵されます。
はじめましょう。
AnsibleServer EC2 インスタンスの「/opt」フォルダーに移動します。
cd /opt
そこに新しいフォルダー「docker」を作成します。
sudo mkdir docker
この「docker」フォルダーに権限を与えます。
sudo chown ansible-admin:ansible-admin docker
次に、このコマンドを実行して「docker」フォルダーの権限を確認します。
ll
「docker」フォルダーに「ansible-admin」ユーザーでアクセスできることがわかります。
「Publish over SSH」 Github プラグインがインストールおよび構成されたので、「[モジュール 2]: Jenkins Server」で作成したパイプラインにプラグインを統合して、プロジェクトの jar アーティファクトを「 JenkinsServer」から「AnsibleServer」 。
「Publish over SSH」 Github プラグインをパイプラインに統合するには、次の手順に従う须要があります。
最後に、 「適用」ボタンと「保管」ボタンをクリックして、 「SSH 経由で公開」プラグインとパイプラインの統合を完了する须要があります。
これで、更新されたパイプラインを操纵して、プロジェクト jar アーティファクトを「 JenkinsServer」から「AnsibleServer」に転送できるようになりました。これを行うには、 「今すぐビルド」ボタンをクリックする须要があります。その結果、ビルド履歴にジョブの胜利結果が表现されます。
「AnsibleServer」 AWS EC2ターミナルを開いた場合。パイプラインが普通に動作していることを確認できます。
このコマンドを操纵するだけです。
cd /opt/docker
こうすることで、GitHub からのプロジェクトのビルドが胜利したことを示す JAR アーティファクトを確認できます。
Ansible Playbook を実行するときは、それを実行するホストを指定します。これは 2 つの方式で行うことができます。
hosts
パラメーターを IP アドレスまたはホスト名のリストに設定できます。/etc/ansible/hosts
です。
/etc/ansible/hosts
を編集すると、Playbook を実行するたびにホストの IP アドレスを書き出すことなく、ホストのグループを簡単に办理できます。
次のコマンドを実行して、AnsibleServer EC2 インスタンスのホストを調べてみましょう。
sudo ifconfig
AnsibleServer EC2 インスタンス ホストを見つけたら、次のコマンドを実行して、それを Ansible hosts ファイルに追加できます。
sudo vi /etc/ansible/hosts
「[ansible]」を参照として追加することもできます
サーバーのクラスターを办理していて、そのすべてにプレイブックを適用したい場合は、プレイブックで各サーバーの IP アドレスを指定する代わりに、すべてのサーバーをインベントリ ファイルのグループに追加して、プレイブック内のグループ。
Ansible は、リモート サーバー上のタスクを自動化するように設計されています。パスワードレス SSH 認証により、Ansible は手動でパスワードを入力しなくてもこれらのサーバーに接続できるようになります。
このコマンドを実行して、ansible-admin ユーザーの SSH キーを操纵して、自分のコンピューターから別のコンピューター (IP アドレス 172.31.34.41 のコンピューターなど) への宁静な接続を作成します。
sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}
私の場合はこんな感じです。
sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub [email protected]
「追加されたキーの数: 1」が表现されます。パスワードなしの SSH 認証のインストールが普通に完了したことを象征します。
Ansible の設定がすべて完了し、準備が整ったので、パイプライン用の新しい Ansible プレイブックを作成できます。この Playbook により、Ansible が新しい Docker イメージを作成して Dockerhub に送信できるようになります。
その方式は次のとおりです。
touch hello-app.yml
hello-app.yml
ファイルを編集します。このコマンドを操纵して編集用に開きます。 vi hello-app.yml
--- - hosts: ansible user: root tasks: - name: create docker image command: docker build -t hello:latest . args: chdir: /opt/docker - name: create tag to push image onto dockerhub command: docker tag hello:latest zufarexplainedit/hello:latest - name: push docker image onto dockerhub command: docker push zufarexplainedit/hello:latest
Docker タスク用の Ansible プレイブックを操纵する準備ができました。
Ansible、Ansible Playbook、AnsibleServer、および JenkinsServer がすべて適切に構成されたら、Ansible Playbook をテストします。
Ansible プレイブックの場所に移動します。
cd /opt/docker
次に、以下のコマンドを実行します。
sudo -u ansible-admin ansible-playbook /opt/docker/hello-app.yml
完了すると、Ansible プレイブックの実行結果が普通に表现されることがわかります。
さらに、Dockerhub アカウントにアクセスして、新しいイメージが表现されるかどうかを確認してください。
新しく追加された画像が表现されるはずです。この結果により、Ansible プレイブックが正しいことが確認されます。
「Publish over SSH」 Github プラグイン、Ansible、Docker がインストールおよび設定されたので、「[モジュール 2]: Jenkins Server」で作成したパイプラインにそれらをすべて統合して、プロジェクトの jar アーティファクトを転送できるようになりました。 「 JenkinsServer」から「AnsibleServer」に変更し、プロジェクトから新しい Docker イメージを構築して、この Docker イメージを Dockerhub にプッシュします。
これを実現するには、次の手順に従う须要があります。
最後に、 「適用」ボタンと「保管」ボタンをクリックして、パイプラインとの Ansible Docker タスクの統合を終了します。
これで、アップグレードされたパイプラインをテストして、プロジェクトの jar アーティファクトを「 JenkinsServer」から「AnsibleServer」にシームレスに転送し、プロジェクトから新しい Docker イメージを構築して、この Docker イメージを Dockerhub にプッシュできるようになりました。これを行うには、 「今すぐビルド」ボタンをクリックする须要があります。その結果、ビルド履歴にジョブの胜利結果が表现されます。
さらに、Dockerhub アカウントにアクセスして、新しいイメージが表现されるかどうかを確認してください。
新しく追加された画像が表现されるはずです。この結果は、Docker タスクを含む Ansible プレイブックがパイプラインに普通に統合されたことを確認します。
次に、EC2 インスタンスで K8 を構成しましょう。新しい EC2 インスタンスを作成し、 Kubernetesクラスターとさらに対話するための kubectl コマンドライン ツールをインストールします。
このチュートリアルの「 AWS EC2 仮想サーバー インスタンスの起動」セクションの手順に従って、このステップを完了します。
セキュリティグループ設定を追加することを忘れないでください。これにより、すべてのツールとSSH がそれぞれポート8080と22で動作できるようになります。
EC2 仮想サーバー インスタンスを区別するには、 「K8sServer」という名前を操纵します。
「CI_CD_Pipeline」セキュリティ グループと「CI_CD_Pipeline_Key_Pair」を新しい「K8sServer」 EC2 インスタンスに再操纵できます。
「接続」ボタンをクリックします。
これで、EC2 仮想サーバー インスタンスのオンライン ターミナルが表现されます。
EC2 仮想サーバー インスタンス上で KuberenetesServer を構成する場合、最后に行う须要があるのは、ホスト名を変更することです。
やりましょう。次のコマンドを実行してホスト名ファイルを開きます。
sudo vi /etc/hostname
このようなものが表现されるはずです。
このホスト名を「kubernetes-server」に置き換えて复兴動します。
sudo init 6
ホスト名が変更されました。
このコマンドを操纵してAWS のバージョンを確認します。
aws --version
こうすることで、現在の aws-cli バージョンを確認できます。
バージョンaws-cli/1.18が表现される場合は、最新バージョンをダウンロードする须要があります。
EC2 インスタンスに古い aws-cli バージョンがあることがわかったので、それを更新する须要があります。それには、AWS → ドキュメント → AWS コマンドラインインターフェイス → バージョン 2 のユーザーガイドに移動します。
curl コマンドをコピーして貼り付けます。
まず、このコマンドを実行して awscli バージョン 2 をダウンロードします。
curl "//awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
ダウンロードプロセスが開始されるまで待ちます。
このようなものが表现されるはずです。
次に、このコマンドを実行して、awscli バージョン 2 アーカイブを解凍する须要があります。
unzip awscliv2.zip
3 番目に、このコマンドを実行して awscli バージョン 2 をインストールする须要があります。
sudo ./aws/install
次に、Kubernetes EC2 仮想サーバー インスタンスのオンライン ターミナルをリロードします。
次に、このコマンドを操纵して AWS のバージョンを確認します。
aws --version
aws cli に aws-cli/2 があることがわかります。
Kubectl は、基盤となるインフラストラクチャに関係なく、Kubernetes クラスターと対話するための根基的なコマンドライン ツールです。これにより、Kubernetes クラスター内でリソースの办理、アプリケーションのデプロイ、ネットワークの構成、ログへのアクセス、その他のさまざまなタスクの実行が能够になります。
次に、Kubernetes クラスターとさらに対話するために、kubectl コマンドライン ツールをインストールする须要があります。そのためには、 「AWS」 → 「ドキュメント」 → 「Amazon EKS」 → 「ユーザーガイド」 →「 kubectl のインストールまたは更新」 → 「Linux」に移動する须要があります。
または、リンクをクリックするだけです。
まず、このコマンドを実行してkubectlをダウンロードします。
curl -O //s3.us-west-2.amazonaws.com/amazon-eks/1.27.1/2024-04-19/bin/linux/amd64/kubectl
ダウンロードプロセスを待ちます。
このようなものが表现されます。
kubectlに権限を与えます。
chmod +x kubectl
kubectl を /usr/local/bin フォルダーに移動します。
sudo mv kubectl /usr/local/bin
kubectlのバージョンを確認してください。
kubectl version --output=yaml
Eksctlは、特に Amazon EKS サービスに合わせて調整された別のコマンドライン ツールです。 Eksctl を操纵すると、AWS EKS クラスターの作成、ノード グループの办理、および AWS インフラストラクチャのセットアップと办理の多くを笼统化することによる IAM ロールや他の AWS サービスとの統合など、EKS に固有のタスクを実行できます。
コマンドを実行してkubectlをダウンロードします。
curl --silent --location "//github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
eksctl を /usr/local/bin フォルダーに移動します。
sudo mv /tmp/eksctl /usr/local/bin
eksctlのバージョンを確認してください。
eksctl version
バージョンが表现されるはずです
IAM ロールを作成し、 「KubernetesServer」 EC2 インスタンスにアタッチする须要があります。
これを行うには、検索ボックスで EC2 を見つける须要があります。
/ のリンクをクリックして、EC2 仮想サーバーを選択します。
IAMダッシュボード→ロールに移動します。
IAMロール Web ページで[ロールの作成]ボタンをクリックします。
次に、 「AWS サービス」、「EC2」を選択します。そして「次へ」ボタンをクリックします。
次に、検索ボックスで「AmazonEC2FullAccess」 、 「AmazonEC2FullAccess」 、 「IAMFullAccess」 、 「AWSCloudFormationFullAccess」を見つけて、 「アクセス許可の追加」ボタンをクリックします。
そして、 「次へ」ボタンをクリックします。
次に、 「ロール名」入力に「Eksctl_Role」と入力します。
そして「ロールの作成」ボタンをクリックします。
最後にロールが作成されます。
AWS EC2 インスタンスの Web ページに移動します。 「KuberbetesServer」を選択します。次に、 「アクション」 → 「セキュリティ」 → 「IAM ロールの変更」をクリックします。
「Eksctl_Role」を選択し、 「IAM ロールを更新」ボタンをクリックします。
これで、IAM ロールが「EKS_Server」および eksctl ツールに接続されました。
Amazon EKS (Elastic Kubernetes Service)クラスターは、AWS 上の办理された Kubernetes 環境であり、セットアップ、スケーリング、メンテナンスなどの複雑なインフラストラクチャタスクを自動化します。これは、コンテナ化されたアプリケーションのデプロイ、办理、スケーリング、運用の公道化、開発者が基盤となるインフラストラクチャの办理ではなくコーディングに集合できるようにするための、効率的で宁静な AWS に最適化されたプラットフォームを供给するため、不可欠です。
次に、EKS クラスターをセットアップします。
これを実現するには、次の手順に従います。
eksctl create cluster --name cluster-name \ --region region-name \ --node-type instance-type \ --nodes-min 2 \ --nodes-max 2 \ --zones <AZ-1>,<AZ-2>
例えば私の場合はこんな感じです。
eksctl create cluster --name zufarexplainedit \ --region eu-north-1 \ --node-type t3.micro
変更したコマンドを実行し、クラスターの作成プロセスが完了するまで辛抱強く待ちます。 AWS CloudFormation Web ページでは、EKS クラスターのステータスが「作成中」と表现されていることがわかります。
クラスターの作成手順には凡是、約 20 分かかります。完了すると、ターミナルにプロセスの結果が表现されます。
さらに、AWS CloudFormation ウェブページでEKS クラスターの作成が胜利したことを確認できます。
Kubernetes デプロイメント YAML ファイルは、 Kubernetes クラスター内の特定のアプリケーションまたはサービスを办理および激进する方式を定義する YAML 情势で記述された構成スクリプトです。これには、アプリケーションを実行しているコンテナーのデプロイ、スケーリング、更新、および監視を調整するための手順がカプセル化されています。このファイルには、コンテナー イメージ、须要なレプリカ数、リソース制限、環境変数、ネットワーク設定などの詳細が含まれます。 Kubernetes クラスターに適用すると、デプロイメント YAML ファイルはアプリケーションの望ましい状態を確保し、コンテナーの作成、スケーリング、リカバリを自動的に办理して、望ましいレベルの可用性と信頼性を維持します。
これで、Kubernetes クラスター、eksctl、kubectl がインストールおよび構成されたので、Kubernetes デプロイメント yaml ファイルを作成できます。
次のコマンドを実行することでこれを行うことができます。
touch hello-app-deployment.yaml
次に、次のコマンドを実行してこのファイルを編集します。
vi hello-app-deployment.yaml
このコンテンツを hello-app-deployment.yaml に追加します。
apiVersion: apps/v1 kind: Deployment metadata: name: zufarexplainedit-hello-app labels: app: hello-app spec: replicas: 2 selector: matchLabels: app: hello-app template: metadata: labels: app: hello-app spec: containers: - name: hello-app image: zufarexplainedit/hello imagePullPolicy: Always ports: - containerPort: 8080 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 1
これで hello-app-deployment.yaml が作成され、操纵できるようになりました。
Kubernetes Service YAML ファイルは、ポッドのセットのネットワーク笼统化を定義する YAML 情势で記述された構成スクリプトであり、Kubernetes クラスター内で一貫してポッドにアクセスできるようにします。このファイルは、他のサービスまたは内部クライアントによるサービスの検出、アクセス、および負荷分离の方式を概説します。これには、サービス タイプ (ClusterIP、NodePort、LoadBalancer)、ポート番号、ポッドを識別するセレクターなどの仕様が含まれます。 Kubernetes クラスターに適用すると、サービス YAML ファイルは、トラフィックを適切なポッドにルーティングする仮想 IP とポートを作成し、基礎となるポッドの変更を笼统化し、通讯に安靖したエンドポイントを供给して、シームレスな接続と動的なスケーリングを能够にします。
Kubernetes クラスター、eksctl、kubectl がインストールおよび構成されているので、Kubernetes Service yaml ファイルを作成できます。
これを行うには、次のコマンドを実行して Kubernetes Service yaml ファイルを作成する须要があります。
touch hello-app-service.yaml
次に、次のコマンドを実行してこのファイルを編集します。
vi hello-app-service.yaml
このコンテンツを hello-app-deployment.yaml に追加します。
apiVersion: v1 kind: Service metadata: name: zufarexplainedit-hello-app-service labels: app: hello-app spec: selector: app: hello-app ports: - port: 8080 targetPort: 8080 type: LoadBalancer
これで hello-app-service.yaml が作成され、操纵できるようになりました。
Kubernetes EKS クラスターが普通にインストールおよび構成され、Kubernetes サービスとデプロイメント ファイルの準備ができたら、kubectl コマンドを操纵してテストを行ってみましょう。
デプロイメントを適用します。
次のコマンドを操纵して、デプロイメント構成を適用します。
kubectl apply -f hello-app-deployment.yaml
これにより、指定された数のレプリカとローリング アップデート戦略を操纵したデプロイメントが作成され、アプリケーションの可用性と办理性が確保されます。
2. サービスを適用します。
次に、サービス構成を適用します。
kubectl apply -f hello-app-service.yaml
これにより、LoadBalancer タイプのサービスがセットアップされ、アプリケーションがインターネットに公開されます。
LoadBalancer がプロビジョニングされ、内部 IP アドレスが获得されるまでに少し時間がかかる場合があることに注重してください。
ロードバランサーのステータスを確認します。
を操纵してサービスのステータスを監視します。
kubectl get service zufarexplainedit-hello-app-service
内部 IP が割り当てられると、アプリケーションにアクセスする準備がほぼ整います。
アプリケーションにアクセスします。
Web ブラウザを操纵して、割り当てられた内部 IP アドレスの後に「:8080」を入力します。しばらくすると、ページが読み込まれ、「HelloWorld」メッセージが表现されます。早期読み込みには数秒かかる場合があることに注重してください。
Kubernetes 環境内のリソースを清算する须要がある場合は、次の kubectl コマンドを操纵して、デプロイメント、ポッド、サービスを効果的に削除できます。
1. すべてのデプロイメントを削除します。
すべてのデプロイメントを削除するには、次のコマンドを操纵できます。
kubectl delete deployments --all
このアクションにより、クラスター内にアクティブなデプロイメント インスタンスが残らないようになります。
2. すべてのポッドを削除します。
デプロイメントによって办理されているかどうかに関係なく、すべてのポッドを削除する须要がある場合は、次のコマンドを操纵できます。
kubectl delete pods --all
ポッドをクリアすると、クラスターの状態をリセットしたり、新しいデプロイメントの準備をしたりするのに役立ちます。
3. すべてのサービスを削除します。
アプリケーションをネットワークに公開するサービスをクリーンアップするには、次のコマンドを操纵できます。
kubectl delete services --all
サービスの削除にはダウンタイムが伴う能够性があるため、続行する前にその影響を考慮してください。
eksctl
で作成された指定された Amazon EKS クラスターに関連付けられたすべてのリソース (ワーカーノード、ネットワークコンポーネント、その他のリソースを含む) を削除するには、次のコマンドを操纵できます。
eksctl delete cluster --name {your cluster name} --region {your region name}
私にとってはそうです。
eksctl delete cluster --name zufarexplainedit --region eu-north-1
クラスターを遏制すると元に戻せなくなり、データが失われる能够性があるため、必ずクラスターを遏制してください。
次に、新しいansible-adminユーザーを「KubernetesServer」 AWS EC2 仮想サーバー インスタンスに追加しましょう。
これを行うには、このコマンドを操纵します。
sudo useradd ansible-admin
次に、 ansible-adminユーザーのパスワードを設定します。
sudo passwd ansible-admin
また、 sudoersファイルを編集してユーザー権限を構成する须要があります。
sudo visudo
このsudoersファイルに「ansible-admin ALL=(ALL) ALL」を追加します。
また、 /etc/ssh/sshd_configファイルを編集して PasswordAuthentication を有効にする须要があります。
sudo vi /etc/ssh/sshd_config
次に、これらの変更を行うためにサービスをリロードする须要があります。
sudo service sshd reload
このコマンドを実行すると、次のように表现されます。
これで、このコマンドを操纵して、以降のすべてのコマンドに sudo を追加することを避けることができます。
sudo su - ansible-admin
この記事では、 K8s EC2 仮想サーバー インスタンスなどのリモート サーバーをさらに办理することを計画しています。このため、SSH キーを設定する须要があります。
ssh-keygen
このコマンドを実行すると、次のように表现されます。
これで SSH キーが天生され、操纵できるようになりました。
Ansible は、リモート サーバー上のタスクを自動化するように設計されています。パスワードレス SSH 認証により、Ansible は手動でパスワードを入力しなくてもこれらのサーバーに接続できるようになります。
このコマンドを実行して、ansible-admin ユーザーの SSH キーを操纵して、自分のコンピューターから別のコンピューター (IP アドレス 172.31.34.41 のコンピューターなど) への宁静な接続を作成します。
sudo ssh-copy-id -i /home/{your user name}/.ssh/id_rsa.pub {your user name}@{your host address}
私の場合はこんな感じです。
sudo ssh-copy-id -i /home/ansible-admin/.ssh/id_rsa.pub [email protected]
「追加されたキーの数: 1」が表现されます。パスワードなしの SSH 認証のインストールが普通に完了したことを象征します。
Ansible Playbook を実行するときは、それを実行するホストを指定します。このステップでは、KubernetesServer EC2 インスタンスのホストを指定する须要があります。これを行うには、「 [モジュール 6]: Ansible」で実行したのと同じ手順を繰り返す须要があります。
次のコマンドを実行して、KubernetesServer EC2 インスタンスのホストを調べてみましょう。
sudo ifconfig
KubernetesServer EC2 インスタンス ホストを見つけたら、次のコマンドを実行して、それを Ansible hosts ファイルに追加できます。
sudo vi /etc/ansible/hosts
「[kubernetes]」を参照として追加することもできます
Kubernetes のセットアップがすべて完了し、準備が整ったので、パイプライン用の Kubernetes タスクを含む新しい Ansible プレイブックを作成できます。この Playbook により、Ansible は kubectl コマンドを操纵して Kubernetes クラスター上でアプリを実行できるようになります。
その方式は次のとおりです。
touch kubernetes-hello-app.yml
hello-app.yml
ファイルを編集します。このコマンドを操纵して編集用に開きます。 vi kubernetes-hello-app.yml
--- - hosts: kubernetes tasks: - name: deploy regapp on kubernetes command: kubectl apply -f hello-app-deployment.yaml - name: create service for regapp command: kubectl apply -f hello-app-service.yaml - name: update deployment with new pods if image updated in docker hub command: kubectl rollout restart deployment.apps/zufarexplainedit-hello-app
Kubernetes タスク用の Ansible プレイブックを操纵する準備ができました。
Kubernetes、Ansible、および Kubernetes タスク用の Ansible プレイブックがすべてセットアップされ、準備が整ったので、これを Jenkins と統合できます。
「JenkinsServer」→「Jenkins ダッシュボード」→「新しい項目」に移動します。
「CD-Job」という名前で新しい Jenkins Freestyle プロジェクトを作成します。
「OK」ボタンをクリックします。
「ビルド後のアクション」セクションに進みます。
「ビルド後のアクションを追加」ボタンをクリックします。
「SSH 経由でビルド アーティファクトを送信する」オプションを選択します。
SSH サーバーとして「AnsibleServer」を選択します。
このコマンドを「exec command」入力に追加します。
sudo -u ansible-admin ansible-playbook /opt/docker/kubernetes-hello-app.yml
「適用」ボタンと「保管」ボタンをクリックします。
Jenkins ダッシュボード → 「CI_CD_Pipeline」 → 「構成」 → 「ビルド後のアクション」セクションに移動します。
「ビルド後のアクションを追加」ボタンをクリックします。
「他のプロジェクトをビルドする」オプションを選択します。
「他のプロジェクトのビルド」セクションに進みます。
「ビルドが安靖している場合にのみトリガーする」オプションを選択します。
「ビルドするプロジェクト」入力に「CD ジョブ」を追加します。
「適用」ボタンと「保管」ボタンをクリックします。
これで、パイプラインが完整に实现し、操纵できる状態になったと考えることができます。
ここで、パイプラインの最終バージョンをテストします。
Jenkins → Jenkins ダッシュボード → 「CI_CD_Pipeline」に移動します。
「今すぐビルド」ボタンをクリックします。
結果を確認するには、ビルド コンソールのログを確認してください。
ビルド コンソール ログで「CD ジョブ」がトリガーされ、最終ステータスが SUCCESS とマークされていることがわかります。
4
さらに、Dockerhub にアクセスして、新しい Docker イメージの追加を確認できます。
最後に、Web ブラウザを操纵してアプリケーションにアクセスできます。割り当てられた内部 IP アドレスに「:8080」を続けて入力します。しばらくすると、ページが読み込まれ、「HelloWorld」メッセージが表现されます。
この最新の CI/CD パイプラインのセットアップはうまくいきました。
あなたは素晴らしい仕事をしました、そしてあなたは本物のヒーローです!
ご极力ありがとうございました!
Zufar Sunagatov は、最新のソフトウェア システムの設計に情熱を注ぐ経験豊富なシニア ソフトウェア エンジニアです。