Jenkins安装方式有很多,大概可以分为下面这几种:Jenkins.war包安装
-> docker安装Jenkins
->Rancher拉取镜像安装
。第三种安装方式和第二种本质是一样的,之所以会用到第三种,是因为一个悲伤的故事。
本来Jenkins是使用Docker安装在公司的一台服务器上的,但是那台服务器上部署了k8s的服务。由于平时没太注意Jenkins占用的内存的问题,影响到开发那边的服务,然后这台服务器上安装的Jenkins容器就被惨烈删掉了。(还是周末被删掉的,周一没看到报告才发现,一脸懵)。
后来按照删我容器的领导要求,就把Jenkins通过Rancher来管理,后续就可以看到Jenkins占用的内存及CPU的情况,避免影响开发的服务。
然后下面给大家介绍一下使用Docker如何安装Jenkins,以及安装Jenkins一些相关的配置,并有构建项目的基本配置。(安装环境是在我本地的虚拟机上)。
第一步是安装Docker,这里由于是在本地虚拟机上,所以进行了一些相关操作。如果是在服务器上,一般来说都是安装了Docker环境,所以可以根据实际情况来看是否省略这一步。
[root@localhost yff]# yum -y update
[root@localhost yff]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@localhost yff]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@localhost yff]# yum list docker-ce --showduplicates | sort -r
[root@localhost yff]# yum install docker-ce-18.03.1.ce
/启动Docker服务
[root@localhost yff]# systemctl start docker
//Docker开机自启动
[root@localhost yff]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
//查看Docker服务是否启动
[root@localhost yff]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ES
[root@localhost yff]# vim /etc/docker/daemon.json
//添加或修改
{
"registry-mirrors" : [
"http://registry.docker-cn.com",
"http://docker.mirrors.ustc.edu.cn",
"https://9cpn8tt6.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com"
],
"insecure-registries" : [
"registry.docker-cn.com",
"docker.mirrors.ustc.edu.cn"
],
"debug" : true,
"experimental" : true
}
//进程
[root@localhost yff]# systemctl daemon-reload
//docker服务重启
[root@localhost yff]# systemctl restart docker
[root@localhost yff]# docker pull jenkins/jenkins:lts
[root@localhost yff]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins/jenkins lts a3f949e5ebfd 3 weeks ago 582MB
[root@192 yff]# docker run --name jenkins -p 8080:8080 -v /home/jenkins:/var/jenkins jenkins/jenkins:lts
这个命令执行完后结尾处会有一个提示,提示了初始密码
和初始密码文件路径
。可以先复制初始密码,为后面使用。
[root@192 yff]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
578a9bdfe6fa jenkins/jenkins:lts "/sbin/tini -- /usr/…" 3 minutes ago Exited (129) 10 seconds ago jenkins
[root@192 yff]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
//docker start [容器 id]
[root@192 yff]# docker start 578a9bdfe6fa
//停止容器
docker stop [容器 id]
//删除容器
docker rm [容器 id]
通过ip地址
:Jenkins容器端口
来访问Jenkins。例如http://192.168.30.142:8080/
。
一种是前面生成容器后,提示语句中已经将密码复制出来后,这里就可以直接填写。另一种就是按照提示路径进入jenkins容器中,查看提示文件内容即可。
//进入提示路径查看密码,查看密码需要输入命令进入容器
//docker exec -u 0 -it [容器 id] /bin/bash
[root@192 yff]# docker exec -u 0 -it 578a9bdfe6fa /bin/bash
root@578a9bdfe6fa:/#
//查看密码
root@578a9bdfe6fa:/# cat /var/jenkins_home/secrets/initialAdminPassword
054a52cbdbaf45c2b6a56e001ab721ac
一般是会安装默认的插件,如果网速不佳可以跳过这个默认安装的流程,后面去插件管理安装需要的插件。经常会用到的插件有下面这些。
Ant | Oracle Java SE Development Kit Installer | GitHub Branch Source | GitLab |
---|---|---|---|
Maven Integration | SSH Slaves | Subversion | Localization: Chinese (simplified) |
Locale | Email Extension Template | HTML Publisher |
//配置方式:点击系统管理->全局工具配置 其中别名可以随便写,路径填写服务器中容器
//1.jdk配置
//进入Jenkins容器中
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
//查看jdk路径
jenkins@578a9bdfe6fa:/$ echo $JAVA_HOME
/usr/local/openjdk-8
//2.git配置
//进入Jenkins容器中
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
//查看git路径
[root@localhost yff]# docker exec -it 578a9bdfe6fa /bin/bash
jenkins@578a9bdfe6fa:/$ which git
/usr/bin/git
//3.maven配置
填写name名称,勾选自动安装,版本选择最新版
点击 系统管理->全局配置->找到Locale,输入zh_CN,并勾选 忽略浏览器...选项
点击 系统管理->全局配置->找到Extended E-mail Notification(我这里配置的是我的QQ邮箱)
# SMTP server SMTP 服务器
smtp.qq.com
# Default user E-mail suffix 默认用户邮箱后缀
@qq.com
# 勾选 Use SMTP Authentication 表示使用 SMTP 认证
# User Name 用户,这里填写qq邮箱
[email protected]
# Password 填写 smtp 授权码,这个得在邮箱中获取
xxxxxx
# 勾选 Use SSL
# SMTP port 填写
465
# Default Content Type 默认内容类型选择
HTML (text/html)
# Default Recipients 默认接收人
邮箱号
# Default Subject 默认主题填写
${BUILD_STATUS} - ${PROJECT_NAME} - Build # ${BUILD_NUMBER} !
# Default Content 默认内容用 html 写,这个请见下方的 html 代码
# 勾选 Allow sending to unregistered users 允许发送给未注册用户
# SMTP server SMTP 服务器
smtp.qq.com
# 用户默认邮件后缀
@qq.com
# 勾选使用 SMTP 认证
# 用户名填写 qq 号
[email protected]
# 密码填写 smtp 授权码,这个在邮箱中获取
xxxxxx
# 勾选使用 SSL 协议
# SMTP 端口
465
# 勾选通过发送测试邮件测试配置,在 Test e-mail recipient 中填写个人邮箱用来接收验证。
若显示 Email was successfully sent 表示成功
如果测试不通过,就在Location中配置系统管理员邮件地址
[email protected]
新建任务->输入名称(尽量不要填写中文)->选择自由风格。
//范围选择全局
//Username填写猪齿鱼的用户名
[email protected]
//Private Key填写私钥
私钥可以查看本地C:\Users\YFF\.ssh\id_rsa文件
//Passhrase填写登录猪齿鱼的密码
//默认为
*/master
//这里修改为
*/dev-latest
这里选择Build periodically(定时构建),这里填写每天早上4点启动。0 4 * * *
勾选Delete workspace before build starts即可
//选择Invoke top-level Maven targets
//Maven版本选择Jenkins配置中的Maven
//目标填写,因为 job 拉取到的项目中直接就含有 pom,
//而不是拉取到的项目中下一层或下面多层中含有 pom
-X clean test
//选择Publish HTML reports
# HTML directory to archive 选择什么样的文件来存档,我这里选择了项目产生 html 报告
target/test-output
# Index page[s] 具体文件名
index.html
# Index page title[s] (Optional) 主页标题自起名
# Report title 报告标题自起名
//填写自己的邮箱
[email protected]
# Project Recipient List 项目收件人列表
填写邮箱,多个邮箱之间用;分隔,如果是抄送,就在邮箱前面加上cc:即可。例如
[email protected];cc:[email protected];
# Content Type 类型选择了 HTML (text/html)
# 其他采用默认
# Attachments 文件附属填写了如下,这个地址其实就是我项目中产生的报告
target/test-output/report/*.html
//Attach Build Log 附上构建日志我选上的就是 Attach Build Log
# 点击 Advanced Settings... 进一步配置
# 进一步配置中其他采用默认的
# Triggers 中选择 Always,Send To 中选择 Recipient List 和 Developers 即可