设为首页 收藏本站
查看: 1113|回复: 0

[经验分享] jenkins配置邮件通知功能以及破解管理员密码

[复制链接]

尚未签到

发表于 2018-9-3 11:30:53 | 显示全部楼层 |阅读模式
  笔记内容:jenkins配置邮件通知功能以及破解管理员密码
  笔记日期:2018-02-27


  • 26.6 jenkins邮件设置
  • 26.7 插件email-ext
  • 26.8 破解jenkins管理员密码
26.6 jenkins邮件设置
  打开Jenkins的web页面,点击 系统管理 -> 系统设置 -> Jenkins Location ,先设置系统管理员邮件地址,这里的系统管理员邮件地址需要和后续要设置的发送邮件的地址一致:
DSC0000.jpg

  然后再往下拉,找到 “邮件通知” 那一栏,填写SMTP服务器地址,我这里使用的是163的服务器:
DSC0001.jpg

  点右侧的高级,打勾“使用SMTP认证”,填写用户名以及smtp服务的密码,这里的用户名需要与我们之前设置的系统管理员邮件地址一致,如果使用的是ssl协议,还需要在这里打勾,smtp端口默认为25:
DSC0002.jpg

  打勾 “通过发送测试邮件测试配置” ,然后填写接收邮件的地址,点右侧的Test configuration,测试发送邮件:
DSC0003.jpg

  然后收件邮箱就会收到一封这样的邮件:
DSC0004.jpg

  测试完邮件能够正常发送后,点击保存,接着就是到已经构建过的任务里去配置接收邮件的地址了:
DSC0005.jpg

  在最下面 “构建后操作” 那一栏,找到E-mail Notification,Recipients填写收邮件人:
DSC0006.jpg

DSC0007.jpg

  注:这个收件人邮箱只会在任务构建失败时才能收到Jenkins发送的邮件。
  然后我手动的将代码发布的目录加上一个 i 权限,目的是为了让任务构建的时候失败:
  

[root@client ~]# cd /tmp/  
[root@client /tmp]# rm -rf jenkins_test/*
  
[root@client /tmp]# chattr +i jenkins_test/
  
[root@client /tmp]#
  

  可以看到构建这个任务失败了:
DSC0008.jpg

  这时去收件人邮件里,看看是否已经收到了Jenkins发送的邮件:
DSC0009.jpg

  如上,可以看到成功的收到了,Jenkins发送的邮件,这样我们就完成了Jenkins发送邮件功能的配置。

26.7 插件email-ext
  虽然我们已经配置了Jenkins内置的发送邮件的功能,但是也看到了有个小缺点,就是只有在任务构建失败时才会发送邮件进行通知,而如果有需求希望任务构建成功也发送邮件进行通知,那么Jenkins内置的这个发送邮件的功能就满足不了了。
  所以这种情况就需要使用插件来完成,这里我们使用到的插件是 Email Extension Plugin ,这个插件是默认安装的,所以我们直接配置使用就可以了。系统管理 -> 系统设置 -> 找到Extended E-mail Notification一栏,填写SMTP server,点击Use SMTP Authentication,填写用户名、密码、SMTP port等:
DSC00010.jpg

  基本和之前的配置一样:
DSC00011.jpg

  然后往下拉,配置Default Triggers:
DSC00012.jpg

DSC00013.jpg

  最后把之前的 “邮件通知” 的配置内容删除掉 ,接着点击保存即可。
  完成以上这一步配置后,同样的还得去配置任务中的 “构建后操作” ,点击“增加构建后操作步骤”,选择“Editable  Email Notification” :
DSC00014.jpg

  其中Project Recipient List为接收邮件的收件人,可以在默认内容后面增加额外的收件人邮箱,用逗号分隔:
DSC00015.jpg

  点击右下角的“Advanced settings”,找到 “Triggers ”,然后点击下方的 “Add Trigger” ,可以增加发邮件的条件:
DSC00016.jpg

  因为之前测试Jenkins的 “邮件通知” 时给发布代码的目录增加了 i 权限,现在得先改回来:
  

[root@client /tmp]# chattr -i jenkins_test/  

  然后点击任务的立即构建,可以看到构建成功了:
DSC00017.jpg

  收件人邮箱也正常收到了通知邮件:
DSC00018.jpg

  这个邮件通知的插件就先介绍到这,关于这个插件的更多内容,可参考以下文章:


  • Jenkins进阶系列之——01使用email-ext替换Jenkins的默认邮件通知
26.8 破解jenkins管理员密码
  人总是不经意间丢三落四,例如经常会忘记自己设置的密码,当你不小心忘记了jenkins的管理员密码,可以通过以下方法重置:
  

[root@server ~]# cd /var/lib/jenkins/users/admin/  
[root@server /var/lib/jenkins/users/admin]# ls
  
config.xml
  
[root@server /var/lib/jenkins/users/admin]# vim config.xml
  

  然后定位到 passwordHash 那一行,这一行存的就是加密后的密码,删除该行,改为以下内容:
  

#jbcrypt:$2a$10$nhq0VvaBetttj7rsLn3POuqsblkpa2S550MFW9wanc0YAd7A9De8G  

  接着重启一下jenkins服务:

  systemctl restart jenkins.service

  重启完成后,此时admin的密码为 123456 ,这是因为在配置文件里替换了之前的密码。
  有小伙伴在问这个 123456 加密后的密文是怎么来的,所以在此增加一段内容说明一下Jenkins的加密方式:
  Jenkins的密码采用的是Java加解密工具 JBcrypt 来进行加密的,而且这种加密方式有点意思,因为同一个密码它每次加密后的密文都是不一样的,由于这种加密方式也是采用hash算法进行实现的,所以是不可逆的,无法通过去解密密文得到明文。
  而它的解密方式则是需要 明文 + 密文 去重新生成一串密文来进行判断是否能够解密。所以bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。
  那么如何利用这个 JBcrypt 工具进行加密呢?这就需要使用Java代码完成了,创建一个Java工程,导入 JBcrypt 的jar包,我这里使用的是Maven工程,所以只需要配置pom.xml文件的依赖如下:
  

  org.mindrot
  jbcrypt
  0.3m
  

  

  编写代码如下:
  

package org.zero01;  

  
import org.mindrot.jbcrypt.BCrypt;
  


  
public>  

  public static void main(String[] args) {
  

  // 调用BCrypt类的hashpw方法进行加密,gensalt方法会得到一个BCrypt内置的默认值
  String hashed = BCrypt.hashpw("7654321", BCrypt.gensalt());
  System.out.println("加密后的密文:" + hashed);
  

  // 这是解密方式,需要传递密文和明文
  if (BCrypt.checkpw("7654321", hashed)) {
  System.out.println("解密成功");
  } else {
  System.out.println("解密失败");
  }
  }
  
}
  

  运行结果如下:
  

加密后的密文:$2a$10$ZqYglmkG74uZwOw1INrXceCF/EUxScyHUkXG9DP0pMSdHNb9a0Rw2  
解密成功
  

  然后和上面一样删除config.xml文件里 Jenkins 原本的密码,把加密后的密文粘贴上去,记得不要漏掉前缀 #jbcrypt:  ,例如:
  

#jbcrypt:$2a$10$ZqYglmkG74uZwOw1INrXceCF/EUxScyHUkXG9DP0pMSdHNb9a0Rw2  

  接着重启Jenkins服务,让密码生效。
  需要这个jar包的话可以到maven的中央仓库去下载,地址如下:

  http://mvnrepository.com/artifact/org.mindrot/jbcrypt




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-561997-1-1.html 上篇帖子: nginx rewrite解决 jenkins error 404心得笔记 下篇帖子: jenkins 2.89.4 简单安装使用 | 发布war包
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表