ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化部署--Jenkins--简介安装(一)

2021-09-16 17:59:35  阅读:141  来源: 互联网

标签:02 10 0000 -- 简介 09 2019 jenkins Jenkins


一、Jenkins 简介

  Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
  Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台。这是一个免费的源代码,可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。
  Jenkins是一种软件允许持续集成。Jenkins 安装在一台服务上也中央构建发生的地方。

Jenkins 是一个可扩展的持续集成引擎。

主要用于:
1、持续、自动地构建/测试软件项目。
2、 监控一些定时执行的任务。
Jenkins拥有的特性包括:
1、 易于安装-只要把jenkins.war部署到servlet容器,不需要数据库支持。
2、 易于配置-所有配置都是通过其提供的web界面实现。
3、 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
4、 生成JUnit/TestNG测试报告。
5、 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
9、 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
10、 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

Jenkins的目标:
Jenkins的主要目标是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。
CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题。

特别是它具有以下优点:
1、Jenkins一切配置都可以在web界面上完成。有些配置如MAVEN_HOME和Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改XML进行配置。
2、 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job,相当灵活。
3、 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他CI,这几乎是件不可能完成的任务。
4、 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。

Jenkins功能包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。

官网:https://jenkins.io/

二、下载安装

  1. 下载地址:https://jenkins.io/download/

    下载地址

     

    下载地址

  2. 安装JDK与Maven

  3. 安装Tomcat

# 下载Tomcat
[root@localhost ~]# wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.26/bin/apache-tomcat-9.0.26.tar.gz
# 解压
[root@localhost ~]# tar -zxvf apache-tomcat-9.0.26.tar.gz -C /usr/local/
# 启动测试
[root@localhost apache-tomcat-9.0.26]# ./bin/startup.sh 
  1. 下载安装与运行:
# 下载 war 包
[root@localhost ~]# wget http://ftp-chi.osuosl.org/pub/jenkins/war-stable/2.190.1/jenkins.war
# 运行
[root@localhost ~]# java -jar jenkins.war --httpPort=8080
Running from: /root/jenkins.war
webroot: $user.home/.jenkins
2019-10-09 02:02:47.975+0000 [id=1] INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @307ms to org.eclipse.jetty.util.log.JavaUtilLog
2019-10-09 02:02:48.042+0000 [id=1] INFO    winstone.Logger#logInternal: Beginning extraction from war file
2019-10-09 02:02:48.061+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2019-10-09 02:02:48.103+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.z-SNAPSHOT; built: 2019-05-02T00:04:53.875Z; git: e1bc35120a6617ee3df052294e433f3a25ce7097; jvm 1.8.0_222-b10
2019-10-09 02:02:48.276+0000 [id=1] INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2019-10-09 02:02:48.306+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2019-10-09 02:02:48.307+0000 [id=1] INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2019-10-09 02:02:48.308+0000 [id=1] INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2019-10-09 02:02:48.643+0000 [id=1] INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@37313c65{Jenkins v2.190.1,/,file:///root/.jenkins/war/,AVAILABLE}{/root/.jenkins/war}
2019-10-09 02:02:48.666+0000 [id=1] INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@26ba2a48{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2019-10-09 02:02:48.683+0000 [id=1] INFO    org.eclipse.jetty.server.Server#doStart: Started @1016ms
2019-10-09 02:02:48.684+0000 [id=20]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine v4.0 running: controlPort=disabled
2019-10-09 02:02:49.465+0000 [id=28]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2019-10-09 02:02:49.468+0000 [id=26]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2019-10-09 02:02:50.392+0000 [id=26]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2019-10-09 02:02:50.395+0000 [id=26]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2019-10-09 02:02:50.423+0000 [id=26]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2019-10-09 02:02:50.797+0000 [id=28]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2019-10-09 02:02:50.885+0000 [id=41]    INFO    hudson.model.AsyncPeriodicWork$1#run: Started Download metadata
2019-10-09 02:02:50.964+0000 [id=41]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2019-10-09 02:02:51.497+0000 [id=25]    INFO    o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@37237ab6: display name [Root WebApplicationContext]; startup date [Wed Oct 09 10:02:51 CST 2019]; root of context hierarchy
2019-10-09 02:02:51.497+0000 [id=25]    INFO    o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@37237ab6]: org.springframework.beans.factory.support.DefaultListableBeanFactory@43064edb
2019-10-09 02:02:51.507+0000 [id=25]    INFO    o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@43064edb: defining beans [authenticationManager]; root of factory hierarchy
2019-10-09 02:02:51.645+0000 [id=25]    INFO    o.s.c.s.AbstractApplicationContext#prepareRefresh: Refreshing org.springframework.web.context.support.StaticWebApplicationContext@20cd72f: display name [Root WebApplicationContext]; startup date [Wed Oct 09 10:02:51 CST 2019]; root of context hierarchy
2019-10-09 02:02:51.645+0000 [id=25]    INFO    o.s.c.s.AbstractApplicationContext#obtainFreshBeanFactory: Bean factory for application context [org.springframework.web.context.support.StaticWebApplicationContext@20cd72f]: org.springframework.beans.factory.support.DefaultListableBeanFactory@5a4fc459
2019-10-09 02:02:51.645+0000 [id=25]    INFO    o.s.b.f.s.DefaultListableBeanFactory#preInstantiateSingletons: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5a4fc459: defining beans [filter,legacy]; root of factory hierarchy
2019-10-09 02:02:51.771+0000 [id=25]    INFO    jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

6739a91dcefe4b53b2685723bf1ecd71

This may also be found at: /root/.jenkins/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2019-10-09 02:03:02.041+0000 [id=25]    INFO    hudson.model.UpdateSite#updateData: Obtained the latest update center data file for UpdateSource default
2019-10-09 02:03:03.121+0000 [id=25]    INFO    jenkins.InitReactorRunner$1#onAttained: Completed initialization
2019-10-09 02:03:03.150+0000 [id=19]    INFO    hudson.WebAppMain$3#run: Jenkins is fully up and running
2019-10-09 02:03:04.781+0000 [id=41]    INFO    hudson.model.UpdateSite#updateData: Obtained the latest update center data file for UpdateSource default
2019-10-09 02:03:05.315+0000 [id=41]    INFO    h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2019-10-09 02:03:05.315+0000 [id=41]    INFO    hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1
2019-10-09 02:03:05.321+0000 [id=41]    INFO    hudson.model.AsyncPeriodicWork$1#run: Finished Download metadata. 14,430 ms

  1. YUM 安装:
# YUM 安装
[root@localhost ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@localhost ~]# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
[root@localhost ~]# yum install jenkins
# WAR包 
/usr/lib/jenkins/jenkins.war    
#  配置文件, 修改用户为:root
/etc/sysconfig/jenkins      
# 默认的JENKINS_HOME目录
/var/lib/jenkins/       
#  Jenkins日志文件
/var/log/jenkins/jenkins.log   
# 添加服务
[root@localhost ~]# service jenkins start
# 启动测试
[root@localhost ~]# systemctl start jenkins
Starting jenkins (via systemctl):                          [  确定  ]
# 重启 jenkins
[root@localhost ~]# systemctl restart jenkins

注意: systemctl start jenkins 启动不了

  1. RPM 安装
https://pkg.jenkins.io/redhat-stable/jenkins-2.190.1-1.1.noarch.rpm

二、启动测试

  1. 启动
[root@localhost ~]# java -jar jenkins.war --httpPort=8080
或
[root@localhost ~]# systemctl restart jenkins
  1. 安装配置

     

    获取密码

[root@localhost ~]# vi /root/.jenkins/secrets/initialAdminPassword

  1. 默认插件安装
    比较慢(看网速):

     

    安装插件

     

    安装插件

  2. 创建管理员

     

    创建管理员

  3. 实例配置

     

    实例配置

     

    安装完成

三、系统配置

系统配置

四、插件安装

  1. Maven构建插件
    Maven Integration
    Maven集成。

     

    Maven Integration

     

    安装完成后,新建任务中会出现,Maven项目:

     

    Maven

  2. Deploy to container
    布署到容器如:Tomcat

  3. Publish Over SSH
    把jenkins服务器上的文件,传输到远程服务器的指定目录。

     

    Publish Over SSH

  4. Multijob plugin
    可以让jenkins任务按照分组、顺序执行jenkins版本。

  5. 安装和Git,GitLab插件

     

    GitLab

  6. Gitee
    文档地址:https://gitee.com/help/articles/4193#article-header2
    码云插件。

    Gitee

码云链接配置:
1)前往 Jenkins -> Manage Jenkins -> Configure System -> Gitee Configuration -> Gitee connections
2)在 Connection name 中输入 Gitee 或者你想要的名字(一般为项目名称)

名称


3)Gitee host URL 中输入码云完整 URL地址:  https://gitee.com (码云私有化客户输入部署的域名)
4)创建码云私人令牌
地址: https://gitee.com/profile/personal_access_tokens

创建码云私人令牌

 

创建令牌


5)认证配置

认证配置

 

认证配置


6)测试

测试


最后要保存

四、全局配置

  1. JDK

     

    JDK安装

  2. GIT

     

    检查系统是否安装

     

    如果没有安装,请使用以下命令安装:

[root@bogon ~]# yum install git

  1. Maven

     

    Maven

五、认证配置

  1. 添加一个jenkins连接到码云时,登录到码云的用户名和密码

     

    新建认证

     

    全局认证

     

    添加认证

六、创建Maven构建任务

  1. Maven项目创建

     

    任务创建

  2. 任务配置

     

    添加描述

     

    指定分支

     

    添加时间戳

     

    前置构建设置:

clean package -Dmaven.test.skip=true

前置构建

后置构建

  1. 执行任务

     

    执行任务

     

    查看输出

     

    查看控制台输出

七、常见错误

  1. Caused by: java.lang.ClassNotFoundException: hudson.util.HudsonFailedToLoad

  2. linux java进程后台启动,并输出日志到指定文件

完整的命令将是: 
nohup  java -jar jenkins.war --httpPort=8080  >/logs/jenkins.log &
启动执行,执行成功。查看日志。
tail -f /logs/jenkins.log

  1. 查找已安装的YUM
[root@localhost ~]# yum list installed jenkins
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.tuna.tsinghua.edu.cn
 * epel: mirrors.tuna.tsinghua.edu.cn
 * extras: mirrors.tuna.tsinghua.edu.cn
 * updates: mirrors.huaweicloud.com
已安装的软件包
jenkins.noarch                                                                                    2.190.1-1.1                                                                                    @jenkins
  1. 忘记密码
    (1)admin 密码密文
    Jenkins 中所有的用户信息都保存在 JENKINS_HOME 目录下的 users 目录中,每个用户对应一个目录。对应 admin 用户,可以查看 users/admin/config.xml 文件,其中 passwordHash 字段中 #jbcrypt: 后面的部分就是密码经过 hash 加密后的密文。
    (2) admin 密码明文
    JENKINS_HOME 目录中的 /secrets/initialAdminPassword 文件明文保存 admin 用户的密码,直接查看即可。下面例子中的 JENKINS_HOME 需要替换为你实际的目录。
cat JENKINS_HOME/secrets/initialAdminPassword

标签:02,10,0000,--,简介,09,2019,jenkins,Jenkins
来源: https://blog.csdn.net/m0_57480266/article/details/120334362

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有