実際のクラスタ・ジェンキンスの下にパイプライン

ジェンキンスクラスタについて

では、「ジェンキンス素早く構築クラスタ」 1件の記事で、我々はすぐジェンキンスクラスタの下で、クラスタを構築し、このクラスタ環境で、今日のパイプラインタスクを作成し、経験の並列タスクジェンキンスドッカー使用します。

環境情報

クラスタ全体の環境、3台のコンピュータの合計、以下のような情報がある:
|ホスト名| IPアドレスを|アクション|
| - | - | - |
|マスター| 192.168.133.131 | Webサービスを提供するために、ジェンキンスクラスタマスターノード|
| AGENT1 |ノードクラスタへのワン・ジェンキンスの作品、ラベルである| 192.168.133.132 のMaven |
|エージェント2 | 192.168.133.133 |ジェンキンスIIの作業ノードクラスタに、ラベルがあるのGradle |

実際のコンテンツ

ジェンキンスクラスタがコンパイルされ、同時に2つのタスクを実行するには、実際の戦闘経験は、GitHubの上で人気のあるオープンソース・プロジェクトを作成します:

  1. エージェント1のコンパイルとビルド春-クラウドアリババは、その後、マスタコンピュータにSCPコマンド転送結果によって構築は/ usr / local /のbuild_resultのディレクトリ。
  2. エージェント2コンパイルとスプリングフレームワークを構築し、次にSCPコマンドによって構築マスタコンピュータへ結果を送信するは/ usr / local /のbuild_resultのディレクトリ。

準備

以下の準備作業が正常に後続のタスクを実行するために行われます。

  1. マスタコンピュータのフォルダに作成されたは/ usr / local /のbuild_result
  2. コンフィギュレーションの達人、ページジェンキンスに選ば無料設定ツールに参加し、図赤枠で示したように:
    ここに画像を挿入説明
  3. 呼ばれるMavenの設定の追加MVN-3.6.2を以下のように、そして、「保存」ボタンをクリックします。
    ここに画像を挿入説明
  4. エージェント1とするときエージェント2上のマスタに転送ファイルへのscpコマンドを使用するには、「はい」と入力するには、コンソール、SSHで初めて、入力操作を待っているとき、このミッションの出現を避けるために、我々は再び上、再度手動で実行する必要がない、とsshログインのagent1た後、容器に次のコマンドを実行します。
docker exec -it agent /bin/bash
  1. ファイル名を指定して実行SSHの[email protected]、プロンプトが入力したコンソール今回はいまたはNOは、入力してくださいはい、その後、マスターパスワードを入力するようにプロンプトに従いますが、その後、成功したマスターをログインします。
[root@agent1 16]# docker exec -it agent /bin/bash
root@82eb8cfec0a6:/# ssh [email protected]
The authenticity of host '192.168.133.131 (192.168.133.131)' can't be established.
ECDSA key fingerprint is SHA256:DPE2nldWHiOhC4DB9doy7jPWNZVup6XFZ+sR2i1gqz8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.133.131' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Sat Nov 16 19:59:42 2019 from 192.168.133.132
  1. この時点で、あなたは2つの入力したいので、マスターにコンテナをログに記録するエージェント1はsshであり、出口のagent1コンソールに戻るには、コマンドを、
  2. また、コンピュータのエージェント2で同じ操作を行います。

この時点で、準備ができて、あなたは、タスクを作成することができます。

コンパイルされたが、バネクラウドAlibabaのタスクを作成します

春・クラウドアリババは、Mavenプロジェクトで、コンパイルビルドにMavenを使用します。

  1. ページ上のジェンキンス、場所に赤いボックスをクリックして、タスクを作成します。
    ここに画像を挿入説明
  2. 呼ばれる作成し、以下の図、春clolud-アリババ:パイプラインのタスク
    ここに画像を挿入説明
  3. ハーフムーンの位置は、パイプラインのスクリプトの場所を入力することです。
    ここに画像を挿入説明
  4. 赤いボックスで、次の位置を入力します。
pipeline {
    agent {
        label 'maven'
    }
    tools {
        maven 'mvn-3.6.2'
    }
    stages {
        stage('Checkout') {
            steps {
                echo '从GitHub下载spring-cloud-alibaba工程的源码(2.1.1.RELEASE归档包)'
                sh 'wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz'
                echo '下载结束,解压归档包'
                sh 'tar -zxf v2.1.1.RELEASE.tar.gz'
            }
        }        
        stage('Build') {
            steps {
                echo '开始编译构建'
                sh 'cd spring-cloud-alibaba-2.1.1.RELEASE && mvn clean package -U -DskipTests'
            }
        }
        stage('Save') {
            steps {
                echo '将构建结果传送到存储服务器'
                sh 'cd spring-cloud-alibaba-2.1.1.RELEASE/spring-cloud-alibaba-nacos-discovery/target && sshpass -p 888888 scp ./*.jar [email protected]:/usr/local/build_result'
                echo '传送完毕'
            }
        }
        stage('Clean') {
            steps {
                echo '清理Maven工程'
                sh 'cd spring-cloud-alibaba-2.1.1.RELEASE && mvn clean'
                echo '清理完毕'
            }
        }
    }
}
  1. 赤いボックスタスクを開始するには、「すぐに建てる」の下をクリックし、「保存」ボタンの下をクリックしてください:

ここに画像を挿入説明

  1. リアルタイムタスク情報のページ出力にジャンプするには、赤いボックス赤いボールの下にクリックしてください:
    ここに画像を挿入説明

  2. リアルタイム出力ページビルド情報:
    ここに画像を挿入説明

  3. メインページには、あなたは力ですでに、ミッションに次の図に示す赤いボックス、目に見えるパイプラインのスクリプトタグをエージェント1を参照することができ、そしてタスクをラベルするために予定されているのMaven実行するノードを:
    ここに画像を挿入説明
    コンパイルは春・クラウドAlibabaのプロジェクトを構築する時間がかかり操作は、我々は今、別のタスクを作成しようとしている:ビルドスプリング・フレームワークをコンパイルします

    コンパイルされたタスクのスプリングフレームワークを構築します

    春・フレームワークは、自動的にGradleのツールをダウンロードするコンパイラのコマンドの実装では、Gradleの環境を準備する必要がありGradleのエンジニアリング、次のとおりです。
  4. 名前の作成春Frameworkのパイプラインのタスクを:
  5. パイプラインのスクリプトは次の通り:
pipeline {
    agent {
        label 'gradle'
    }

    stages {
        stage('Checkout') {
            steps {
                echo '从GitHub下载spring-framework工程的源码(master分支)'
                checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[url: 'https://github.com/spring-projects/spring-framework.git']]])
            }
        }        
        stage('Build') {
            steps {
                echo '开始编译构建'
                sh './gradlew build'
            }
        }
        stage('传送构建结果') {
            steps {
                echo '将构建结果传送到存储服务器'
                sh 'cd spring-core/build/libs && sshpass -p 888888 scp ./*.jar [email protected]:/usr/local/build_result && cd ../../..'
                echo '传送完毕'
            }
        }
        stage('Clean') {
            steps {
                echo '清理gradle工程'
                sh './gradlew clean'
                echo '清理完毕'
            }
        }
    }
}
  1. すぐに次の作業を行い、タスクはエージェント2アップが実行さ見られるようにスケジュールされた、以下に示すように、この時点でエージェント1のエージェント2タスクが、同時に実行されます。
    ここに画像を挿入説明

    表示ビルド結果

    構築に成功した後、両方のタスクは、SCPコマンドにマスター結果によって構築されますは/ usr / local /のbuild_resultのディレクトリ:
[root@master build_result]# ls
agent.jar                      spring-cloud-alibaba-nacos-discovery-2.1.1.RELEASE.jar          spring-cloud-alibaba-nacos-discovery-2.1.1.RELEASE-sources.jar  spring-objenesis-repack-3.1.jar
spring-cglib-repack-3.3.0.jar  spring-cloud-alibaba-nacos-discovery-2.1.1.RELEASE-javadoc.jar  spring-core-5.2.2.BUILD-SNAPSHOT.jar



ラベルパラメータはパイプラインスケジューリングノードタスク、マルチノード実行中に同時にマルチタスクを制御することが可能で、この時点で、ジェンキンスクラスタ下実際のパイプラインは、完了しました。

プログラマー陳新:国民の関心番号へようこそ

おすすめ

転載: www.cnblogs.com/bolingcavalry/p/11874732.html