DevOps / Jenkins

Jenkins部署和实战教程

温馨提示:本文最后更新于2021-03-02 18:31:57,某些文章具有时效性,若有错误或已失效,请在下方留言或提交工单提交工单
浅时光 · 2月8日 · 2020年 本文3533个字,预计阅读9分钟 64648次已读

1、Jenkins介绍

  • Jenkins官网:jenkins
  • Jenkins是一个开源的软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作(代码合并),旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
  • 主流的运维开发平台,兼容所有的主流开发环境
  • 插件市场与海量业内主流开发工具实现集成
  • Job为配置单位与日志管理,使运维开发人员能协同工作
  • 权限管理划分不同的Job不同角色
  • 强大的负载均衡功能,保证我们项目的可靠性

2、安装部署

2.1、环境准备

2.1.1:主机名更改

[root@localhost ~]# hostnamectl set-hostname jenkins

2.1.2:防火墙配置

# 查看放开的端口
[root@jenkins ~]# firewall-cmd --zone=public --list-ports

# 放开端口
[root@jenkins ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp

# 使其规则生效
[root@jenkins ~]# firewall-cmd --reload

2.1.3:关闭SELINUX

[root@jenkins ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
[root@jenkins ~]# setenforce 0

[root@jenkins ~]# getenforce 
Permissive
[root@jenkins ~]# sestatus
SELinux status:                 disabled

2.1.4:设置epel源、安装基本操作命令

[root@gitlab ~]# yum -y install wget

[root@gitlab ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

[root@gitlab ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump ntpdate

2.1.5:时间同步

[root@gitlab ~]# cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 

[root@gitlab ~]# echo "*/5 * * * *  ntpdate time1.aliyun.com &> /dev/null && hwclock -w" >> /var/spool/cron/root

[root@gitlab ~]# systemctl  restart crond

2.2:下载软件

2.2.1:下载jdk

2.2.2:下载jenkins

1606037360 dca7e6ad78eadd3
原文链接:https://www.dqzboy.com
  • 推荐使用war包方式安装,通过Tomcat启动

2.3:安装部署

2.3.1:安装JDK

  • YUM安装的是系统默认openjdk,我这里采用安装oracle jdk,不使用openjdk
  • jenkins不支持最新版本的jdk,推荐安装稳定版本的jdk8
1606037401 1a99d2ae9897082
[root@jenkins ~]# cd /opt/soft
[root@jenkins soft]# rpm -ivh jdk-8u231-linux-x64.rpm

2.3.2:jenkins安装

  • 采用tomcat运行jenkins,为了解决jenkins用户权限的问题
#创建普通用户
[root@jenkins ~]# useradd deploy
#下载安装Tomcat
[root@jenkins ~]# tar -xf apache-tomcat-9.0.27.tar.gz -C /usr/local/
[root@jenkins ~]# cd /usr/local/
[root@jenkins local]# mv apache-tomcat-9.0.27 tomcat

#编辑systemd服务脚本
[root@jenkins ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat
After=network.target

[Service]
User=deploy
Group=deploy
Type=forking

ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target
#删除webapps下默认的文件,将jenkins的war包放入webapps目录下,更改Tomcat默认访问路径
[root@jenkins ~]# mv jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# vim /usr/local/tomcat/conf/server.xml
<Context path="" docBase="jenkins" debug="0" reloadable="true" />
1606037444 816d548ee32da37
#修改Jenkins的默认工作主目录(配置文件,job等都会存储在该路径下)
[root@jenkins ~]# cd /usr/local/tomcat/bin/
[root@jenkins bin]# vim catalina.sh
export JENKINS_HOME="/opt/jenkins"
1606037445 4212628e8079f2c
#更改tomcat目录的权限
[root@jenkins ~]# chown -R deploy:deploy /usr/local/tomcat
#创建Jenkins的工作目录
[root@jenkins ~]# mkdir /opt/code/workspace
[root@jenkins ~]# chown -R deploy:deploy /opt/jenkins

#启动tomcat
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start tomcat
[root@jenkins ~]# systemctl enable tomcat
[root@jenkins ~]# lsof -i:8080

2.3.3:jenkins主要目录

/usr/lib/jenkins/    #jenkin安装目录,war包存放目录
/etc/sysconfig/jenkins   #jenkins配置文件,”端口”、 ”JENKINS_HOME”等都在此文件中设置
/var/lib/jenkins   #默认的JENKINS_HOME
/var/log/jenkins/jenkins.log  #jenkins日志文件

3、Jenkins配置

3.1:访问页面

  • jenkins默认端口8080
1606037496 6e95f8beac59ae3

3.2:拷贝密码

[root@jenkins ~]# cat /opt/code/workspace/secrets/initialAdminPassword
文章来源(Source):浅时光博客
1606037533 0bb8ada2b4bac5e
  • 安装推荐的插件即可
1606037616 a56a28fa52f864c
1606037618 5cb806f99c1fe31
1606037620 0b152559d66a8d5
1606037622 83e09ce2ba63e72
1606037623 2315c0bd423ffa9

3.3:登入Jenkins

1606037774 947b978d23fee30
1606037775 76d211d8dba9934

4、Jenkins Job介绍

4.1:Jenkins Job介绍

  • 代表也给任务或者项目
  • 可配置与可执行
  • 执行后的记录称之为Build
  • 日志监控与记录
  • 所有文件集中保存

4.2:Freestyle Job与Pippeline Job区别

4.2.1: Freestyle Job

  1. 需在页面添加模块配置项与参数完成配置
  2. 每个Job仅能实现一个开发功能
  3. 无法将配置代文章来源(Source):浅时光博客码化,不利于Job配置迁移与版本控制
  4. 逻辑相对简单,无需额外的学习成本

4.2.2: Pippeline Job

  1. 所有模块,参数配置都可以体现为一个pipeline脚本
  2. 可以定义多个stage构建一个管道工作集
  3. 所有配置代码化,方便Job配置迁移与版本控制
  4. 需要pipeline脚本语法基础
  • 最大区别:freestyle方便配置但不易于项目管理,pipeline方便项目管理,但是需要一定的学习成本

5、jenkins插件安装

1606037867 328daba287b4859
1606037870 a4bce691ccefe8a
1606037873 1fa55823809097e
1606037874 9c1f3490e71256f
1606037875 947b9b550b56526
在Jenkins页面上安装插件
1606038010 51bd6b408ae1e98
1606038011 ff85fed953cae09
1606038014 e10e061990093d9
1606038015 7f83dc7038c87b9

6、Jnekins创建视图

针对不同的环境创建不同的视图
1606038217 24c3f65b297f684
1606038218 b8f8283995bf7c0
1606038220 8309c9ae1cafda1
1606038222 4a3eca442c6e930
1606038224 784d3e774e75356
1606038225 f97b86943d4ec1a
1606038227 9648d7a5b756053

以上就是一些jenkins一些简单的教程,大家如果有任何问题都可以留言,希望本文章可以帮助到大家。




本文作者:浅时光
原文链接:https://www.dqzboy.com/434.html
版权声明:知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)协议进行许可
转载时请以超链接形式标明文章原始出处和作者信息

7 条回应

必须 注册 为本站用户, 登录 后才可以发表评论!

  1. 花粥未知2020-11-22 · 17:50

    给博主点赞,写的不错

  2. 111未知2020-11-20 · 14:48

    就是那种点击一点图片会放大,我看见别的网站有

    • 浅时光
      浅时光上海2020-11-20 · 14:50

      我这个目前不支持,后面抽时间我加个

  3. 111未知2020-11-20 · 14:43

    图片点击不能放大,看不清

    • 浅时光
      浅时光上海2020-11-20 · 14:44

      这个是wp自动压缩了,抽时间我重新上传下

  4. nicely未知2020-8-13 · 23:23

    不错不错