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

news2024/11/26 12:39:46

目录

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

静态库 的制作与使用

文章目录 重要命令程序组成静态库制作流程静态库的使用 gcc main.c -o APP -I(i) 头文件路径 -l(L) 库名字(xxx) -L 库路径 重要命令 gcc -o -I(大写i) -l(小写L) -L cp:复制文件 -r 递归,用于复制文件夹所有文件 mv:移动文件 程…

代码随想录算法训练营第53天 | 动态规划 part14 ● 1143.最长公共子序列 ●1035.不相交的线 ● 53. 最大子序和

# 1143.最长公共子序列 和718最长公共子数组 对比 本题可以不连续 int longestCommonSubsequence(string text1, string text2) {vector<vector<int>> dp(text1.size() 1, vector<int>(text2.size() 1, 0));for (int i 1; i < text1.size(); i) {for…

陆地生态系统植被净初级生产力(NPP)—CASA模型

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

Swagger、knife4j简介

Swagger 简介 Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(API Documentation & Design Tools for Teams | Swagger)。 它的主要作用是&#xff1a; 使得前后端分离开发更加方便&#xff0c;有利于团队协作 接口的…

leetcode 1218. Longest Arithmetic Subsequence of Given Difference(给定差值的最长算术子序列)

给数组arr和一个差值difference, 不打乱arr中数字的顺序&#xff0c;抽取最长的子序列&#xff0c;使序列中每相邻两个元素的差值为difference. 求满足条件的最长子序列的长度。 思路&#xff1a; DP 因为差值difference是固定的&#xff0c;每抽取一个元素&#xff0c;它前…

帆软报表分页预览如何增加一种新的导出类型。

如图,这里要在 导出下拉菜单中新增一个签章PDF的导出。 通过分析源码,发现这个菜单的定义是再报表预览加载的html页面里面 咋们如何再这里面插入我们新加的菜单项呢。 首先该页面的内容是通过MemXPageActor的flushHtml方法产生的。所以我们需要继承MemXPageActor来重载flus…

ios h5底部安全区适配

相信在ios 移动端开发h5前端童鞋 肯定会知道 就是 很多ios款型的手机 底部有一条黑色的杠杠 或者白色哎 就是会遮挡一部分我们的元素 特别是底部需要悬浮一些按钮的时候 这个就是ios的底部安全区域 对应的还有顶部的哈 这里就说下 底部的 <meta name"viewport"…

在Linux中使用curl访问EasyCVR页面,返回报错Unauthorized是什么原因?

EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力&#xff0c;比如&#xff1a;视…

第四章 数学知识(四)——容斥原理与博弈论

文章目录 容斥原理博弈论SG函数 容斥原理练习题890. 能被整除的数 博弈论练习题891. Nim游戏893. 集合-Nim游戏892. 台阶-Nim游戏894. 拆分-Nim游戏 容斥原理 若干个相交集合&#xff0c;它们的并集中存在多少个元素&#xff1f; 假设n为所有集合的元素个数相加&#xff0c;因…

vue img 图片损坏时展示替图片

场景&#xff1a;图片地址找不到时&#xff0c;会展示如图一&#xff1b;虽然没什么大影响&#xff0c;但是有点丑&#xff0c;需求是想在图片损坏时展示替补图片&#xff0c;如图二。 代码实现&#xff1a;给img标签加error事件 <img :src"item.imageUrl" :alt&q…

android JSBridge的加载时机问题

https://github.com/lzyzsd/JsBridge 也算是比较悠久和使用了。 可供参考的android和IOS&#xff0c;以及前端的使用 https://segmentfault.com/a/1190000018208609 遇到的问题&#xff1a; 比如&#xff1a; 从前端在加载WebView的时候&#xff0c;执行了某些动作&#xff0c…

【Java/大数据】Kafka简介

Kafka简介 Kafka概念关键功能应用场景 Kafka的原理Kafka 的消息模型早期的队列模型发布-订阅模型Producer、Consumer、Broker、Topic、PartitionPartitionoffsetISR Consumer Groupleader选举Controller leaderPartition leader producer 的写入流程 多副本机制replicas的同步时…

介绍AI绘画课,让智能工具助力创作 释放无限想象力 助你成为绘画大师

演示地址&#xff1a; www.runruncode.com/portal/article/index/id/19458/cid/81.html 画画是一项有趣的活动&#xff0c;它让人充满无限可能。对许多人来说&#xff0c;画画既是一种放松的方式&#xff0c;也是一种与创意、文化和艺术联系的途径。如果你是一个初学者&#x…

《深度学习推荐系统》笔记

目录 一、推荐系统是什么1.作用和意义2.推荐系统的架构2.1 逻辑架构2.2 技术架构 二、传统的推荐系统方法1. 协同过滤算法1.1 userCF&&ItemCF1.3 矩阵分解算法 2. 逻辑回归算法3. 因子分解机3.1 POLY2模型3.2 FM模型3.3 FFM模型3.4 小结 4. 组合模型4.1 GBDTLR组合模型…

valle代码过程

github代码链接 https://github.com/lifeiteng/vall-e/tree/main1.PyTorch pytorch官网 https://pytorch.org/指令 conda install pytorch torchvision torchaudio pytorch-cuda11.8 -c pytorch -c nvidiapip install torchmetrics0.11.12.fbank pip install librosa0.8.1…

前端vue入门(纯代码)33_缓存路由组件

如果我一贫如洗&#xff0c;你将会是我最后一件行李。 【31.Vue Router--缓存路由组件】 背景&#xff1a;在Cartoon组件的input框&#xff0c;输入了一些数据的时候&#xff0c;但是&#xff0c;当我切换到Stars组件的时候&#xff0c;那么Cartoon组件就会被销毁&#xff0c…

易基因“多区域DNA甲基化检测探针设计及其检测方法”获专利授权!

大家好&#xff0c;这里是专注表观组学十余年领跑多组学科研服务的易基因。 DNA甲基化是表观遗传学研究中&#xff0c;修饰最为稳定&#xff0c;含量最为丰富&#xff0c;对基因调控最为活跃、途径最为广泛的一种修饰。不同基因区域或位点的修饰与胚胎发育、疾病发生和发展密切…

三层架构详解

什么是三层架构&#xff1f; 三层架构就是为了符合“高内聚&#xff0c;低耦合”思想&#xff0c;是一种十分完善的软件应用程序架构&#xff0c;它将应用程序组织成三个逻辑和物理计算层&#xff1a;表示层&#xff08;或用户界面&#xff09;、应用层&#xff08;负责处理数据…

Java中abstract关键字

文章目录 由来语法格式使用说明应用举例 由来 举例1&#xff1a; 随着继承层次中一个个新子类的定义&#xff0c;类变得越来越具体&#xff0c;而父类则更一般&#xff0c;更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象&#xff0c;以至于它…

数字赋能,你见过哪些科技感爆棚的VR数字展厅呢?

随着科技的不断进步&#xff0c;线上展厅作为一种新型的展示方式&#xff0c;在社会层面得到了广泛的认可和应用&#xff0c;VR数字展厅带给观众不一样的视觉震撼感&#xff0c;大大提升了品牌的价值。 传统的功能性展馆或是展厅千篇一律&#xff0c;缺乏品牌特色以及趣味性&am…