Jenkins的几种安装方式以及邮件配置

Jenkins介绍

Jenkins是一个java开发的、开源的、非常好用持续集成的工具,它能帮我们实现自动化部署环境、测试、打包等等的工作,还可以在构建任务成功或者失败之后给我们发邮件通知。

什么叫持续集成呢,就是能重复、持久的去运行一个任务。

Jenkins下载、安装

一、通过war包安装

Jenkins的下载地址是https://www.jenkins.io/zh/download/,下载的时候可以选择各个版本的以及对应操作系统的版本,一般你下载的时候下载通用的.war文件即可,这个不管在哪个操作系统上都可以运行,但是前提是你要装jdk,因为Jenkins是java开发的。

本篇博客用的Jenkins是2.17版本,jdk的版本是1.7,如果你是在官网上下载最新的Jenkins版本,需要1.8的jdk,否则可能启动Jenkins失败。

如想下载历史版本的war包,可在 http://updates.jenkins-ci.org/download/war/ 中下载

下面图是Jenkins官网上.war文件的截图。

下载之后,启动Jenkins就很简单了,在命令行里面进入到Jenkins所在的目录下,然后执行 java -jar jenkins.war启动即可,这种方式在linux、mac、Windows下面全部都好使。

启动之后,在命令行里面看日志,最后显示Jenkins is fully up and running,Jenkins启动成功。

cd Desktop #下载到了桌面,cd到桌面

java -jar jenkins.war #启动Jenkins

二、通过docker安装

docker的安装及使用参考:https://www.cnblogs.com/feng0815/p/14118365.html

1、安装Jenkins镜像

安装最新的稳定版本:docker pull jenkins/jenkins:lts

安装最新版本:docker pull jenkins/jenkins

2、启动容器

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins:lts

8080 端口是访问 jenkins 网页的端口,如果你想在 80 端口访问,就改成 -p 80:8080

50000 端口与 slave 有关,参考 jnlp-slave 这个镜像,里面使用的 port。

-v 参数挂载了宿主机一个指定目录到 /var/jenkins_home ,相当于设置了自定义的 JENKINS_HOME

jenkins 容器中添加 git, maven 等组件

一般我们使用 jenkins 的时候,需要用到 git, jdk, maven 等等的组件,在使用 docker-jenkins 的时候,可以用 -v 参数挂载到 /usr/bin 目录中,并不需要再在镜像中进行安装,也不需要基于 jenkins 镜像重新写 dockerfile,保持镜像干净。

jenkins 容器中的公钥私钥

很常用的 jenkins 构建操作有:在 Execute shell 步骤中用 ssh 的方式远程登录上其他服务器,服务器上面的执行 shell 脚本。 ssh 方式需要用到的 public key 和 private key 也是可以用 -v 参数挂载到 /var/jenkins_home/.ssh 目录中。注意,这里不挂载到容器的 /root/.ssh 目录,因为整个 jenkins 容器是以 jenkins 用户来运行的。

在 jenkins 容器中调用 docker

有两种方式来调用 docker :

通常用在 docker 单节点下,可以挂载 docker 到 jenkins 容器中,添加如下参数: -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker

通常用在 docker 集群中,可以使用 jenkins 的 docker 插件,连接到 Docker server REST API(http://master-ip:2375):Docker pluginDocker Commons Plugindocker-build-step

简单的方式启动 Docker server REST API

在安装容器管理工具 shipyard 的文档中,发现可以用 shipyard/docker-proxy 这个镜像来暴露 2375 端口, 得到一个 Docker server REST API

复制代码
docker run \
    -ti \
    -d \
    -p 2375:2375 \
    --hostname=$HOSTNAME \
    --restart=always \
    --name shipyard-proxy \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e PORT=2375 \
    shipyard/docker-proxy:latest 

http://master-ip:2375 填入 jenkins 系统设置中的 Docker URL 就可以了(master-ip 是 docker server 的 ip)。

一个 jenkins 示例

我启动的 jenkins 里面包含 git, docker, 一份宿主机的公钥密钥, 自定义 JENKINS_HOME, 使用的启动命令如下:

复制代码
docker run \
    -d -p 8080:8080 -p 50000:50000 \
    -v /home/docker/jenkins_home/:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(which docker):/usr/bin/docker \
    -v $(which git):/usr/bin/git \
    -v ~/.ssh:/var/jenkins_home/.ssh \
    --name=jenkins jenkins:lts

三、通过Homebrew安装

对于Mac,可直接使用Homebrew工具进行安装,注意:该方法指适用于Mac

安装命令:

安装最新的 LTS 版本:brew install jenkins-lts

安装特定的 LTS 版本:brew install jenkins-lts@YOUR_VERSION

启动 Jenkins 服务:brew services start jenkins-lts

重新启动 Jenkins 服务:brew services restart jenkins-lts

更新 Jenkins 版本:brew upgrade jenkins-lts

注意,通过brew 安装的Jenkins版本可能不是最新的,而且通过brew upgrade jenkins-lts命令可能也更新不到最新版本的Jenkins,此时我们可以通过系统管理中的版本更新中进行更新新版本,如下图

或者直接下载最新版被的war包,切换到目录cd ~/.jenkins,然后用最新下载的war包替换文件夹中的war

修改默认端口的方法:

打开文件 vi /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

LTS 版本的路径:/usr/local/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist

修改默认端口号

访问Jenkins、Jenkins配置

刚才那种方式启动的Jenkins默认的端口号是8080,访问Jenkins的话,就是你的 ip:8080,我的是本机启动的,所以我用localhost:8080访问,如果你是在你服务器上部署的话,那么要写你们服务器的ip才能访问~

第一次打开Jenkins,它会让你解锁,输入admin的初始化密码,这个密码在页面上有提示,在c盘的一个目录下,去c盘下面找到它,用txt打开,复制出来,填进去就可以了,如下图:

填完初始密码之后,会出来让你选择插件,是选择建议安装的插件还是自定义插件,咱们选择安装建议安装的插件即可,剩下的咱们需要什么再安装什么,它会自动安装这些插件,安装插件过程可能比较久,要耐心一点,如下图:

下面是安装插件页面

插件安装完成之后,要输入一个管理员的用户名和密码和邮箱,这里要记住哦,以后登录都要用这个,邮箱不能乱写,要写你以后用它发邮件使用的邮箱,要不然发邮件会失败。

至此Jenkins的安装、基本配置才算真正结束,下面是登录进来的样子

Jenkins配置邮件发送

使用admin用户登录,在Jenkins系统管理中,找到全局设置,在全局设置里面有Jenkins Location,下面有个系统管理员邮件地址,把这个写成刚才创建admin用户时输入的邮箱地址。

然后继续往下找,再找到邮件通知,再点邮件通知下面的高级,这个才是配置发邮件的地方。

smtp服务器是smtp服务器的地址,你用的是哪个邮箱就写哪个邮箱的smtp服务器

要勾选上使用SMTP认证,这里是输入邮箱的账号密码的,注意qq邮箱和163邮箱都是要输入授权码才可以的,不能直接用密码,而且还要在设置里面开启SMTP。

如果邮箱是ssl协议的,那么你要勾上使用SSL协议,比如qq邮箱就是用的ssl协议

下面还有个SMTP端口号,不用写,Jenkins是会自动帮你写端口号,如果你们的邮箱服务器端口号用的不是默认的,SMTP的默认端口号是25,SMTPSSL默认端口号是465,如果你们公司的邮件服务器是自己搭建的,端口号改了你就得这里写上。

下面是截图

邮件配置完成,下面咱们来测试一下,到底能不能成功。

继续往下找,有一个通过发送测试邮件测试配置,勾上它,它会让你输入一个邮箱,然后点下Test configuration,就可以测试啦,下面可以看到我已经收到Jenkins发的测试邮件啦。

终于ok啦,Jenkins的安装、基本配置和邮件配置就是这样了,快去试试吧。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

相关推荐
SelectDB1 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220703 天前
如何搭建本地yum源(上)
运维
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠6 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉6 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造