DevOps / Jenkins

Jenkins部署和实战教程

浅时光 · 2月8日 · 2020年 7825次已读

1、Jenkins介绍

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

2、安装部署

2.1、环境准备

2.1.1:主机名更改

[[email protected] ~]# hostnamectl set-hostname jenkins

2.1.2:防火墙配置

# 查看放开的端口
[[email protected] ~]# firewall-cmd --zone=public --list-ports

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

# 使其规则生效
[[email protected] ~]# firewall-cmd --reload

2.1.3:关闭SELINUX

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

[[email protected] ~]# getenforce 
Permissive
[[email protected] ~]# sestatus
SELinux status:                 disabled

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

[[email protected] ~]# yum -y install wget

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

[[email protected] ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump ntpdate

2.1.5:时间同步

[[email protected] ~]# cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime 

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

[[email protected] ~]# systemctl  restart crond

2.2:下载软件

2.2.1:下载jdk

2.2.2:下载jenkins

Jenkins部署和实战教程-浅时光博客
  • 推荐使用war包方式安装,通过Tomcat启动

2.3:安装部署

2.3.1:安装JDK

  • YUM安装的是系统默认openjdk,我这里采用安装oracle jdk,不使用openjdk
  • jenkins不支持最新版本的jdk,推荐安装稳定版本的jdk8
来源(Source):https://www.dqzboy.com
Jenkins部署和实战教程-浅时光博客
[[email protected] ~]# cd /opt/soft
[[email protected] soft]# rpm -ivh jdk-8u231-linux-x64.rpm

2.3.2:jenkins安装

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

#编辑systemd服务脚本
[[email protected] ~]# 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默认访问路径
[[email protected] ~]# mv jenkins.war /usr/local/tomcat/webapps/
[[email protected] ~]# vim /usr/local/tomcat/conf/server.xml
<Context path="" docBase="jenkins" debug="0" reloadable="true" />
Jenkins部署和实战教程-浅时光博客
#修改Jenkins的默认工作主目录(配置文件,job等都会存储在该路径下)
[[email protected] ~]# cd /usr/local/tomcat/bin/
[[email protected] bin]# vim catalina.sh
export JENKINS_HOME="/opt/jenkins"
Jenkins部署和实战教程-浅时光博客
#更改tomcat目录的权限
[[email protected] ~]# chown -R deploy:deploy /usr/local/tomcat
#创建Jenkins的工作目录
[[email protected] ~]# mkdir /opt/code/workspace
[[email protected] ~]# chown -R deploy:deploy /opt/jenkins

#启动tomcat
[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl start tomcat
[[email protected] ~]# systemctl enable tomcat
[[email protected] ~]# 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
Jenkins部署和实战教程-浅时光博客

3.2:拷贝密码

[[email protected] ~]# cat /opt/code/workspace/secrets/initialAdminPassword
Jenkins部署和实战教程-浅时光博客
  • 安装推荐的插件即可
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客

3.3:登入Jenkins

Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客

4、Jenkins Job介绍

4.1:Jenkins Job介绍

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

4.2:Freestyle Job与Pippeline Job区别

4.2.1: Freestyle Job

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

4.2.2: Pippeline Job

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

5、jenkins插件安装

Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
  • 在jenkins页面上安装插件
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客

6、Jnekins创建来源(Source):https://www.dqzboy.com视图

来源(Source):https://www.dqzboy.com
  • 针对不同的环境创建不同的视图
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客
Jenkins部署和实战教程-浅时光博客

  • 以上就是一些jenkins一些简单的教程,大家如果有任务问题都可以留言,希望本文章可以帮助到大家。
Jenkins部署和实战教程-浅时光博客
2 条回应
  1. nicely未知2020-8-13 · 23:23

    不错不错

    • 浅时光
      浅时光上海2020-8-13 · 23:30

      谢谢

本站已安全运行: | 耗时 0.355 秒 | 查询 86 次 | 内存 17.73 MB