[12] Jenkins

摘要:
配置freestyle作业的构建脚本,然后单击“立即构建”。如果在上一步中未授予执行脚本或操作目录相应的权限,请单击“立即生成”。您将看到:最后,访问192.168.206.130:88883.2 WebHooksGitLab→ JenkinsJenkinsGitLabTest-触发构建3.3以通知Jenkins构建结果→ GitLabGitLabJenkins测试① 您希望返回哪个项目的构建结构到GitLab,并配置相应的任务,下面是Freestyle Job的“后构建操作”的配置:② 保存后单击“立即构建”,然后查看GitLab:③ 单击绿色勾号查看详细信息:4.设置Maven Private Service 4.1下载/安装[Maven]https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/tar-zxvfapache-maven-3.3.9-bin.tar.gzmvapache-maven-3.3.9/usr/local/ln-sapache-maven-3.3.9/maven[关系]http://www.sonatype.com/download-oss-sonatype以同样的方式,可以方便地操作两者的整个软链接。
1. 简介

略...

2. 安装 Jenkins

(1) RPM 安装

# a. 如果手头没有 RPM 包,就在清华源挑一个
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat-stable/jenkins-2.249.3-1.1.noarch.rpm
yum install jenkins-2.249.3-1.1.noarch.rpm

# b. 如果已有有合适的 RPM 包(特指手头还有与版本相对应的一堆插件时嘿嘿)
rpm -ivh jenkins-2.99-1.1.noarch.rpm

(2) rpm -ql jenkins 看装了哪些

/etc/init.d/jenkins
/etc/logrotate.d/jenkins
/etc/sysconfig/jenkins         # 配置文件,我在这里面把端口改成10240
/usr/lib/jenkins
/usr/lib/jenkins/jenkins.war
/usr/sbin/rcjenkins
/var/cache/jenkins
/var/lib/jenkins
/var/log/jenkins

(3) http://虚机IP:10240 访问 Jenkins

[12] Jenkins第1张

[12] Jenkins第2张

[12] Jenkins第3张

[12] Jenkins第4张

admin/admin

[12] Jenkins第5张

(4)cd /var/lib/jenkins/plugins → 把常用插件的压缩包拉过去 → tar -xzvf plugins.tar.gzmv 解压目录/* .systemctl restart jenkins

(5)系统管理 → 管理插件 → 已安装

[12] Jenkins第6张

3. 集成 GitLab

3.1 example

(1)创建一个任务,在配置详情中的【构建】中输入一个简单 Shell 命令(如 pwd)以查看构建效果;

[12] Jenkins第7张

(2)GitLab 上新建一个项目

[12] Jenkins第8张

(3)在码云上找一个开源监控项目,用 HTTPS 方式下载后解压

[12] Jenkins第9张

(4)因为是在 win 下的码云上的项目,所以我拿普通用户(root 用户的操作在虚机中)进行了 Existing folder 中的这串操作,遇到了两个问题(我可能和 Git 相克看来)

① push 的时候输入密码问题,看到这种就知道我咋输都不会对的。改成 HTTP 方式,这时再 push 会弹框提示输入账号密码,这时候把你的 GitLab 账号密码输入即可。

[12] Jenkins第10张

② 怎么都 push 不上去(没做任何分支保护)!最后让 root 用户随便 push 个文件上去(开光行为?),我才 push 上去的。

[12] Jenkins第11张

(5)在 freestyle-job 的「源码管理」中关联 monitor 项目

[12] Jenkins第12张

[12] Jenkins第13张

(6)保存配置,点击“立即构建”,然后查看控制台输出:

[12] Jenkins第14张

[12] Jenkins第15张

(7)vi /server/scripts/deploy.sh 写一个发布脚本

#!/bin/bash

CODE_DIR=/var/lib/jenkins/workspace/freestyle-job/
TIMESTAMP=`date +%F-%H-%M-%S`
NGINX_LOCATION=/usr/local/nginx

# 打包
cd $CODE_DIR && tar -zcf /tmp/web-${TIMESTAMP}.tar.gz ./*

# 拷贝
cp /tmp/web-${TIMESTAMP}.tar.gz $NGINX_LOCATION

# 解压
cd $NGINX_LOCATION && mkdir web-${TIMESTAMP}
tar -xf web-${TIMESTAMP}.tar.gz -C web-${TIMESTAMP} && rm -rf web-${TIMESTAMP}.tar.gz

# 软链接: %NGINX_HOME% / html ~> web-${TIMESTAMP}
cd $NGINX_LOCATION && rm -rf html && rm -rf html && ln -s web-${TIMESTAMP} html

安装 Jenkins 过程中,默认创建了一个 jenkins:jenkins 用户,【构建】的执行者就是这个用户(配置文件有提到)。所以,记得给脚本文件增加 other 的可执行权限,还要再查看下 other 是否对 Nginx 目录可写。

[12] Jenkins第16张

(8)配置 freestyle-job 的构建脚本,然后点击“立即构建”

[12] Jenkins第17张

【btw】如果上一步没给执行脚本或者操作目录相应的权限,点击“立即构建”你将会看到:

[12] Jenkins第18张

(9)最终,访问 192.168.206.130:8888(Nginx 监听端口)

[12] Jenkins第19张

3.2 WebHooks

GitLab → Jenkins

(1)Jenkins

[12] Jenkins第20张

(2)GitLab

[12] Jenkins第21张

(3)Test-触发构建

[12] Jenkins第22张

3.3 构建结果通知

Jenkins → GitLab

(1)GitLab

[12] Jenkins第23张

(2)Jenkins

[12] Jenkins第24张

(3)Test

① 希望哪个项目的构建结构返回 GitLab,就配置对应的任务,这里就配置 freestyle-job 的「构建后操作」了:

[12] Jenkins第25张

② 保存之后点击“立即构建”,然后查看 GitLab:

[12] Jenkins第26张

③ 点击绿色小勾,查看详细内容:

[12] Jenkins第27张

4. 搭建 Maven 私服

4.1 下载/安装

[Maven] https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.3.9/binaries/

tar -zxvf apache-maven-3.3.9-bin.tar.gz
mv apache-maven-3.3.9 /usr/local/
ln -s apache-maven-3.3.9/ maven

[nexus] http://www.sonatype.com/download-oss-sonatype 同理,然后对这俩都整个软链接方便操作。

[12] Jenkins第28张

nexus 目录结构:

[12] Jenkins第29张

vim /usr/local/nexus/etc/nexus-default.properties 知道了默认端口是 8081:

[12] Jenkins第30张

4.2 访问 Nexus

(1)访问 http://192.168.206.130:8081,可以看到如下界面(so Cool~):

[12] Jenkins第31张

(2)右上角 Sign In,用户名 admin 密码 admin123;登录成功后,进行如下操作:

[12] Jenkins第32张

(3)修改 maven/conf/settings.xml:

<!-- 找到 <servers> 标签,添加 Nexus 默认认证信息 -->
<server>
  <id>nexus-6x7-releases</id>
  <username>admin</username>
  <password>admin123</password>
</server>
<server>
  <id>nexus-6x7-snapshot</id>
  <username>admin</username>
  <password>admin123</password>
</server>

<!-- 找到 <mirrors> 标签,添加镜像 -->
<mirror>
  <id>myMirror</id>
  <name>6x7 maven</name>
  <url>http://192.168.206.130:8081/repository/maven-public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

<!-- 找到 <profiles> 标签,添加仓库信息 -->
<profile>
  <id>nexus-6x7</id>
  <repositories>
    <repository>
      <id>central</id>
      <url>http://192.168.206.130:8081/repository/maven-public/</url>
      <releases><enabled>true</enabled><releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>
  <repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>central</id>
      <url>http://192.168.206.130:8081/repository/maven-public/</url>
      <releases><enabled>true</enabled><releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>
  </pluginRepositories>
</profile>

<!-- 文件末尾,激活仓库 -->
<activeProfiles>
  <activeProfile>nexus-6x7</activeProfile>
</activeProfiles>

4.3 关联 Jenkins

[12] Jenkins第33张

可以先去码云找个 Maven 项目放到 GitLab 上,然后在 Jenkins 上创建一个任务(如下),再然后 ... 就没然后了,我不想测了我要去洗澡了。

[12] Jenkins第34张

5. Pipeline

5.1 概述

Jenkins 2.0 的精髓是“Pipeline as Code”,是帮助 Jenkins 实现 CI 到 CD 转变的重要角色。什么是 Pipeline,简单来说,就是一套运行于 Jenkins 上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程。Pipeline 的实现方式是一套 Groovy DSL,任何发布流程都可以表述为一段 Groovy 脚本,并且 Jenkins 支持从代码库直接读取脚本,从而实现了“Pipeline as Code”的理念。

Pipeline:是一个用户定义的 CD 流水线模式。Pipeline 代码定义了通常包含构建、测试和发布步骤的完整的构建过程。

  • Node 是一个机器,它是 Jenkins 环境的一部分,并且能够执行 Pipeline。同时,node 代码块也是脚本式 Pipeline 语法的关键特性。
  • Stage 块定义了在整个 Pipeline 中执行的概念上不同的任务子集(例如“构建”、“测试”和“部署”阶段),许多插件使用它来可视化或呈现 Jenkins 管道状态/进度。
  • Step 是一项任务。从根本上讲,一个步骤告诉 Jenkins 在特定时间点(或过程中的“步骤”)要做什么。例如,使用 sh step: sh 'make' 可以执行 make 这个 Shell 命令。

5.2 example

(1)创建一个 Pipeline,通过「Definition=Pipeline script」直接在 Jenkins 中写好 Pipeline 流程:

[12] Jenkins第35张

(2)点击“立即构建”,点击那三个“带有 ms 值的绿块”,可以查看 Logs:

[12] Jenkins第36张
[12] Jenkins第37张

(3)还可以把 JenkinsFile 写在项目中,然后在 Jenkins 中配置 JenkinsFile 的位置来完成。

  1. 先在 GitLab 中创建 JenkinsFile;
    [12] Jenkins第38张
  2. 配置 「Definition=Pipeline script from SCM」,填写相关配置;
    [12] Jenkins第39张
  3. 点击“立即构建”
    [12] Jenkins第40张

(4)再看个有点实际意义的 Pipeline:

[12] Jenkins第41张

[12] Jenkins第42张

免责声明:文章转载自《[12] Jenkins》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Dynamic 365中读取CSV文件Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux 环境下jmeter+ant+jenkins

一、linux下的jenkins的安装: 下载链接:https://pan.baidu.com/s/1qZItZOC 密码:58da Jenkins 下载网址: http://jenkins-ci.org/ 1.准备:JDK环境,配置环境变量 1、下载tar.gz格式的软件包至本地服务器上;下载地址为:http://www.oracle.com/techn...

树莓派搭建Nexus2私服

使用树莓派搭建Nexus2私服需要的材料有: 树莓派3B+(或者4B) 移动硬盘一个 树莓派相关文章: 树莓派搭建nexus2.x私服(本文) 树莓派搭建视频监控平台 树莓派视频监控平台实现录制归档 树莓派实现人脸打卡机 1. 下载nexus2.x安装包 由于nexus2.x官方的启动环境并不支持arm架构的树莓派,所以这里采用tomcat7 +...

在CentOS上安装GitLab-CI以及运行Runner的方法步骤

使用如下命令进行下载资源包 [root@yuyoho ~]# curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash 接着,使用如下命令进行安装 [root@yuyoho ~]# yum...

Jenkins常见的构建触发器

Jenkins内置4种构建触发器: 触发远程构建 其他工程构建后触发( Build after other projects are build) 定时构建( Build periodically) 轮询 SCM(Poll SCM) 触发远程构建   其他工程构建后触发1)创建pre_job流水线工程 2 )配置需要触发的工程   定时构建  ...

jenkins集成sonarQube实现代码质量检查

1.sonarQube的简介 SonarQube是一款自动化代码审查工具,用于检测代码中的错误、漏洞和代码异味。它可以与你现有的工作流集成,以支持跨项目分支和拉取请求的连续代码检查。 其工作流程如下: 如图SonarQube由以下4个组件组成: 1.SonarQube Server: WebServer:供开发人员,管理人员浏览高质量的快照并配置Sona...

微信分享接口的java开发的一些小步骤

1.配置接口信息进行验证 代码如下:     /**     * 访问没认证的地址跳转     *     * @param request     * @return 登录页面     * @throws Exception     */    @RequestMapping(value = "/checkWxDomainUrl", method =...