jenkins流水线项目发布流程

jenkins流水线项目发布流程

环境说明

主机名称 IP地址 需要的应用服务 工具包 系统版本
node1 192.168.110.14 tomcat、jenkins git、maven redhat 8
node2 192.168.110.13 tomcat redhat

准备工作

关闭防火墙和selinux

//node1和node2

systemctl disable --now firewalld
sed -ri 's/^(SELINUX=).*/\1disabled/g' /etc/sysconfig/selinux
setenforce 0

在node1主机部署服务(Tomcat、jenkins)

1. 把Tomcat和jenkins包使用xftp传到本机node1

image

//node1
#在本机查看一下
[root@node1 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.46.tar.gz  jenkins.war

2. 部署Tomcat容器和jenkins项目

//node1
#安装java环境
[root@node1 ~]# yum -y install java-11-openjdk

#安装工具包
[root@node1 ~]# yum -y install maven git

#解压安装包,创建jenkins项目
[root@node1 ~]# tar xf apache-tomcat-9.0.46.tar.gz 
[root@node1 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.46  apache-tomcat-9.0.46.tar.gz  jenkins.war
[root@node1 ~]# mkdir -p /usr/local/tomcat/jenkins
[root@node1 ~]# cp -r apache-tomcat-9.0.46/* /usr/local/tomcat/jenkins/      
[root@node1 ~]# cp jenkins.war /usr/local/tomcat/jenkins/webapps/

#启动jenkins项目
[root@node1 ~]# /usr/local/tomcat/jenkins/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat/jenkins
Using CATALINA_HOME:   /usr/local/tomcat/jenkins
Using CATALINA_TMPDIR: /usr/local/tomcat/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/jenkins/bin/bootstrap.jar:/usr/local/tomcat/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@node1 ~]# ss -antl
State     Recv-Q    Send-Q            Local Address:Port       Peer Address:Port    
LISTEN    0         128                     0.0.0.0:22              0.0.0.0:*       
LISTEN    0         128                        [::]:22                 [::]:*       
LISTEN    0         1            [::ffff:127.0.0.1]:8005                  *:*       
LISTEN    0         100                           *:8080                  *:*    

在node2主机部署服务

1. 在node1主机上生成一个密钥,传给node2主机

//node1
#生成密钥,直接回车4下
[root@node1 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
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:gns7tHucexs/lfoIp5e07uMYi9HO1ozGOZeiPenOtkg root@node1
The key's randomart image is:
+---[RSA 3072]----+
|                 |
|                 |
|                 |
|     .           |
|    . . S      . |
|     ... .  . o  |
|    ...oEo=B.*   |
|     .oo+O&X%.   |
|      o+=X&%*+.  |
+----[SHA256]-----+

#密钥传给node2
[root@node1 ~]# ssh-copy-id root@192.168.110.13
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.110.13 (192.168.110.13)' can't be established.
ECDSA key fingerprint is SHA256:+UR5bwjFNEKZsJ+X/qSSsMGCvtq5ByludUEL47JqwoU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.110.13's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.110.13'"
and check to make sure that only the key(s) you wanted were added.

2. 部署Tomcat

//node1
#使用scp命令把Tomcat包传给node2
[root@node1 ~]# scp apache-tomcat-9.0.46.tar.gz root@192.168.110.13:/root/
apache-tomcat-9.0.46.tar.gz                       100%   11MB  42.6MB/s   00:00 

//node2
#安装java环境
[root@node2 ~]# yum -y install java-11-openjdk

#查看
[root@node2 ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.46.tar.gz

#解压安装包
[root@node2 ~]# mkdir /usr/local/tomcat
[root@node2 ~]# tar xf apache-tomcat-9.0.46.tar.gz 
[root@nide2 ~]# cp -r apache-tomcat-9.0.46/* /usr/local/tomcat/
[root@node2 ~]# ls /usr/local/tomcat/
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work

开始部署

第一步:安装jenkins

安装和配置jenkins详情可以参考:jenkins安装和界面说明

选择推荐插件安装(这一步需要注意,其它步骤一致)

image

第二步:配置jenkins

1、访问网页

访问192.168.110.14:8080/jenkins

image

2、创建流水线项目

创建任务

image

输入任务名称test,选择流水线

image

配置test任务

image

流水线脚本内容

pipeline {
    agent any
    
    stages {
        stage('pull code') {
            steps {
                git 'http://github.com/lizhenliang/tomcat-java-demo.git'
            }
        }

        stage('package') {
            steps {
                sh """
                mvn clean
                mvn package
                """
            }
        }
        
        stage('deploy') {
            steps {
                sh """
                scp target/ly-simple-tomcat-0.0.1-SNAPSHOT.war root@192.168.110.13:/usr/local/tomcat/webapps/
                ssh root@192.168.110.13 '/usr/local/tomcat/bin/shutdown.sh && /usr/local/tomcat/bin/startup.sh'
                """
            }
        }
        
    }
}

构建任务

image

构建成功

image

第三步:验证

在node2主机上查看运行情况

//node2
[root@node2 ~]# ss -antl
State     Recv-Q    Send-Q            Local Address:Port       Peer Address:Port    
LISTEN    0         128                     0.0.0.0:22              0.0.0.0:*       
LISTEN    0         1            [::ffff:127.0.0.1]:8005                  *:*       
LISTEN    0         100                           *:8080                  *:*       
LISTEN    0         128                        [::]:22                 [::]:*       

//项目文件
[root@node2 ~]# ls /usr/local/tomcat/webapps/
docs          ly-simple-tomcat-0.0.1-SNAPSHOT      ROOT
examples      ly-simple-tomcat-0.0.1-SNAPSHOT.war
host-manager  manager

网页验证

image

大功告成,以上就是一个简单的项目发布流程!!!

原文地址:https://www.cnblogs.com/leixixi/p/14783564.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


基础环境、流程图1)流程图jenkinspipeline发布应用2)、jenkins上安装kubectl#主节点上查看kubectl位置[root@k8s01~]#whichkubectl/usr/bin/kubectl#将k8s节点的kubectl文件cp至jenkinsscp10.0.0.101:/usr/bin/kubectl.cp./kubectl/usr/local/bin/kubectl
本节是建立在流水线入门内容的基础上,而且,应当被当作一个参考。对于在实际示例中如何使用流水线语法的更多信息,请参阅本章在流水线插件的2.5版本中的使用Jenkinsfile部分,流水线支持两种离散的语法,具体如下对于每种的优缺点,参见语法比较。正如本章开始讨论的,流水线最
Linuxcentos7安装Jenkins(jenkins-2.227-1.1.noarch.rpm)时遇到问题:1.出现问题1:安装jenkins一直失败,提示Nosuchfileordirectory[helen@linuxprobeJenkins]$sudorpm-ivhjenkins-2.227-1.1.noarch.rpmPreparing...####################
作为一个拥有很多账号的当代美少女,忘记用户名密码什么的是再正常不过的事了。“忘记密码”这一功能给我真的带来了很大的福音啊。但是最近重新使用Jenkins时,看到需要输入用户名密码,顿时脑子一片空白。经过一系列的查找,终于解决了问题,害,只有把方法记下来才是王道,以后妈妈再
Jenkins、GitLab和Maven(Nexus)完成自动构建迈向持续集成持续集成,毋庸置疑的是这是两部分要求,一个是持续一个是集成,那么持续和集成到底表示了什么要求和含义呢?其中的集成比较容易理解就是指开发人员将自己开发的代码不断地交付给全部系统的代码,在Git仓的概念之下也就是不断地
 下载文档https://www.jenkins.io/zh/download/  Debian下载1.下载安装keyhttps://pkg.jenkins.io/debian-stable/jenkins.io.key  
流水线建设从Jenkins部署开始Jenkins是一个独立的开源自动化服务器,可以用来自动化,例如构建、测试和部署软件等各种任务,是一个实现CI(持续集成)的很好的工具。Jenkins可以通过本地系统包、Docker安装,甚至可以在安装Java运行时环境的机器上独立运行。JenkCI/CD的概念谈到持
原因:这种情况是SSHServer中的RemoteDirectory路径不存在。解决方法:重新输入目标服务器中存在的路径。      
什么是持续集成持续集成(Continuousintegration,简称CI)指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。通过持续集成,团
Tomcat安装:1.下载Tomcat包:http:/omcat.apache.org/并解压2.启动:双击bin\startup.bat文件浏览器访问:http://localhost:8080/3.Tomcat配置登录:打开confomcat-users.xml文件添加如下代码:<rolerolename="manager-gui"/><userusername="admin"password=&q
文章目录jenkinscron笔记简介H符号(hash的简写)别名例子jenkinscron笔记简介jenkinscron遵循普通cron的语法,略有不同,每行包含五个字段可以使用Tab和空行分割分钟小时日月周0-590-231-311-120-7(0和7都表示周日)可以使用以下操作符为一个字段指定多个值(按照
1.nginx的配置location/jenkinsno{indexindex.htmlindex.htm;proxy_passhttp://127.0.0.1:8081;proxy_connect_timeout3000s;proxy_send_timeout3000s;proxy_read_timeout3000s;prox
1、下载安装插件下载地址:http://files.jetbrains.org.cn/aliyun-oss.hpi在Jenkins中安装插件,请到ManageJenkins->Advanced->Upload,上传插件(.hpi文件)安装完毕后请重新启动Jenkins2、搜索安装jenkins插件安装3、安装完成以后配置阿里云oss账号oss这边设置:(账号的权限也要
首先将构建历史清除Jenkins构建历史删除与重置然后进入Jenkins服务器工作目录oot/.jenkinstar-czvfjobs.tarjobs 将jobs打包将job.tar文件复制到新Jenkins服务器相同目录下解压tar包 tar-zxvfjob.tar登录新JenkinsJenkins-系统管理-读取配置,只有点击了读取配置,原
一、动态生成Slave1.1、简介之前我们都是在物理机或者虚拟机上部署jenkins,但是这种部署方式会有一些难点,如下:主Master发生单点故障时,整个流程都不可用了每个Slave的配置环境不一样,来完成不同语言的编译打包等操作,但是这些差异化的配置导致管理起来非常不方便,维护起来也是
from jenkins import Jenkins# 判断job是否运行结束def build():    job = 'branch-deploy-wap'    params = {        'server_ip': '10.160.30.XXX',        'server_username': 'root',        'server_userpass&#
背景client端执行webUI自动化测试时依赖操作系统上安装了对应的浏览器,并且浏览器与驱动要进行版本的对应——而selenium是可以部署集群,通过远程的方式执行对应的自动化用例,方便高效。原理1、通过代码可知,自动化运行的主类接收了任务id,获取到任务信息后根据任务类型判断进行接口
背景工具选择架构设计及技术实现参数设计断言持续集成测试集编写总结  一、背景1.目前公司发展比较迅速,还处于不停堆业务阶段,所以迭代比较频繁,导致人工回归的成本越来越大2.在有限的测试资源情况下,开发自测的需求占比不低,后端频繁发布容易心里没底
本地pycharm打开项目,运行自动化项目下载项目代码,并用pycharm打开项目gitclonehttps://gitee.com/iread9527/iInterface_python.git进入iInterface_python目录下,cdiInterface_python使用pip3install-rrequirements.txt命令,安装python项目依赖的第三方库使
Jenkins邮件设置一、简介最近有朋友问Jenkins邮件设置的问题,想起来当时也是碰到不少坑,网上看了很多博客说的解决办法根本没有用。最后我解决了这个问题,在此记录一下,希望能够帮助到在网上搜了半天仍然徒劳无功的朋友们,我懂那种失败了一次又一次的感觉,希望能帮到大家。二、配置步