Jenkins 集群下的 pipeline 实战,kalilinux 使用教程 pdf
执行命令 ssh root@192.168.133.131,这时候控制台提示输入 yes 或者 no,请您输入 yes,再根据提示输入 master 的密码,此时登录 master 成功:
[root@agent1 16]# docker exec -it agent /bin/bash
root@82eb8cfec0a6:/# ssh root@192.168.133.131
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.
root@192.168.133.131's password:
Last login: Sat Nov 16 19:59:42 2019 from 192.168.133.132
此时您是在 agent1 的容器中 ssh 登录了 master,所以要连续输入两次 exit 命令才能返回到 agent1 的控制台;
在 agent2 电脑上也执行相同的操作;
至此,准备完毕,可以创建任务了;
编译构建 spring-cloud-alibaba 的任务
spring-cloud-alibaba 是个 maven 工程,要用 maven 来编译构建:
在 Jenkins 网页上,点击下图红框位置,创建一个任务:
如下图,创建名为 spring-clolud-alibaba 的 pipeline 任务:
下图红框位置就是输入 pipeline 脚本的地方:
在上图红框位置输入以下内容:
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.RE
LEASE.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 root@192.168.133.131:/usr/local/build_result'
echo '传送完毕'
}
}
stage('Clean') {
steps {
echo '清理 Maven 工程'
sh 'cd spring-cloud-alibaba-2.1.1.RELEASE && mvn clean'
echo '清理完毕'
}
}
}
}
点击底部的"保存"按钮后,点击下图红框中的"立即构建"即可开始任务:
点击下图红框中的红色圆球,即可跳转到实时输出任务信息的页面:
页面实时输出构建信息:
主页面可以看到是 agent1 在执行任务,如下图红框所示,可见 pipeline 脚本中的标签已经生效了,将任务调度到标签为 maven 的节点去执行:
编译构建 spring-cloud-alibaba 工程是个费时的操作,我们现在去创建另一个任务:编译构建 spring-framework
编译构建 spring-framework 的任务
spring-framework 是个 gradle 工程,不需要准备 gradle 环境,在执行编译命令时会自动下载 gradle 工具:
创建名为 spring-framework 的 pipeline 任务:
pipeline 脚本如下:
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 root@192.168.133.131:/usr/local/build_result && cd ../../..'
echo '传送完毕'
}
}
stage('Clean') {
steps {
echo '清理 gradle 工程'
sh './gradlew clean'
echo '清理完毕'
}
}
}
}
评论