jenkins的pipeline实现指定节点项目构建并部署代码至后端服务器

1.pipeline功能特点

1)是帮助jenkins实现持续集成CI(Continue Integration)转变为持续部署CD(Continue Deploy)的重要功能插件;

2)将多个节点的单个任务连接起来,实现单个任务难以实现的复杂发布流程;

3)Pipeline 的实现方式是一套 Groovy DSL,所有的发布流程都可以表述为一段 Groovy 脚本;

4)是jenkins上的一套工作流框架.

2.pipeline语法

1)stage:pipeline可以划分为多个stage阶段,每个是stage为执行的一个操作,每个阶段可以跨节点;

2)node:jenkins的节点,是执行操作的具体服务器;

3)step:是jenkins pipeline执行操作的最小单元.

3.查看jenkins添加的节点,node1节点同步成功并建立连接

4.pineline项目的创建、代码部署

1)创建一个pipeline-job项目,选择流水线

2)pipeline-job修改配置文件、设置丢弃旧的构建之间保存的最小和最大时间,此项根据需要可设置可不设置

3)再点击Pipeline Syntax(流水线语法),填写gitlab仓库源地址、选择认证方式、点击Generate生成拉取代码的pipeline脚本


4)在复制上面生成的拉取代码的pipeline脚本,编写pipeline构建脚本,保存配置

#以上构建的pipeline脚本:
node("node1"){
            stage("clone code"){
                 sh ‘rm -rf /var/lib/jenkins/workspace/pipeline-job/*‘
                 git branch: ‘develop‘, credentialsId: ‘1f60339e-fbb3-41e6-88a7-ae80834823b4‘, url: ‘[email protected]:jie/web-page.git‘
            }
             stage("compress code"){
                 sh ‘cd /var/lib/jenkins/workspace/pipeline-job/ && tar cvf index_code.tar.gz *‘
             }
             stage("send code"){
                 sh ‘ssh 192.168.1.23 "/usr/sbin/nginx -s stop"‘
                 sh ‘ssh 192.168.1.23 "rm -rf /apps/nginx/html/*"‘
                 sh ‘scp /var/lib/jenkins/workspace/pipeline-job/index_code.tar.gz 192.168.1.23:/apps/nginx/html‘
             }
             stage("deploy code"){
                 sh ‘ssh 192.168.1.23 "cd /apps/nginx/html/ && tar xvf index_code.tar.gz"‘
                 sh ‘ssh 192.168.1.23 "/usr/sbin/nginx"‘
             }
        }

5)在node1节点生成秘钥对

[[email protected] workspace]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YHTsZqXXSRMoV2ZG3gEgGYEzxdHEF4kNYlIc75Qy6JI [email protected]
The key‘s randomart image is:
+---[RSA 2048]----+
|      oB%X+OX=.  |
|     .+=*+B**. . |
|      ++o=++.o.  |
|     + .==. o    |
|    E .oS..      |
|     .           |
|                 |
|                 |
|                 |
+----[SHA256]-----+

6)再将node1的公钥认证authorized_keys复制到nginx后端服务.ssh目录下,实现免秘钥登录nginx后端服务

[[email protected] ~]# ssh-copy-id 192.168.1.23

7)点击立即构建

8)查看控制台信息构建成功

9)验证node1节点的工作目录是否构建

[email protected] ~]# ll /var/lib/jenkins/workspace/pipeline-job
total 16
-rw-r--r-- 1 root root 10240 Jul 26 16:42 index_code.tar.gz
-rw-r--r-- 1 root root 42 Jul 26 16:42 index.html

10)浏览器访问nginx服务,实现pipeline脚本代码部署

原文地址:https://blog.51cto.com/14234542/2423949

时间: 2024-07-31 12:08:25

jenkins的pipeline实现指定节点项目构建并部署代码至后端服务器的相关文章

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(三)(网内首发超详细版)

3.3 权限配置样例 注意: * 权限配置文件中出现的用户名必须已在用户配置文件中定义. * 对权限配置文件的修改立即生效,不必重启svn. 用户组格式: [groups] = , 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔. 版本库目录格式: [<版本库>:/项目/目录] @<用户组名> = <权限> <用户名> = <权限> 其中,方框号内部分可以有多种写法: [/],表示根目录及以下,根目录是svnserve启动时指定的,我们

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(四)(网内首发超详细版)

6安装maven 下载地址:http://maven.apache.org/download.cgi 解压安装 unzip –o apache-maven-3.2.1-bin.zip mv apache-maven-3.2.1 maven 配置环境变量 MAVEN_HOME=/usr/local/maven export PATH=$MAVEN_HOME/bin:$PATH 7 java环境自动构建部署 7.1 新建job 输入名称如下图 输入SVN服务器地址 注意:上面已经认证过了,因此没有报

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(一)(网内首发超详细版)

目录结构如下: 目录 1说明及环境介绍3 1.1说明3 1.2环境准备及格式约定4 2 Linux下apache搭建svn服务器4 2.1 apache安装部署4 2.2 svn安装部署5 2.3整合svn和apache6 2.4 ssl方式部署apache7 2.4.1安装apache7 2.4.2安装svn7 2.4.2 部署认证8 3 Linux下svn独立服务器方式部署9 3.1安装SVN9 3.2 配置环境10 3.3 权限配置样例11 3.4 启动SVN服务器12 3.5 访问方式1

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(二)(网内首发超详细版)

2.4 ssl方式部署apache 2.4.1安装apache ./configure --prefix=/usr/local/apache2 --enable-dav --enable-ssl--enable-so --enable-mods-shared=all make && make install 2.4.2安装svn 安装apr-1.4.6.tar.gz.apr-util-1.5.1.tar.gz.neon-0.29.6.tar.gz同2.2章节部分 unzip sqlite-

利用apache+svn+jenkins+maven 实现java环境的自动化构建和部署(五)(网内首发超详细版)

8 Subversion FAQ 8.1 官方FAQ网址 http://subversion.apache.org/faq.zh.html 8.2 svn遇到错误总结 8.2.1 svn不显示日志 解决办法:1)找到你SVN版本库下conf文件夹下的svnserve.conf文件2)打开svnserve.conf文件,将其中名为anon-access的一项设置为anon-access=none. 这样的话,日志文件即可显示正常. 8.2.2 版本冲突问题 svn update --usernam

jenkins+svn+Ant+tomcat+非maven项目构建

首先,输入项目名称,创建一个自由风格的项目; 然后,配置旧项目的策略参数,目的是防止构建项目太多,占用资源. 下一步,jdk版本选择: 下一步,关联svn项目. 下一步:配置ant 看不清,再来一张. 下一步,构建: 下一步,配置tomcat: 最后,点击应用->保存. 然后我们选择[立即构建] 运行起来,肯定会报错,因为我们使用ant发布,需要配置build.xml文件. 我的build.xml文件在项目根目录下,如图: 内容如下(该文件中的路径是根据自己项目路径为准,会进行个别的变动,要不然

Linux上GitLab+Jenkins实现Vue、Spring Cloud项目的自动部署

一. 相关插件安装 1.安装GitLab相关插件 2.NodeJS插件 3.Maven 插件 4.手动安装插件 网络或者其他原因,可能导致插件安装失败. 可以采用手动安装的方式. 手动下载jenkins插件:jenkins插件下载地址:http://mirror.xmission.com/jenkins/plugins/ ,一般下载下来后缀为hpi,如下载下来是zip的,记得把后缀修改为hpi 打开jenkins,点击 系统管理-->插件管理-->高级,选择本地文件,点击提交. 二.Jenki

svn + jenkins + maven 实现java环境的自动化构建和部署

1. 环境说明: 系统CentOS 7 x64 IP:  10.6.0.126 1.1 首先安装配置 svn Centos 7  通过yum 安装svn 既可, 版本为1.7.14 # yum -y install subversion 安装完毕以后查看版本信息 # svnserve --version 添加svn运行用户 groupadd svn useradd -g svn -s /sbin/nologin svn 添加svn版本库目录,并授权svn用户权限 mkdir -p /opt/sv

Jenkins Pipeline+Docker实现流水线自动化构建(上百个项目共用一个脚本方案)

Jenkins Pipeline是一套插件,支持将连续输送Pipeline实施和整合到Jenkins.Pipeline提供了一组可扩展的工具,用于通过PipelineDSL为代码创建简单到复杂的传送Pipeline. 对于单个项目来说,使用这样的Pipeline来构建能够满足绝大部分需求,但是这样做也有很多缺陷,包括: 多个项目的Pipeline打包脚本不能公用,导致一个项目写一份脚本,维护比较麻烦.Jenkins提供了一个更优雅的管理Pipeline脚本的方式,在配置项目Pipeline的时候