静的ノードはマシン上に固定されており、いくつかの固定コマンドを通じて起動されます。動的ノードには複数のタスクがあり、実行する複数のエージェントを作成するのに役立ちます。静的ノードとは異なり、複数のタスクが来た場合、タスク キューで待機してからビルドを実行します。これが静的と動的の違いです。 静的ノードは、java -jar コマンドを使用して起動できます。 1. 静的ノードの練習まず、Jenkins で jnlp タイプのエージェントを作成し、接続に必要な認証とキー情報を取得します。 jar -jar コマンドの後には多くのパラメーターがあり、動的ノードを構成するか静的ノードを構成するかに関係なく使用されます。
1.1 Docker 静的ノードイメージを起動し、認証パラメータを渡します。 (Docker を使用するということは、実際にはイメージを使用し、そのイメージ内でエージェントを実行し、これらのパラメータを渡すことを意味します) 仮想マシンに agent.jar パッケージをダウンロードし、これらのコマンドを手動で実行します。 コマンドラインでノードを起動します。java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba -workDir "/var/jenkins" エージェントのコマンドラインから実行し、シークレットをファイルに保存します。 echo 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba > 秘密ファイル java -jar agent.jar -jnlpUrl http://139.198.166.235:8080/computer/build%2D02/jenkins-agent.jnlp -secret @secret-file -workDir "/var/jenkins" Docker にある場合は、エージェント イメージを見つける必要があります: inbound-agent image: Docker Hub ## テスト [root@jenkins-agent ~]# docker run --init jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba build-02 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main createEngine 情報: エージェントの設定: build-02 2021年10月28日午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListener <init> 情報: Jenkins エージェントはヘッドレス モードで実行されています。 2021年10月28日 午前2時19分25秒 hudson.remoting.Engine startEngine 情報: リモート バージョン 4.11 を使用しています 2021年10月28日午前2時19分25秒 org.jenkinsci.remoting.engine.WorkDirManager 初期化WorkDir 情報: /home/jenkins/remoting をリモート作業ディレクトリとして使用しています 2021年10月28日 午前2時19分25秒 org.jenkinsci.remoting.engine.WorkDirManager セットアップログ 情報: エラーログと出力ログの両方が /home/jenkins/remoting に出力されます 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: [http://139.198.166.235:8080/] 内でサーバーを検索しています 2021年10月28日 午前2時19分25秒 org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver 解決 情報: リモート サーバーは次のプロトコルを受け入れます: [JNLP4-connect、Ping] 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: エージェントの検出に成功しました エージェントアドレス: 139.198.166.235 エージェントポート: 50000 アイデンティティ: 67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: ハンドシェイク 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: 139.198.166.235:50000 に接続しています 2021年10月28日 午前2時19分25秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: プロトコルを試行中: JNLP4-connect 2021年10月28日午前2時19分25秒 org.jenkinsci.remoting.protocol.impl.BIONetworkLayer$Reader 実行 情報: ProtocolStack の起動を待機しています。 2021年10月28日 午前2時19分26秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: リモート ID が確認されました: 67:e8:d2:73:d1:cf:01:f6:6c:a4:cb:b3:0f:25:8c:3d 2021年10月28日 午前2時19分26秒 hudson.remoting.jnlp.Main$CuiListenerステータス 情報: 接続済み ## 走る [root@jenkins-agent ~]# docker run -itd --name build-02 jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba build-02 bd2500223dabb45ff41c234a8871651f93b38264458c4d2bed40f821577b8944 [root@jenkins-agent ~]# docker ps コンテナID イメージ コマンド 作成ステータス ポート名 bd2500223dab jenkins/inbound-agent "/usr/local/bin/jenk?? 18秒前 18秒前 build-02 ここで注意すべき点は、静的 Docker エージェントにはビルド ツールなど何も含まれていないことです。 [root@jenkins-agent ~]# docker exec -it build-02 bash ジェンキンス@bd2500223dab:~$ mvn bash: mvn: コマンドが見つかりません したがって、解決策としては、エージェント イメージをベース イメージとして使用し、ビルド ツールをその中に配置して使用するか、ツールをマウントします。 docker run -itd --name build-02 \ apache-maven-3.8.1 を /home/jenkins/apache-maven-3.8.1 にコピーします。 jenkins/inbound-agent -url http://139.198.166.235:8080 -workDir=/home/jenkins 942d7e769a43f65388751ee954af20e90fa0c5f8bdb19e0584db4cc61adab8ba ビルド-02 jenkins@2a682b01263b:~$ /home/jenkins/apache-maven-3.8.1/bin/mvn -v Apache Maven 3.8.1 (05c21c65bdfed0f71a2f2ada8b84da59348c4c5d) Maven ホーム: /home/jenkins/apache-maven-3.8.1 Java バージョン: 11.0.12、ベンダー: Eclipse Foundation、ランタイム: /opt/java/openjdk デフォルトのロケール: en、プラットフォームのエンコーディング: UTF-8 OS 名: "linux"、バージョン: "3.10.0-693.el7.x86_64"、アーキテクチャ: "amd64"、ファミリ: "unix" 同様に、docker コマンドを使用してマウントします。 Jenkins Docker 静的エージェント ノードの構築に関するこの記事はこれで終わりです。Jenkins Docker ノードの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL の replace と replace into の詳細な例 into_Mysql
>>: HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。
CSSスタイルファイルで指定 #class td /*表のテキストを左右上下に揃えるように設定する*...
この記事では主に基本的なチャットの実装方法を紹介します。今後は絵文字や写真のアップロードなどの機能も...
目次1. 接続制御プラグイン(connection_control)の紹介1.1 connectio...
目次要件:実装手順:この記事では主に以下について説明します: カスタムツリーコントロール<el...
HTML img タグ: Web ページに導入される画像を定義します。興味深い usemap 属性も...
タブ切り替えもプロジェクトではよく使われる技術です。一般的にタブ切り替えはjsやjqを使って実装され...
1. ウェブページの基本構造: XML/HTML コードコンテンツをクリップボードにコピー<...
MACでMySQLの初期パスワードを忘れた問題を解決する方法を参考までに共有します。具体的な内容は次...
目次1. アプリケーションライフサイクル2. ページのライフサイクルコンポーネントライフサイクル要約...
1. SELECT句を使用して複数のテーブルをクエリするSELECT フィールド名 FROM tab...
目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...
1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...
以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...
序文この記事では、主にWeb開発のためのクロスドメインソリューションを紹介し、参考と学習のために共有...
これはネイティブ JS で実装されたテキスト スクロール効果です。この効果は通常、ニュース、ダイナミ...