Jenkins简介

Jenkins是一款开源的CI&CD软件,提供超过1000个插件来支持构建、部署、自动化。满足任何项目的需要

关键字:开源,CI&CD,插件,自动化,任何项目

开源:意味着免费,谁都可以使用,谁都能使用。

CD&CD:持续集成/持续交付。

插件:Jenkins的设计核心,通过插件扩展功能

自动化:在没有或者少有人的干预下,自动完成设计好的任务

任何项目:覆盖范围广,功能强大

知识准备

Linux基础知识

Git/GitHub/GitLab --- 代码版本管理工具和仓库

Maven --- 项目管理和构建的工具

Docker --- 应用容器引擎,一次构建,多次运行

Harbor --- 镜像管理工具

IDEA --- Java开发工具

Java--springboot的可用项目 --- 在实验中的测试项目

学习目标

掌握Jenkins的三种安装方式

掌握Jenkins的插件安装与使用

掌握Jenkins的常用配置

掌握Jenkins的自动化流程

掌握Jenkins的静态master-slave架构

掌握Jenkins的动态master-slave架构

掌握Jenkins的权限管理

Jenkins安装

基本安装

安装方式一:(了解)

在有网的状态下,通过配置yum源安装。配置yum源:

wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

执行yum安装

yum install jenkins

安装方式二:(了解)

下载rpm文件方式安装,下载地址:https://jenkins.io/zh/download/。将下载好之后上传到服务器,执行rpm命令安装

rpm -ivhjenkins-2.204.3-1.1.noarch.rpm

容器安装

docker方式安装(掌握)

通过docker安装的方式更加灵活,镜像与服务器完全隔离开来,可以部署多个服务。通过docker镜像仓库来获取镜像。仓库地址:https://hub.docker.com/search?q=jenkins&type=image

通过下面的命令获取镜像:

docker pull jenkins/jenkins:2.236-centos

拉取完镜像之后,通过下面命令启动Jenkins:

docker run -d \

-u root \

--net=host \

--name=jenkins \

-p 8080:8080 \

-p 50000:50000 \

-v /home/jenkins:/var/jenkins_home \

-v /var/run/docker.sock:/var/run/docker.sock \

jenkins/jenkins:2.236-centos

容器的访问对口为8080

注意:安装完Jenkins之后,访问Jenkins的页面会比较慢。因为Jenkins的源是国外的,访问和安装插件都非常的慢。为了提高速度,我们将使用国内的源

首先在jenkins_home目录下找到default.json文件。可以使用如下命令

find / -name 'default.json'

修改文件中的地址,通过如下命令

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' /home/jenkins/updates/default.json

sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' /home/jenkins/updates/default.json

 

Jenkins启动配置

安装好Jenkins之后,通过ip+port的方式访问Jenkins首页。192.168.1.15:8080

 

  1.  解锁Jenkins。Jenkins第一次启动需要输入管理员密码,该密码已经被初始化,存放在/home/jenkins/secrets路径下的initialAdminPassword文件中。

Jenkins的docker解决方案

  1.  自定义Jenkins,这里选择的是推荐安装插件,当然可以根据自己的实际需求来选择需要安装的插件

 

Jenkins的docker解决方案

 

  1.  创建管理员任务,这个用户将拥有Jenkins的最高权限。可以执行Jenkins的任务创建,构建,自动化过程。也可以给其他用户分配权限等。

Jenkins的docker解决方案

  1.  Jenkins URL的设置。Jenkins URL用于给各种Jenkins资源提供地址,例如页面访问,邮件通知等。

Jenkins的docker解决方案

Jenkins插件安装

插件离线下载地址:http://updates.jenkins-ci.org/download/plugins/

推荐如下插件

localization-zh-cn --- Jenkins中文语言包插件

maven-plugin --- 提供一个mavan类型任务,可在任务服务器上执行任意shell

gitlab-plugin --- 基于每个任务在推送代码或创建合并时触发Jenkins构建

git-parameter --- 提供一个从项目中配置的git存储库中选择分支,标签的功能

git--- 提供一个可以轮询,获取,签出,分支,列出,合并,标记和推送存储库

Kubernetes --- 为每个要启动的代理创建一个Kubernetes Pod,并在每次构建后停止它

kubernetes-cd --- 用于将资源配置部署到Kubernetes集群。提供以下功能:

  • 通过SSH从主节点获取群集凭据。
  • 资源配置的变量替换,使您可以进行动态资源部署。
  • 私有Docker注册表的Docker登录凭证管理。
  • 无需在Jenkins从节点上安装kubectl工具。

kubernetes-client-api --- 将Kuberenetes Client API公开给其他Jenkins插件

workflow-aggregator --- 提供协调简单或复杂的自动化的构建

email-ext --- 提供Jenkins电子邮件通知的功能

Pipeline --- 流水线执行任务

Zentimestamp --- 时间戳插件

Maven配置

在容器中没有maven指令,所以需要手动配置,因为Jenkins是通过docker容器部署的,所以Jenkins的默认工作空间就在容器中。以下是配置的dockerfile

 

FROM jenkins/jenkins:2.236-centos

user root

RUN mkdir /home/software

ADD apache-maven-3.6.3.tar.gz /home/software

RUN rm -rf apache-maven-3.6.3.tar.gz

RUN export M2_HOME=/home/software/apache-maven-3.6.3

RUN export PATH=$PATH:${M2_HOME}/bin

RUN ln -s /home/software/apache-maven-3.6.3/bin/mvn  /usr/local/bin/mvn

执行打包命令,打包新的镜像

docker build -t jenkins/jenkins:2.238-centos .

启动容器的命令中新加入一个挂在目录,并使用新的镜像

docker run -d \

-u root \

--net=host \

--name=jenkins \

-p 8080:8080 \

-p 50000:50000 \

-v /home/jenkins:/var/jenkins_home \

-v $(which docker):/usr/bin/docker \

-v /var/run/docker.sock:/var/run/docker.sock \

-v /home/software/apache-maven-3.6.3/localRepository:/home/software/apache-maven-3.6.3/localRepository \

jenkins/jenkins:2.238-centos

至此,Jenkins安装部署完成

相关文章: