Jenkins 部署 / 构建配置 / 切换主题

2,204 阅读5分钟

一、Jenkins 简介

1、什么是CI/CD

  • CI (持续集成)

    持续集成是一种软件开发实践, 即团队开发成员经常集成他们的工作, 通常每个成员每天至少集成一次, 也就意味着每天可能会发生多次集成, 每次集成都通过自动化的构建(包括编译, 发布,自动化测试)来验证, 从而尽快的发现集成错误, 持续集成并不能消除Bug, 而是让它们非常容易发现和改正

  • CD (持续交付)

    持续交付在持续集成的基础上, 将集成后的代码部署到更贴近真实运行环境的[类生产环境]中进行更多的测试来更早的发现问题。

    比如我们完成单元测试后, 可以把代码部署到连接数据库的Staging环境中更多的自动化集成测试, 如果代码没有问题, 可以继续手动部署到生产环境中。

  • 常用得持续集成工具

    1. Jenkins
    2. Atlassian Bamboo
    3. CircleCI
    4. GitLab CI
    5. JetBrains TeamCity
    6. ThoughtWorks GoCD
    7. ThoughtWorks Snap

2、Jenkins

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成

  • Jenkins优点
    1. 开源免费
    2. 跨平台, 支持所有平台
    3. master/ slave 支持分布式自动化测试
    4. Web形式的可视化的管理页面
    5. 安装配置简单
    6. Tips及时快速的帮助
    7. 插件支持丰富(近2000)

二、Jenkins 部署

1、环境需求

不少于256M内存,不低于1G磁盘,JDK版本>=8 (openjdk也可以)

  • 安装jdk
 # 安装openjdk
 sudo apt-get install openjdk-8-jdk

以下操作基于Ubuntu 18.04

2、安装Jenkins

  • 添加存储库密钥

    wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
    # 添加密钥后,系统将返回OK
    
  • 将Debian包存储库地址附加到服务器的sources.list

    echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
    
  • 执行Update

    sudo apt-get update
    
  • 安装Jenkins及依赖

    # 安装最新版本
    sudo apt-get install jenkins
    # 安装指定jenkins版本
    sudo apt-get install jenkins=2.138.1
    

3、启动Jenkins

  • 使用systemctl启动jenkins

    sudo systemctl start jenkins
    
  • 查看Jenkins运行状态

    sudo systemctl status jenkins
    

    如果Jenkins正常运行将返回下图 (active):

    image.png

4、设置Jenkins

Jenkins成功运行之后, 将开启8080端口(可在配置文件更改), 我们在浏览器输入 ip:8080, 即可访问到Jenkins页面

  • 输入原始密码

    首次访问Jenkins会看到下图, 提示你输入Jenkin原始密码:

    image.png

    从途中提示可以看到原始密码存放在 /var/lib/jenkins/secrets/initialAdminPassword 文件, 在终端中输入 sudo cat /var/lib/jenkins/secrets/initialAdminPassword 获取密码后复制到浏览器密码表格中.

  • 安装插件

    输完密码之后会跳转到安装插件得界面, 选择第一个安装建议的插件:

    image.png

    点击安装之后等待插件安装完成:

    image.png

  • 创建用户

    插件安装完成之后会跳转到创建新用户的界面:

    image.png

    虽然可以使用上面的原始密码作为admin用户登录, 但建议新建一个用户

    用户创建完成之后, 会提示 Jenkins is ready!, 点击Start using Jenkins 进入到Jenkins界面

    image.png

    到此, Jenkins就部署完成了

三、创建第一个构建任务

1、创建任务

  • 点击Jenkins首页的新建:

    image.png

  • 输入任务名, 选择自由风格的项目, 点击确认:

    image.png

2、配置任务

任务创建之后, 进入到配置界面,可以看到配置界面主要有六部分组成: General、源码管理、构建触发器、构建环境、构建、构建后操作

image.png

  • General

    配置一些任务的基本信息, 名称、描述、旧版本管理等

  • 源码管理

    配置你的代码仓库, 配置用户名密码(私有仓库), 选择分支:

    image.png

  • 构建触发器

    image.png

    • 触发远程构建 (例如,使用脚本)

      该选项会提供一个接口,可以用来在代码层面触发构建

    • Build after other projects are built

      在某个项目构建之后构建

    • Build periodically

      周期性的构建。很好理解,就是每隔一段时间进行构建。日程表类似 linux crontab书写格式。如下图的设置,表示每隔30分钟进行一次构建

      image.png

    • GitHub hook trigger for GITScm polling

      当有更改push到gitlab代码仓库,即触发构建。后面会有一个触发构建的地址,一般被称为webhooks。需要将这个地址配置到gitlab中,webhooks如何配置后面介绍。这个是常用的构建触发器

    • Poll SCM

      该选项是配合上面这个选项使用的。当代码仓库发生改动,jenkins并不知道。需要配置这个选项,周期性的去检查代码仓库是否发生改动

      image.png

  • 构建环境

    构建环境就是构建之前的一些准备工作

    image.png

  • 构建

    构建步骤, 这里有很多选项, 如执行windows批命令、执行shell命令、使用Ant构建工具等, 按需选择

    image.png

  • 构建后操作

    构建之后的操作, 常用的就是打开报告, 发生构建结果到邮箱等操作, 按需选择配置

    image.png

3、构建任务

任务创建成功之后, 在任务界面, 点击 Build Now 即可开始构建当前任务.

image.png

4、更换主题

Jenkins默认的主题比较老了, 我们使用 Simple Theme 插件来实现主题更换

1、安装Simple Theme 插件

在Jenkins插件管理里搜索 Simple Theme, 点击安装

image.png

2、生成自定义主题css文件

打开 afonsof.com/jenkins-mat… 网站, 选择自己想要的颜色, 并上传logo之后, 点击下载

image.png

image.png

将下载的css文件上传到jenkins_home目录下的userContent/material/下(没有material请自行创建),如: workspace/userContent/material/jenkins-material-theme-green.css

3、选择主题

Jenkins 系统设置里选择 Theme 选择 CSS URL, 配置css文件url:

image.png

点击保存之后刷新页面, 主题切换成功