【工具- Jenkins】从0到1搭建 Jenkins,运维工资分你一半

大家好,我是温大大

最近很多同学在面试过程中,偶尔会被问到是否会搭建环境,是否用过 Jenkins,有很多公司注重devOps(开发/测试/运营角色集合),甚至有专门的DevOps工程师,薪资还是杠杠的,所以我们今天专门讲讲环境搭建 Jenkins这块。

Jenkins 作用:

  • 1、可以帮我们把研发代码拉取(git)下来 —— 所以需要用到git工具
  • 2、然后打包,部署到服务器上 —— 所以需用到JDK工具(市面上大部分代码都是用Java写的)
  • 3、大大简化了:编译、打包、部署的过程,让测试更加有效率

现状:

  • 1、小厂一般由测试、运维 或 研发人员负责
  • 2、大厂一般由自动化测试 或 专职工程效能组人员负责

无论是你中级还是高级测试工程师,多掌握一项技能不压身,

所以温大大给大家准备了:

  • Jenkins 手动 部署
  • Jenkins + Docker 部署
  • Jenkins 常用配置
  • 福利:Jenkins 操作手册推荐 & 下载

目录

  1. 环境准备(方式1:手动安装)
  • 1.1 JDK 安装
  • 1.2 Git 客户端安装
  1. 方式1: 手动安装
  • 2.0 Jenkins 部署war下载
  • 2.1 修改国内镜像加速
  • 2.2 启动Jenkins
  • 2.3 创建用户名+密码
  • 2.4 安装插件(更多的是提供思路,不一定报错信息一样)
  1. 方式2: docker 安装
  • 3.1 docker 工具安装
  • 3.2 docker 启动镜像
  • 3.3 docker 常用命令
  • 3.4 登录 Jenkins
  • 3.5 官网 Jenkins+docker 操作手册
  1. Jenkins 配置
  • 4.1 Jenkins 配置用户
  • 4.2 Jenkins 配置 git 项目
  1. Jenkins 操作手册推荐
  • 5.1 Jenkins 权威指南(白嫖)
  • 5.2 Jenkins 官方操作指南

1. 环境准备(方式1:手动安装)

以Linux环境为例,若是手动安装则需进行环境准备

1.1 JDK 安装
# 搜索
yum -y list java*

# 安装
yum install -y java-1.8.0-openjdk.x86_64
1.2 Git 客户端安装
# 搜索
yum -y list git*

# 安装
yum install -y git.x86_64

2. 方式1: 手动安装

2.0 Jenkins 部署war下载
官方地址下载:http://mirrors.jenkins-ci.org/war-stable/
2.1 修改国内镜像加速
# 配置UpdateCenter.xml文件
vim /User/xx/.jenkins/hudson.model.UpdateCenter.xml

# 将国外源 改成 国内源
<url>https://updates.jenkins.io/update-center.json</url> 
修改成
<url>http://mirror.xmission.com/jenkins/updates/update-center.json</url> 
2.2 启动Jenkins
# 命令行,启动jar包
java -jar ./jenkins.war –httpPort=8080
# 浏览器访问 http://120.0.0.1:8080

# 命令行,找到临时密码
Please use the following password to proceed to installation:

4231129670654f4295b8671b3266fdab 

  • 登录页面:

  • 临时密码:

  • 输入密码:

  • 选推荐安装

  • 安装中,最后会发现很多插件安装不上,这里不用担心,后续再手动安装自己所需要的就行

  • 安装完成,点击 「继续」

  • 若出现以下错误,直接关闭浏览器

2.3 创建用户名+密码
  • 浏览器登录:http://x.x.x.x:8080(部署了Jenkins的ip)

  • 创建:admin 用户

  • 保存并完成

  • 进入主页面

2.4 安装插件(更多的是提供思路,不一定报错信息一样)
  • 如果在安装时没有安装好对应的插件,可以在 「Mange Jenkins」看到错误,我们可以再次安装:

  • 通过报错可以看出,缺少某些依赖,例:javax-mail-api(1.6.2-2)

  • 进入plugin 库查找对应包,网址:https://updates.jenkins-ci.org/download/plugins/,找到javax-mail-api(1.6.2-2)

  • web 网页中进行安装:已下载的插件 hpi,路径:「Mange Jenkins」 - 「纠正」 - 「高级」- 「选择文件」-「上传」- 显示已完成 javax-mail-api


  • 重启下 Jenkins,后台杀掉进程(kill -9 pid),然后再启动

  • 再次启动后,发现仍有报错,根据报错 更新版本

  • 在线更新,再次重启

3. 方式2: docker 安装

上面的手动安装太费时间了,我们换一种快速安装方式,docker,简单来说:获取jenkins的镜像,然后在Linux系统上面加载镜像,这些动作都是由 docker完成

3.1 docker 工具安装
  • linux下用包管理器:yum 安装 & 启动
# 确保内核3.10+
uname -r

# 升级yum
yum update     

# 配置安装源-阿里(二选一)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

# 配置安装源-官方(二选一)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo


# 安装docker
yum install -y docker-ce docker-ce-cli containerd.io  

# 启动docker
systemctl start docker       
ps -ef | grep docker

[root@10-120-150-40 main]# ps -ef | grep docker
root      7314  4280  0 16:42 pts/0    00:00:00 grep --color=auto docker
root     10894     1  0 3月23 ?       00:02:42 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

查看 docker是否安装成功

[root@10-120-150-40 main]# docker --version

Docker version 20.10.13, build a22408634  # 显示版本
3.2 docker 启动镜像
docker run \
  -u root \
  -d \
  -p 11002:8080 \
  -p 50000:50000 \
  -v /main/jenkins_home:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  --name jenkins \
  jenkins/jenkins:lts

-u # root用户执行
-d # 开启Daemon模式
-p # 定义web访问端口(容器端口11002,主机端口8080)我们后续就可以通过web 11002端口进行访问
-p # 定义容器内部通讯端口 50000:50000,
-v # 定义工作目录,(容器目录/main/jenkins_home,主机目录/var/jenkins_home),通过访问/main/jenkins_home能看到数据文件
-- name # 定义容器名称
jenkins/jenkins:lts # 定义加载的镜像

3.3 docker 常用命令
  • docker ps -a:是否启动成功,STATUS 是 Up表示启动成功
docker ps -a

CONTAINER ID   IMAGE                 COMMAND                  CREATED         STATUS         PORTS                                                                                        NAMES
15bee5c0728d   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   3 minutes ago   Up 3 minutes   0.0.0.0:50000->50000/tcp, :::50000->50000/tcp, 0.0.0.0:11002->8080/tcp, :::11002->8080/tcp   jenkins5
  • docker logs:查看容器的日志
docker logs 15bee5c0728d


# 找到对应web密码:5c49eda02fd24202940c619bd2febb78
Please use the following password to proceed to installation:

5c49eda02fd24202940c619bd2febb78

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
  • docker stop:关闭容器
docker stop 15bee5c0728d

  • docker start:启动容器
# 启动docker,linux下用systemctl,其他系统命令不一样
systemctl start docker 

# 显示当前容器
docker ps -a


CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS                            PORTS     NAMES
15bee5c0728d   jenkins/jenkins:lts   "/sbin/tini -- /usr/…"   10 minutes ago   Exited (143) About a minute ago             jenkins5

# 启动容器 15bee5c0728d
docker start 15bee5c0728d

3.4 登录 Jenkins

参考:2.3 创建用户名+密码 & 2.4 安装插件

3.5 官网 Jenkins+docker 操作手册

https://github.com/jenkinsci/docker/blob/master/README.md

4.Jenkins 配置

4.1 Jenkins 配置用户
  • 配置:Manage Jenkins - Configure Global Security - Allow users to sign up

  • 注册:登录页面 - create an account - 注册用户wendada - create account - 登录

4.2 Jenkins 配置 git 项目

这里我以:配置git代码库 + 通过maven打包 + 通过SSH传输到服务器为例说明

  • 安装 git 插件: plugin manager - git - install without restart - 安装完后重启

  • 安装 maven 插件: plugin manager - Maven Integration - install without restart - 安装完后重启

  • 安装 SSH 插件:plugin manager - Publish Over SSH - 安装完后重启

  • 重启Jenkins: 浏览器访问 http://10.120.150.40:8080/restart - yes

  • 创建 item:New item - wen - maven项目 - ok

  • 添加 git信息:Source Code Management - git - URL添加 - 认证信息

点评:此步骤是将 git 上代码 打包到 jenkins上

  • 添加构建后操作 选Send build artifacts over SSH

*点评:此步骤是进行部署,将isterter.tar.gz 文件进行解压

5. Jenkins 操作手册推荐

5.1 Jenkins 权威指南(白嫖)

介绍:

较为经典的一本Jenkins指南,从Jenkins搭建、部署、配置(git/SSH/Maven)保姆式教学

白嫖党:

  • 后台回复:jenkins 直接获取下载链接

土豪党:

5.2 Jenkins 官方操作指南
网址:https://www.jenkins.io/zh/doc/

同学欢迎加入「温大大面试群」,我们这里分享「测试」技术、薪资、面试套路方面的交流,如果你也有一个「加薪」梦,欢迎加入我们,大家一起升职加薪。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程介绍: 本课程主要是针对如何从无到有搭建中小型互联网公司后台服务架构和运维架构的课程,课程所涉及的内容均是当前应用最广泛的技术和工具。本课程所讲解的技术体系已经在多个中小型互联网公司中实战运行使用,目前运行已经非常稳定,数据量也是在不断持续增加。并且,这个技术体系也正在被其他很多互联网公司应用,希望通过此课程,让大家能快速熟练掌握各个技术,并且能实际应用到项目中。课程将会通过实际案例讲解,并且会提供完整的视频案例源码供学员学习使用,同时有需要的企业或学员可以直接拿本套教学案例代码来使用或者二次开发。 本课程设计的技术及工具如下: 后台服务架构:dubbo、spring-boot、springmvc、spring-security-oauth2、spring-ldap、spring-data-jpa等 项目管理工具:maven、nexus 版本管理工具:gitlab、git 数据库:mysql、mongodb 运维监控工具:Open-Falcon 日志管理工具:ELK 持续集成工具Jenkins 协作工具:confluence 缓存:redis 消息中间件:kafka、rocketmq web服务器:tomcat、nginx 容器引擎:docker 本课程讲解的流程: 1、 首先讲解大家都已经熟悉的dubbo技术体系,结合dubbo搭建出一个完整的基于restful的技术框架 2、 结合dubbo的restful框架,加上基于oauth2的token验证,并实现统一用户中心的设计 3、 重点讲解spring boot,然后结合之前的dubbo技术框架进行改造,实现springboot和dubbo的相融合 4、 作为一个技术架构肯定涉及java性能调优,所以之后会根据图示讲解jvm里的一系列东西,帮助大家充分了解jvm 5、 讲解消息中间件redis,以及高可用集群搭建,以及里面的数据类型,分布式以及一致性问题的讲解 6、 git、elk、jenkins、confluence、kafak、rocketmq工具安装讲解 7、 讲解运维监控工具Open-Falcon,如何保证及时通知运维开发人员服务器的问题,保证服务器以及服务正常运行 8、 讲解docker系列课程,结合docker进行部署 架构讲解设计的目标: 1、 低成本:任何公司存在的价值都是为了获取商业利益。在可能的情况下,希望一切都是低成本的。 2、高性能:网站性能是客观的指标,可以具体体现到响应时间、吞吐量等技术指标。系统的响应延迟,指系统完成某一功能需要使用的时间;系统的吞吐量,指系统在某一时间可以处理的数据总量,通常可以用系统每秒处理的总的数据量来衡量;系统的并发能力,指系统可以同时完成某一功能的能力,通常也用QPS(query per second)来衡量。 3、 高可用:系统的可用性(availability)指系统在面对各种异常时可以正确提供服务的能力。系统的可用性可 以用系统停服务的时间与正常服务的时间的比例来衡量,也可以用某功能的失败次数与成功次数的比例来衡量。 4、易伸缩:注重线性扩展,是否可以容易通过加入机器来处理不断上升的用户访问压力。系统的伸缩性(scalability)指分布式系统通过扩展集群机器规模提高系统性能(吞吐、延迟、并发)、存储容量、计算能力的特性。 5、高安全:现在商业环境中,经常出现被网站被***,用户账户被盗等现象。网站的安全性不言而喻。
当然!以下是40道关于软件系统运维的填空题,并附带答案: 1. 在软件系统运维中,________是指对系统进行性能监控和优化,以提供更好的用户体验。 答案:性能优化 2. 软件系统运维工程师负责确保系统的________,以保证用户的访问能够正常处理。 答案:高可用性 3. 软件系统运维工程师负责进行故障排除,使用日志文件进行________,以找到问题的根本原因。 答案:分析 4. ________是软件系统运维中常见的自动化部署工具,可以实现应用程序的自动构建、测试和部署。 答案:Jenkins 5. 在软件系统运维中,常见的配置管理工具有________、Puppet和SaltStack。 答案:Ansible 6. 软件系统运维工程师负责进行容量规划,预测系统资源需求,并确保系统能够________。 答案:扩展 7. 在软件系统运维中,常见的数据库管理任务包括备份和恢复、性能优化和________。 答案:查询优化 8. 软件系统运维工程师负责保障系统的安全性,包括配置防火墙规则、实施入侵检测和________。 答案:防御 9. 软件系统运维工程师使用________工具进行系统性能监控,并根据监控结果进行调优。 答案:监控 10. 在软件系统运维中,常见的日志管理工具有ELK Stack、Splunk和________。 答案:Graylog 11. 软件系统运维工程师负责设计和部署复杂的________架构,以提供高可用性和可扩展性。 答案:网络 12. 在软件系统运维中,常见的容器编排工具Docker Swarm和________。 答案:Kubernetes 13. 软件系统运维工程师负责进行系统更新和升级,先在测试环境验证后再应用到生产环境,确保更新的________。 答案:稳定性 14. 在软件系统运维中,常见的版本控制工具有Git、Subversion和________。 答案:Mercurial 15. 软件系统运维工程师负责处理用户支持请求,及时响应用户并记录用户反馈,以提供良好的用户________。 答案:体验 16. 在软件系统运维中,常见的持续集成和交付工具Jenkins、Travis CI和________。 答案:CircleCI 17. 软件系统运维工程师负责监控系统的性能指标,包括CPU利用率、内存使用量和________。 答案:硬盘空间 18. 在软件系统运维中,常见的故障排除方法包括分析日志文件、硬件更换和________。 答案:软件升级 19. 软件系统运维工程师负责进行容量规划,预测系统资源需求,并制定合理的________策略。 答案:备份 20. 在软件系统运维中,常见的网络安全措施包括配置防火墙规则、使用加密通信协议和定期进行漏洞扫描和________。 答案:修复 21. 软件系统运维工程师负责监控系统的安全性,定期更新________和补丁以防止安全漏洞。 答案:软件 22. 在软件系统运维中,常见的性能优化技术包括资源监控和调优、代码优化和重构以及________优化。 答案:数据库查询 23. 软件系统运维工程师负责设计高可用性的系统,常见的方法包括负载均衡、冗余设计和________。 答案:容灾 24. 在软件系统运维中,常见的容器化技术有Docker、Kubernetes和________。 答案:OpenShift 25. 软件系统运维工程师负责处理用户支持请求,及时响应用户并转发给开发团队,以解决用户的________。 答案:问题 26. 在软件系统运维中,常见的自动化部署工具Jenkins、Ansible和________。 答案:Puppet 27. 软件系统运维工程师负责监控系统的性能指标,包括网络速度、磁盘IO和________。 答案:带宽 28. 在软件系统运维中,常见的配置管理工具有Ansible、Puppet和________。 答案:Chef 29. 软件系统运维工程师负责进行容量规划,预测系统资源需求,并确保系统能够满足________需求。 答案:用户访问 30. 在软件系统运维中,常见的数据库管理任务包括备份和恢复、性能优化和________。 答案:索引优化 31. 软件系统运维工程师负责保障系统的安全性,包括配置防火墙规则、实施入侵检测和________。 答案:防御策略 32. 软件系统运维工程师使用监控工具进行系统性能监控,并根据监控结果进行________。 答案:调优 33. 在软件系统运维中,常见的日志管理工具有ELK Stack、Splunk和________。 答案:Graylog 34. 软件系统运维工程师负责设计和部署复杂的网络拓扑,以提供高可用性和________。 答案:可扩展性 35. 在软件系统运维中,常见的容器编排工具Docker Swarm和________。 答案:Kubernetes 36. 软件系统运维工程师负责进行系统更新和升级,先在测试环境验证后再应用到生产环境,确保更新的________。 答案:稳定性 37. 在软件系统运维中,常见的版本控制工具有Git、Subversion和________。 答案:Mercurial 38. 软件系统运维工程师负责处理用户支持请求,及时响应用户并记录用户反馈,以提供良好的用户________。 答案:体验 39. 在软件系统运维中,常见的持续集成和交付工具Jenkins、Travis CI和________。 答案:CircleCI 40. 软件系统运维工程师负责监控系统的性能指标,包括CPU利用率、内存使用量和________。 答案:硬盘空间 希望以上的填空题和答案对你有所帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值