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

目录

Jenkins介绍

Jenkins下载、安装

一、通过war包安装

二、通过docker安装

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

jenkins 容器中的公钥私钥

在 jenkins 容器中调用 docker

简单的方式启动 Docker server REST API

一个 jenkins 示例

三、通过Homebrew安装

访问Jenkins、Jenkins配置

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 :

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

修改默认端口的方法:

  1. 打开文件 vi /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
  2. LTS 版本的路径:/usr/local/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist
  3. 修改默认端口号

 

访问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的安装、基本配置和邮件配置就是这样了,快去试试吧。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/37682.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【DC-DC】AP5193 DC-DC宽电压LED降压恒流驱动器 LED电源驱动IC

产品 AP5193是一款PWM工作模式,高效率、外围简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。最大电流2.5A。AP5193可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5193 工作频率可以通过RT 外部电阻编程来设定&…

从源码全面解析 dubbo 消费端服务调用的来龙去脉

👏作者简介:大家好,我是爱敲代码的小黄,独角兽企业的Java开发工程师,CSDN博客专家,阿里云专家博主📕系列专栏:Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…

插入排序法解析

插入排序法解析 什么是插入排序法 插入排序法是一种简单但有效的排序算法,其基本思想是将一个待排序的元素逐个插入到已经排好序的元素序列中,直至所有元素都被插入完成,从而得到一个有序序列。 具体步骤如下: 假设初始时&…

redis实现相关分布式锁

为什么需要分布式锁 我们知道,当多个线程并发操作某个对象时,可以通过synchronized来保证同一时刻只能有一个线程获取到对象锁进而处理synchronized关键字修饰的代码块或方法。既然已经有了synchronized锁,为什么这里又要引入分布式锁呢&…

react useState useEffect useMemo实际业务场景中的使用

下面的代码实现了上面图片的功能 import React, { useMemo } from "react"; import "./HomeHead.less"; import Img from "../assets/images/timg.jpg";const HomeHead function HomeHead(props) {{ /*父组件传过来的值 */}let { today } pro…

在线培训系统的保障措施带来安全、可靠的学习环境

在今天的数字时代,越来越多的人选择在线培训系统作为学习的方式。然而,随着在线教育市场的不断增长,安全和可靠性成为消费者普遍关心的问题。因此,在线培训系统需要采取一系列保护措施以确保学生的数据和隐私得到保护,…

Flutter 状态管理框架 Provider 和 Get 分析

状态管理一直是 Flutter 开发中一个火热的话题。谈到状态管理框架,社区也有诸如有以Get、Provider为代表的多种方案,它们有各自的优缺点。面对这么多的选择,你可能会想:「我需要使用状态管理么?哪种框架更适合我&#…

集群基础1——集群概念、LVS负载均衡

文章目录 一、基本了解二、LVS负载均衡2.1 基本了解2.2 工作模式2.2.1 NAT模式2.2.2 DR模式2.2.3 LVS-TUN模式2.2.4 LVS-FULLNAT模式 三、调度器算法四、ipvsadm命令 一、基本了解 什么是集群? 多台服务器做同一件事情。 集群扩展方式: scale up&#xf…

每日科技分享-POE新增文件和链接发送功能

POE推出新功能 注意POE需要魔法上午才能进去。 实测 实测可以发送论文给chatgpt,然后和AI进行共享的对话。 POE网站链接: 也可以发送链接,实测了一下,似乎有时候并不准确,我发送了关于分层强化的文章,但是…

05 Docker 安装常用软件 (mongoDB)

目录 1. mongoDB简介 1.1 mongodb的优势 2. mongodb的安装 2.1 创建数据文件夹 2.2 备份日志 2.3 配置文件夹 2.4 创建两个文件 ---> 2.4.1 配置如下: 2.5 拉取mongodb 2.6 运行容器 2.7 进入mongodb容器 ---> 2.7.0 高版本(6.0)以上是这样的 , 旧版的没研究 …

SpringBoot 集成 Mybatis

SpringBoot 集成 Mybatis 详细教程 (只有操作,没有理论,仅供参考学习) 一、操作部分 1. 准备数据库 1.1 数据库版本: C:\WINDOWS\system32>mysql -V mysql Ver 8.0.25 for Win64 on x86_64 (MySQL Community …

PyTorch深度学习实战(5)——计算机视觉

PyTorch深度学习实战(5)——计算机视觉 0. 前言1. 图像表示2. 将图像转换为结构化数组2.1 灰度图像表示2.2 彩色图像表示 3 利用神经网络进行图像分析的优势小结系列链接 0. 前言 计算机视觉是指通过计算机系统对图像和视频进行处理和分析,利…

笔记本电脑清灰换硅脂

文章目录 一、完整过程0.准备工具1.拆笔记本后盖2.洗手擦干断电3.清理部件浮尘4.拆风扇5.拆散热模具6.换硅脂7.装回去 二、图片 一、完整过程 0.准备工具 拆机螺丝刀、硅脂、撬片/撬棒、毛刷、气吹、卫生纸。 正常电脑是十字螺丝,推荐刀头使用 PH00 或 PH0。 1.拆…

基于单片机的智能太阳能手机充电器的设计与实现

功能介绍 以STM32/51单片机作为主控系统;LCD1602液晶显示当前电压值;太阳能电池板采集当前光照转换为电能,然后TP4056锂电池充放电模块给锂电池进行充电,充完后自动断电,防过充;通过CE8301模块对锂电池电压…

1-4 架构师所需要具备的技术栈与能力

架构师所需要具备的技术栈与能力 全局图解 全局图解

CSS整段文字缩进(一段多行文字中首列位置相对应)

<style>p {text-align: justify;padding-left: 2em;} </style>

学习系统编程No.28【多线程概念实战】

引言&#xff1a; 北京时间&#xff1a;2023/6/29/15:33&#xff0c;刚刚更新完博客&#xff0c;目前没什么状态&#xff0c;不好趁热打铁&#xff0c;需要去睡一会会&#xff0c;昨天睡的有点迟&#xff0c;然后忘记把7点到8点30之间的4个闹钟关掉了&#xff0c;恶心了我自己…

基于单片机智能饮水机加热系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…

Java-通过IP获取真实地址

文章目录 前言功能实现测试 前言 最近写了一个日志系统&#xff0c;需要通过访问的 IP 地址来获取真实的地址&#xff0c;并且存到数据库中&#xff0c;我也是在网上看了一些文章&#xff0c;遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法&#xff0c;可…

【css】用css样式快速写右上角badge徽标,颜色设置为渐变色

先看效果展示&#xff0c;已公开显示在图片卡片的右上角。 首先是dom代码&#xff1a;需要两个view或者div&#xff0c;public-badge是“已公开”那个矩形&#xff0c;show-signal是右边那个下三角&#xff0c;也就是阴影部分&#xff0c;这样看起来比较有立体感。 <view…