zoukankan      html  css  js  c++  java
  • Linux进阶之Jenkins持续集成介绍及安装演示

    一、Jenkins介绍

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

    Jenkins功能包括:

    1、持续的软件版本发布/测试项目。

    2、监控外部调用执行的工作。

    特点:

    1. jenkins就是基于Java开发的一种持续集成的工具

    2. 可以将运维用到的各个脚本整合起来,并且可以通过页面方式集中管理,而且也可以实现和gitlabgithub交互,也可以实现自动编译、部署程序等。

    二、持续集成

    持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    持续集成:Continuous Intergration CI

    持续交付:Continuous DeliveryCD

    持续部署:Continuous DeploymentCD

    持续集成流程

    1. 提交(git

    2. 测试

    3. 构建(jenkins

    4. 测试

    5. 部署(ansibleshellpuppet

    6. 回滚(ansible

    三、Jenkins的安装

    jenkins是基于java开发的,所以需要安装java环境

    jenkins提供了一个友好的web界面操控,安装完成之后我们可以在web端进行管理

    可以在网站pkg.jenkins.io下载所需要的jenkins版本

    http://pkg.jenkins.io/

    第一步:检查环境

    [root@ren5 ~]# getenforce

    Disabled

    [root@ren5 ~]# systemctl status firewalld

    第二步:安装Java环境(用本地的yum仓库1.8版本)

    [root@ren5 ~]# yum -y install java

    第三步:上传安装包及解压

    [root@ren5 ~]# ls

    anaconda-ks.cfg  jenkins-2.32.3-1.1.noarch.rpm

    [root@ren5 ~]# rpm -ivh jenkins-2.32.3-1.1.noarch.rpm

    第四步:启动Jenkins

    Jenkins默认监听8080端口

    [root@ren5 ~]# netstat -anp |grep Jenkins          #查不到监听的端口号

    [root@ren5 ~]# ps aux |grep Jenkins           #先查看JenkinsPID

    [root@ren5 ~]# netstat -anp |grep 9333              #在查看进程号对应监听的端口号

    tcp6       0      0 :::8080                 :::*                    LISTEN      9333/java          

    tcp6       0      0 :::44035                :::*                    LISTEN      9333/java          

    添加防火墙:

    [root@ren5 ~]# firewall-cmd --add-port=8080/tcp

    success

    [root@ren5 ~]# firewall-cmd --add-port=8080/tcp --permanent

    success

    第五步:浏览器访问

    注意:安装jenkins会卡在安装界面

    原因:当前主机尝试连接jenkins官方站点,但是无法连接上

    解决:断开当前主机的网络连接

    第六步:linux中找到第五步中提到的密码路径并复制

    [root@ren4 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

    d9ebeb586e594011b23139ac721e57d8

    密码复制成功后进入安装界面

    选择跳过插件安装

    创建用户和密码

      出现如下界面直接保存并完成

    点下面出现的开始使用Jenkins

    出现如下界面表示安装配置完成

    第七步:Jenkins获取插件并安装

    1、查看插件信息(系统管理——插件管理)

    注意:下载插件之前可以在系统管理>关于jenkins查看自己的jenkins版本信息

    2、下载插件(访问网站updates.jenkins-ci.org,选择你的jenkins版本)

    选择latest,选择需要安装的插件,插件都是以hpi结尾的

    3、把下载的插件传入到你的linux系统中

    需要把插件传到jenkins的插件目录中即下面的目录下

    [root@ren4 ~]# mv plugins.tar.gz /var/lib/jenkins/plugins/

    [root@ren4 ~]# cd /var/lib/jenkins/plugins/

    [root@ren4 plugins]# ls

    plugins.tar.gz

    [root@ren4 plugins]# tar xf plugins.tar.gz

    [root@ren4 plugins]# cp -a plugins/* .

    4、重启Jenkins

    [root@ren4 plugins]# systemctl restart jenkins

    5、浏览器端查看

    需要刷新一下浏览器,可能还需要你重新输入账号和密码

    可以看到在已安装里面已经有很多的插件了

    第八步:Jenkins版本更新

    1、下载安装更新的软件包(访问网站updates.jenkins-ci.org,选择需要升级到的版本)

    选择latest,选择war结尾的包下载

    2、把本机需要升级的war包删掉

    3、替换成下载的包

    4、重启Jenkins

    四、Jenkins凭证介绍

    有许多第三方网站和应用程序可以与 Jenkins 进行交互,例如程序代码仓库,云存储系统和服务等。

    此类应用程序的系统管理员可以在应用程序中配置凭证以专供 Jenkins 使用。通常通过将访问控制应用于这些凭证来完成这项工作,以“锁定”Jenkins可用的应用程序功能区域。一旦 Jenkins 管理员(即管理 Jenkins 站点的 Jenkins 用户)在 Jenkins 中添加/配置这些凭证,Pipeline 项目就可以使用凭证与这些第三方应用程序进行交互。

    Jenkins 中保存的凭证可以用于:

    任何适用于 Jenkins 的任何地方(即全局证书)

    特定的 Pipeline 项目

    特定的 Jenkins 用户

    Jenkins凭证的创建:

    第一步:创建凭证

    进入你的jenkins的首页,点击左边栏的凭证(Credentials

    第二步:点击全局凭据

    第三步:点击 添加一些凭据

    第四步:输入信息

    在出现的对话框中输入你的信息点击确定即可

    第五步:首页查看

    五、新建任务

    所谓的任务可以理解为:需要执行的一系列动作。

    第一步:点击新建任务

    第二步:输入要创建的任务名称

    输入完成点击下方的确定即可

    注意:名称不能有空格

    第三步:填写你需要看到的信息

    在参数构建过程中参数有:文本参数和选项参数

    第四步:git获取项目

    URL输入你的项目地址

    凭证哪里添加可以获取到你的项目的用户和用户名

    branch哪里添加分支

    第五步:构建

    就是把你的命令添加在这里即可

    shell中添加如下内容并保存即可

    第六步:构建参数

    如果你选择了选项参数,在这个任务界面就可以看到这个选项

    点开这个,就会看到我们刚才输入的type以及auto了(忘记了请往上翻一下哦)

    第七步:返回结果

    如果执行成功了左下角的圆圈就是蓝色的

    执行失败了就是红色

    鼠标放上去也会看到提示信息的

    第八步:查看执行过程

    第一列:的/var/lib/jenkins/workspace/test_for_block echo 的结果,表示jenkins现在工作目录是在你的任务名称下的

    第二列:显示当前所在的目录,其实可以发现我们现在就处在自己的新建任务的同名目录中

    第三列:进入到工作目录,即当下

    第四列:给我们展示了当前目录下的所有文件,可以看到我们远程仓库中的文件已经被拉取到了当前文件夹下

    六、pipeline结构介绍

    层级结构

    第一层:pipline,这是最外层

    第二层:stages,这层是用来完成一个特定的工作,其中有一个或者多个子层,每个子层是一个stage

    第三册:stage,这是stages的子层

    第四层:steps,这层是定义具体要执行的操作

    区域:

    1.  agent:定义当前的job运行在哪个jenkins节点上

      any:

      none:

      node:

      agent {node {label 'ser1'}}

      agent any

    2. environment:定义环境变量

     格式:变量名=变量值

    3. script:可选的

    4. steps:借助于特定的jenkis模块来完成特定的工作

      echo

      sh

      git

    pipeline演示

    第一步:新建任务

    选择流水线

    第二步:编写pipeline

    可以发现这里面的界面比我们之前选择的freestyle界面简洁的多

    在这里填写你的pipeline保存即可

    第三步:构建

    点击立即构建即可

    第四步:查看执行结果

    可以发现执行成功

    pipeline的功能很多,在接下来的博客当中会使用pipeline完成动态网站的持续集成部署。

  • 相关阅读:
    2018.12.1 区块链论文翻译
    2018.11.29 区块链论文翻译
    jshell 一个代码片段测试工具(jdk9后新增的功能)
    java 的var 定义变量有点鸡肋...
    小心Math.abs(-2147483648)的坑
    java获取同级目录下的文件
    java获取formdata里的所有参数
    No enclosing instance of type VolatleTest is accessible. Must qualify the allocation with an enclosing instance of type VolatleTest
    if else太多怎么代替,太难维护?可以使用spring-plugin 插件系统
    设计一个泛型的获取数组最大值的函数.并且这个方法只能接受Number的子类并且实现了Comparable接口
  • 原文地址:https://www.cnblogs.com/renyz/p/11372862.html
Copyright © 2011-2022 走看看