jenkins-搭建部署

一、CI/CD介绍

互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:

编码 --> 构建 --> 集成 --> 测试 --> 交付 --> 部署
在这里插入图片描述

正如你在上图中看到,[持续集成(Continuous Integration)]、[持续交付(Continuous Delivery)]和[持续部署(Continuous Deployment)]有着不同的软件自动化交付周期。

1. 持续集成(CI)

上面整个流程中最重要的组成部分就是持续集成(Continuous integration,简称CI)。
持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
它的好处主要有两个:

  • 快速发现错误。每完成一点更新,就集成到主干,可以快速发现错误,定位错误也比较容易;
  • 防止分支大幅偏离主干。如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成。
    在这里插入图片描述
    持续集成并不能消除Bug,而是让它们非常容易发现和改正。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成

2.持续交付

持续交付(Continuous delivery)指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上。
在这里插入图片描述
持续交付可以看作持续集成的下一步。它强调的是,不管怎么更新,软件是随时随地可以交付的。

3.持续部署(CD)

持续部署(continuous deployment)是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。
持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。
持续部署的前提是能自动化完成测试、构建、部署等步骤。
在这里插入图片描述
总的来说,持续集成、持续交付、持续部署提供了一个优秀的 DevOps 环境。对于整个开发团队来说,能很大地提升开发效率,好处与挑战并行。无论如何,频繁部署、快速交付以及开发测试流程自动化都将成为未来软件工程的重要组成部分。

二、Jenkins介绍及安装

1.Jenkins概念

Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。
jenkins官网地址
官方文档

2.Jenkins特性:

  • 开源的java语言开发持续集成工具,支持CI,CD;
  • 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理;
  • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告;
  • 分布式构建:支持Jenkins能够让多台计算机一起构建/测试;
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等;
  • 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。

3.Jenkins安装

安装最低配置:不少于256M内存,不低于1G磁盘,JDK版本>=8(openjdk也可以)
方法一:
环境:centos7
jdk-8u191-linux-x64.tar.gz
apache-tomcat-9.0.14.tar.gz
1.部署jdk环境

[root@localhost ~]# tar zxvf jdk-8u191-linux-x64.tar.gz
[root@localhost ~]# mv jdk1.8.0_191/ /usr/local/jdk
[root@localhost ~]# echo 'PATH=$PATH:/usr/local/jdk/bin' >> /etc/profile
[root@localhost ~]# source /etc/profile

2.部署tomcat

 [root@localhost bin]# tar zxvf apache-tomcat-9.0.14.tar.gz
 [root@localhost bin]# mv apache-tomcat-9.0.14 /usr/local/tomcat
 [root@localhost bin]# cd /usr/local/tomcat/bin/
 [root@localhost bin]# ./startup.sh 

测试:
在这里插入图片描述
3.部署jenkins

[root@localhost ROOT]# cd /usr/local/tomcat/webapps/ROOT/
[root@localhost ROOT]# rm -rf ./*
[root@localhost ROOT]# mv jenkins.war /usr/local/tomcat/webapps/ROOT/
[root@localhost ROOT]# unzip jenkins.war

解压完即可,测试
在这里插入图片描述
方法二:

[root@lzx ~]# yum install -y java-1.8.0-openjdk #安装openjdk,因为jenkins基于java开发
[root@lzx ~]# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo #wget -O 下载文件并以指定的文件名保存
[root@lzx ~]# cat /etc/yum.repos.d/jenkins.repo
[jenkins]
name=Jenkins
baseurl=http://pkg.jenkins.io/redhat
gpgcheck=1 #这里会检测key
[root@lzx ~]# rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key #安装jenkins key
[root@lzx ~]# yum install -y jenkins

启动jenkins

[root@lzx ~]# systemctl start jenkins
[root@lzx ~]# ps aux |grep jenkins
jenkins    1157 84.7 10.0 2320896 100884 ?      Ssl  23:28   0:08 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

[root@lzx ~]# less /var/log/jenkins/jenkins.log         //查看jenkins日志,截取下面部分
Jenkins initial setup is required. An admin user has been created and a password generated

Please use the following password to proceed to installation:

77faa20f2ad544f7bcb6593b1cf1436b        //admin密码,初始化安装时会用到

This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword        //admin密码也可以在这里查到

访问安装
打开浏览器,访问ip:8080进行安装,ip为linux机器ip
在这里插入图片描述
提示需要输入管理员密码,输入 77faa20f2ad544f7bcb6593b1cf1436b ,点击继续,会初始化一小段时间
在这里插入图片描述
这里我选择安装推荐的插件
在这里插入图片描述
这里就已经开始在安装插件,我们等它安装完就好了。
了解Jenkins
上面等插件安装完后,就进入到下面界面,提示要创建第一个admin用户,并设置用户名密码
在这里插入图片描述
这里我直接创建用户名为admin,密码自定义
在这里插入图片描述
点击保存并完成
在这里插入图片描述
提示配置jenkins URL,这里保持默认即可,继续点击保存并完成
在这里插入图片描述
提示jenkins已经就绪,开始使用jenkins
在这里插入图片描述
查看jenkins的配置文件:

[root@lzx ~]# cat /etc/sysconfig/jenkins        //查看jenkins的配置文件,定义了home、JAVA_CMD、user、port等基础配置,保持默认即可
## Path:        Development/Jenkins
## Description: Jenkins Automation Server
## Type:        string
## Default:     "/var/lib/jenkins"
## ServiceRestart: jenkins
#
# Directory where Jenkins store its configuration and working
# files (checkouts, build reports, artifacts, ...).
#
JENKINS_HOME="/var/lib/jenkins"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Java executable to run Jenkins
# When left empty, we'll try to find the suitable Java.
#
JENKINS_JAVA_CMD=""

## Type:        string
## Default:     "jenkins"
## ServiceRestart: jenkins
#
# Unix user account that runs the Jenkins daemon
# Be careful when you change this, as you need to update
# permissions of $JENKINS_HOME and /var/log/jenkins.
#
JENKINS_USER="jenkins"

## Type:        string
## Default: "false"
## ServiceRestart: jenkins
#
# Whether to skip potentially long-running chown at the
# $JENKINS_HOME location. Do not enable this, "true", unless
# you know what you're doing. See JENKINS-23273.
#
#JENKINS_INSTALL_SKIP_CHOWN="false"

## Type: string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"

## Type:        integer(0:65535)
## Default:     8080
## ServiceRestart: jenkins
#
 # Port Jenkins is listening on.
# Set to -1 to disable
#
JENKINS_PORT="8080"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# IP address Jenkins listens on for HTTP requests.
# Default is all interfaces (0.0.0.0).
#
JENKINS_LISTEN_ADDRESS=""

## Type:        integer(0:65535)
## Default:     ""
## ServiceRestart: jenkins
#
# HTTPS port Jenkins is listening on.
# Default is disabled.
#
JENKINS_HTTPS_PORT=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Path to the keystore in JKS format (as created by the JDK 'keytool').
# Default is disabled.
#
JENKINS_HTTPS_KEYSTORE=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Password to access the keystore defined in JENKINS_HTTPS_KEYSTORE.
# Default is disabled.
#
JENKINS_HTTPS_KEYSTORE_PASSWORD=""

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# IP address Jenkins listens on for HTTPS requests.
# Default is disabled.
#
JENKINS_HTTPS_LISTEN_ADDRESS=""


## Type:        integer(1:9)
## Default:     5
## ServiceRestart: jenkins
#
# Debug level for logs -- the higher the value, the more verbose.
# 5 is INFO.
#
JENKINS_DEBUG_LEVEL="5"

## Type:        yesno
## Default:     no
## ServiceRestart: jenkins
#
# Whether to enable access logging or not.
#
JENKINS_ENABLE_ACCESS_LOG="no"

## Type:        integer
## Default:     100
## ServiceRestart: jenkins
#
# Maximum number of HTTP worker threads.
#
JENKINS_HANDLER_MAX="100"

## Type:        integer
## Default:     20
## ServiceRestart: jenkins
#
# Maximum number of idle HTTP worker threads.
#
JENKINS_HANDLER_IDLE="20"

## Type:        string
## Default:     ""
## ServiceRestart: jenkins
#
# Pass arbitrary arguments to Jenkins.
# Full option list: java -jar jenkins.war --help
#
JENKINS_ARGS=""

查看程序主目录:

[root@lzx ~]# ls /var/lib/jenkins/      //查看程序主目录
config.xml                                      nodes
hudson.model.UpdateCenter.xml                   plugins
hudson.plugins.git.GitTool.xml                  queue.xml.bak
identity.key.enc                                secret.key
jenkins.CLI.xml                                 secret.key.not-so-secret
jenkins.install.InstallUtil.lastExecVersion     secrets
jenkins.install.UpgradeWizard.state             updates
jenkins.model.JenkinsLocationConfiguration.xml  userContent
jobs                                            users
logs                                            workflow-libs
nodeMonitors.xml

jobs --浏览器上面创建的任务都会存放在这里
logs --存放jenkins相关的日志
nodes – 多节点时用到
plugins – 插件所在目录
secrets --密码秘钥所在目录

注意:jobs和plugins目录比较重要
jenkins存放数据不依靠数据库,所以在移植时只需要拷贝整个程序主目录即可。

发布PHP代码
查看插件:

  • 系统管理–>插件管理,“可选插件”是未安装的插件,“已安装”是已经安装的插件,其中勾选为灰色的是不可卸载的插件
  • 检查是否有“Git plugin”和“Publish over SSH”两个插件,如果没有,在“可选插件”中安装。发现“Publish
    over SSH”没有,安装它,如果设置maven项目,需要安装Maven Integration plugin插件
    在这里插入图片描述
    安装完插件后,直接在linux机器上重启jenkins服务,而不是勾选空闲时重启
[root@lzx ~]# systemctl restart jenkins

重新在浏览器上登录jenkins
1.添加maven项目插件
在全局工具配置。需要配置jdk、git以及maven。
在这里插入图片描述
别名随便起,JAVA_HOMR是你服务器中的环境变量。你可以通过以下代码查看自己环境变量,如果没有就只能去找教程安装jdk了(JDK最好是1.8以上的版本)

echo $JAVA_HOME

git最好不要勾选自动安装
在这里插入图片描述
输入你git在服务器中的路径,不知道可以用命令查找

whereis git

maven也是,最好不要勾选自动安装
在这里插入图片描述

echo $MAVEN_HOME

以上就把全局工具配置好了。
补充:
服务器中搭建maven环境和Java环境操作如下:

tar -zxvf apache-maven-3.5.2-bin.tar.gz

我这里将maven解压缩之后的路径为:/usr/local

mv   apache-maven-3.5.2/    /usr/local/maven

配置maven环境变量

vi /etc/profile

添加环境变量

export MAVEN_HOME=/var/local/maven
export PATH=$PATH:$MAVEN_HOME/bin 

编辑之后记得使用source /etc/profile命令是改动生效。

 tar  -zxvf   jdk-8u181-linux-x64.tar.gz 
 mv  jdk-8u181/    /usr/local/java

配置java环境变量

 vi /etc/profile

添加环境变量

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

编辑之后记得使用source /etc/profile命令是改动生效。
在linux机器上生成一对秘钥(可以不按以下操作,直接在jenkins服务器上生成密钥对,并将公钥分发到目标服务器上,然后将公钥内容拷贝到web界面下的key框中)

[root@lzx ~]# cd ~/.ssh/
[root@lzx .ssh]# ls         //如果之前有生成过密钥对,那可以直接用,不需要再生成
 authorized_keys  known_hosts
[root@lzx .ssh]# ssh-keygen -f ~/.ssh/jenkins         //生成密钥对
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):        //直接回车,也可以设置密码
Enter same passphrase again:        //直接回车
Your identification has been saved in /root/.ssh/jenkins.
Your public key has been saved in /root/.ssh/jenkins.pub.
The key fingerprint is:
SHA256:VF7nN5V6pPco5DDnm8PUeu8OEg3VMj/IkgfYkqd/Hx4 root@lzx
The key's randomart image is:
+---[RSA 2048]----+
|          = . o.o|
|         * = +ooo|
|        . = = *=.|
|       . .oooO =o|
|        S .B+.+.o|
|           .=ooE.|
|           oo=+ o|
|            *..+ |
|             o ++|
+----[SHA256]-----+

[root@lzx .ssh]# cat jenkins        //查看私钥
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAu+H7NOAvrPYWwNPur64cwZYJz80MZdmQP44KJy1Zcqsfmawt
axjbgzZSPyXSM9fDqo32dR4OR8PdqFdnSDWU8gXl2tgTcsUiy+y+1TB7ZdgzmI8Z
LAAGKQsrWOFMBB9GCfBlAL6eGg4nnsnc4bDT2sJhZuzgfW/qK5AyWSCIm2wvfFw5
1m2WcaslRzNwGkg2cFK4tuY0ZkiF/UfA+YC88RAhSbjFD5FQKLzSHmkZbxbSGC09
cYtsZb3g4VwmkZUEuU/jy5nBUpxv54B6NjkvMxCVx9M/zviiTSZt+yRDaMySISxB
/3Y9FP7R/3Rcf1ZXYGK32hmQ55pDlbcM0gCEFQIDAQABAoIBAD0uSFweiMfc1unx
2W7R1sFfN1C4p8nev+9CNKIvTUpe2Qp0m9GdJZYjsUKo8Ts6jpfSZKgcom/SIzL3
S0WjVR4+t2u9IxAji8I2FKpdgEFY1uxd5MeENn1VCseFjfhlqqv/4RQN/nPjmhlG
CKxhpYs98vPOPQf70phe+1Y0ludtEztiJEM7viIsF8PLlCwf6P7S1JFIXXOAo+xQ
JAHt3AlzUj+HVfq97SbS+cbhuR/MwvIMQs54AsyPOVtt1Q7AOniDw/bnX8JpE9mU
diww6KHn/qQIB0DSWgvfyGwC6qM6C3nUv+EyybdJBcEsYAUH3SgZpBvu3smT2XN9
MCAFegECgYEA524LrSj57hPSKdGO3RT/jVReq0fHJscqSELHAl40lPSKQm+vFK2L
Z20jnQhPg9ebJQjqdkZ/J8EHuwuZjtiqYAeWUERcp5cEEm/BQZ5fB+vYlTZ+QXNa
S6Z9ex2/+qBwY8bJeZR5LPEzVN2cENH8t6FiJO1/csgS3T+KAxnGZoECgYEAz9Ri
CyGwoJs9IpEb3y9Q1AVeFvUQ47XQGJo4xD5nivJ3W/4XApajJl6hXoVp96Z0gXIR
Hhqp+/d4MOlDSeAUPeHcW6gE0h8BYl25fXbvXSpA7rSv8QU+BtQ4vMpsKF5bpRNt
vQjeJrPtHLuFJrOZ6yzov3s4EXlt0AbOBlWXW5UCgYEAvmn6zXRjfxFr3+B97UUz
pnL+mWqrXyqLjXz0BOzB0rUJdPQzV44anvRbUv7dfZrOGcCmOL50LJ9T3wACTlfS
hsR3Vn+IxJMqVIkCtxy5D+lrAAogA3YHmyrXH48wv+N11YJfjtssgF/MXk0f9W7w
wZ3VBJEsRaJ8cvGuejKg3QECgYEAzvoAun1O3mQ8OlSxoVAJ+11tGwftThofqKDO
sAJGNEbNQDyIxfcnfGr54pyTsCOCG/hxu71qVJlchbmJXeVfw1FQl6d5RZnDUyds
N9te/zW5fQFNx4clAsAP0VT26i0ur/PtcjmGpJzEI71NGgH75A7RrQEWEbERAAAG
5qAPIRECgYEAjpNyIsvDYcEtBj/oCQCa3FdPsGqRaYmBZLqJ4nCP5DolYgJkewKx
n5+AIYsXYYKB7W4a0uPKN6gMVVAkm0Icletpf9UpT51uMSR5JpqIwqOFNgI0+NkV
+jlerYcD909WjV3OqrwZm7yPqwa2RPkIfCbeHnXbkAcv+DuWn4L8RdI=
-----END RSA PRIVATE KEY-----

系统管理–>系统设置,找到之前安装的“Publish over SSH”插件,“Passphrase”填写之前生成秘钥时设置的密码,没有则留空,“Path to key”留空,“Key”粘贴/root/.ssh/jenkins文件内容。
在这里插入图片描述
然后新增“SSH Servers”,填入对应的hostname,这就是PHP代码要发布的机器
在这里插入图片描述
接下来还需要把公钥拷贝到对应的hostname机器上

[root@lzx .ssh]# cat jenkins.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC74fs04C+s9hbA0+6vrhzBlgnPzQxl2ZA/jgonLVlyqx+ZrC1rGNuDNlI/JdIz18OqjfZ1Hg5Hw92oV2dINZTyBeXa2BNyxSLL7L7VMHtl2DOYjxksAAYpCytY4UwEH0YJ8GUAvp4aDieeydzhsNPawmFm7OB9b+orkDJZIIibbC98XDnWbZZxqyVHM3AaSDZwUri25jRmSIX9R8D5gLzxECFJuMUPkVAovNIeaRlvFtIYLT1xi2xlveDhXCaRlQS5T+PLmcFSnG/ngHo2OS8zEJXH0z/O+KJNJm37JENozJIhLEH/dj0U/tH/dFx/VldgYrfaGZDnmkOVtwzSAIQV root@lzx

到lzx1上粘贴jenkins.pub

[root@lzx1 ~]# cd ~/.ssh/
[root@lzx1 .ssh]# ls
authorized_keys
[root@lzx1 .ssh]# vim authorized_keys        //写入下面内容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC74fs04C+s9hbA0+6vrhzBlgnPzQxl2ZA/jgonLVlyqx+ZrC1rGNuDNlI/JdIz18OqjfZ1Hg5Hw92oV2dINZTyBeXa2BNyxSLL7L7VMHtl2DOYjxksAAYpCytY4UwEH0YJ8GUAvp4aDieeydzhsNPawmFm7OB9b+orkDJZIIibbC98XDnWbZZxqyVHM3AaSDZwUri25jRmSIX9R8D5gLzxECFJuMUPkVAovNIeaRlvFtIYLT1xi2xlveDhXCaRlQS5T+PLmcFSnG/ngHo2OS8zEJXH0z/O+KJNJm37JENozJIhLEH/dj0U/tH/dFx/VldgYrfaGZDnmkOVtwzSAIQV root@lzx

[root@lzx .ssh]# ssh lzx1
root@lzx1's password: 
Last login: Thu Sep 20 20:51:25 2018 from 192.168.33.1
[root@lzx1 ~]#exit       
logout
Connection to lzx1 closed.
[root@lzx .ssh]#       //ssh登录没问题

浏览器上测试连接有没有问题,点击Test Configuration,如果没问题,左侧会显示Success,如下图
在这里插入图片描述
这就说明我们前面的配置是没问题的。点击应用,出现“已保存”
在这里插入图片描述
如果有多台web server ,可以继续新增,重复以上操作,最后点击保存。
新建任务:
回到首页,点击创建一个新任务,自定义任务名称,选择构建一个自由风格的软件项目
在这里插入图片描述
点击确定
在这里插入图片描述

  • 描述自定义;
  • 源码管理选择Git(如果使用SVN就选择Subversion);
  • Repository URL选择自己公共仓库的地址,这里为了方便我使用别人的公共仓库;
  • Branches to build默认为*/master,意思是发布代码的分支为master分支;
  • 构建触发器和构建环境留空;
  • 构建选择Send files or execute commands over SSH,Name选择对应的服务器,Source
    files填入**/**,表示要发布的代码为全部文件,Remote
    directory填入/tmp/jenkins_test(自定义一个存放PHP代码的文件夹名),Remove prefix和Exec
    command可以留空
    在这里插入图片描述
    点击Add Server可以增加更多台服务器,在生产环境下通常也是多台服务器一起发布代码。点击保存
    在这里插入图片描述
    点击左侧立即构建,会出现构建历史,其中#1表示第一次构建
    在这里插入图片描述
    点击#1,点击控制台输出
    在这里插入图片描述
    可以查看构建成功,通常构建完,不管是成功还是失败都会有邮件通知。这里因为没有配置邮件,所以没办法接收到邮件。
    到lzx1上查看
[root@lzx1 ~]# ll !$
ll /tmp/jenkins_test/
total 100
drwxr-xr-x 2 root root    66 Sep 21 02:42 D11Z
drwxr-xr-x 2 root root   260 Sep 21 02:42 D12Z
drwxr-xr-x 2 root root    24 Sep 21 02:42 D13Z
drwxr-xr-x 2 root root  4096 Sep 21 02:42 D14Z
drwxr-xr-x 2 root root  4096 Sep 21 02:42 D15Z
drwxr-xr-x 2 root root    25 Sep 21 02:42 D17Z

和我们发布的源是一致的,如下图
在这里插入图片描述
如果在源上面做了变更,继续点击立即构建,如果构建成功,那么在目标机器上也可以看到变更的内容。
Jenkins邮件配置
系统管理–>系统设置,找到“邮件通知”进行配置,这里我使用的是163邮箱
在这里插入图片描述
在这里插入图片描述
发邮件的地址必须与管理员地址一致,否则发邮件会报错。以上smtp端口如果25不行可以改为465试试。同时必须在163邮箱设置授权码,并且在上面设置密码的地方填入该授权码,不然也是发送不了邮件。
在这里插入图片描述
点击Test configuration,如果显示为“Email was successfully sent",说明邮箱配置成功
在这里插入图片描述
到163邮箱查看是否收到刚刚测试的邮件
在这里插入图片描述

  • 收到了,邮件配置成功。点击保存,进入到之前的任务中,点击配置
  • 找到构建后操作,选择E-mail Notification,Recipients这里填入接收邮件的邮箱地址
    在这里插入图片描述
  • 勾选保持默认即可,点击保存
  • 现在来测试,故意让构建不成功,看是否能接收邮件。
  • 首先更改目标目录的权限,使之无法写入:
[root@lzx1 ~]# cd /tmp/
[root@lzx1 tmp]# rm -rf jenkins_test/*
[root@lzx1 tmp]# chattr +i jenkins_test/         //加上i权限,让它无法写入
  • 回到浏览器,点击立即构建,查看控制台输出:
    在这里插入图片描述
    到163邮箱进行查看:
    在这里插入图片描述
  • 邮件收到,邮箱配置成功。
  • 但这样有一点不好,只有构建失败才会发邮件提示,我想让它不管构建成功还是失败都发邮件提示。
    使用插件email-ext配置邮件
    想让它不管构建成功还是失败都发邮件来提示,就必须要安装一个插件,该插件名字是Email Extension Plugin。如果你是按照上面步骤来的,那么该插件就已经安装。系统管理–>插件管理查看是否安装此插件,没有就安装
    在这里插入图片描述
    系统管理–>系统设置–>Extended E-mail Notification,填写SMTP server,勾选Use SMTP Authentication,再填写User Name和Password,Password这里填邮箱授权码,然后SMTP port这里填25
    在这里插入图片描述
    往下拉,定位到Default Triggers,选择always,表示不管什么情况都会发邮件提示。之后再清空之前设置的邮箱通知,应用、保存即可
    在这里插入图片描述
    打开任务(我这里是lzx_php)–>配置,去掉构建后操作,点击增加构建后操作步骤,选择Editable Email Notification,在Project Recipient List那里添加自己的邮箱,然后点击Advanced Setting,定位到Triggers,可以在Add Trigger处增加发邮件的条件
    在这里插入图片描述
    在这里插入图片描述
    现在来测试,看是否能接收邮件。
    先要改回目标目录原来的权限:
[root@lzx1 tmp]# chattr -i jenkins_test/          //让该目录可以写入

回到浏览器,点击立即构建,查看控制台输出:
在这里插入图片描述
到163邮箱进行查看:
在这里插入图片描述
邮件收到,邮箱配置成功。
破解管理员密码
人难免会犯些错误,如果我们不小心忘记了管理员密码,我们如何去修改回来呢?

编辑admin配置文件:

[root@lzx ~]# cd /var/lib/jenkins/users/admin/
[root@lzx admin]# ls
config.xml
[root@lzx admin]# vim config.xml     //找到<passwordHash>这行,用下面一行替换掉原来的
<passwordHash>#jbcrypt:$2a$10$eJAMBW3qb/ijrFsSxkJnDOB747e0mFWSR03UmLCn96E4N7vL5BYzC</passwordHash>

这样你的密码就会被重置为123456啦

重启服务,进入浏览器界面修改新的管理员密码:

[root@lzx admin]# systemctl restart jenkins       //需要重启服务,才能使用123456去登录

回到浏览器界面,使用123456去登录,系统管理–>管理用户–> admin右侧设置齿轮图标,设置新的管理员密码,应用、保存即可
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月清风,良宵美酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值