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
- 解锁Jenkins。Jenkins第一次启动需要输入管理员密码,该密码已经被初始化,存放在/home/jenkins/secrets路径下的initialAdminPassword文件中。
- 自定义Jenkins,这里选择的是推荐安装插件,当然可以根据自己的实际需求来选择需要安装的插件
- 创建管理员任务,这个用户将拥有Jenkins的最高权限。可以执行Jenkins的任务创建,构建,自动化过程。也可以给其他用户分配权限等。
- Jenkins URL的设置。Jenkins URL用于给各种Jenkins资源提供地址,例如页面访问,邮件通知等。
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安装部署完成