Jenkins邮件配置
Manage Jenkins → configure system,找到Jenkins Location进行配置,这里我使用的是QQ邮箱
发邮件的地址必须与管理员地址一致,否则发邮件会报错。同时必须在QQ邮箱设置授权码,并且在上面设置密码的地方填入该授权码,不然也是发送不了邮件。
点击Test configuration,如果显示为“Email was successfully sent",说明邮箱配置成功
到QQ邮箱查看是否收到刚刚测试的邮件
收到了,邮件配置成功。点击保存,进入到之前的任务中,点击配置
找到构建后操作,选择E-mail Notification,Recipients这里填入接收邮件的邮箱地址
勾选保持默认即可,点击保存
现在来测试,故意让构建不成功,看是否能接收邮件。
首先jinkai02上更改目标目录的权限,使之无法写入:
[root@localhost tmp]# rm -rf jenkins_test/*
[root@localhost tmp]# cd /tmp/
[root@localhost tmp]# rm -rf jenkins_test/*
[root@localhost tmp]# chattr +i jenkins_test/
[root@localhost tmp]# ls jenkins_test/
回到浏览器,点击立即构建,查看控制台输出:
到QQ邮箱进行查看:
邮件收到,邮箱配置成功。
但这样有一点不好,只有构建失败才会发邮件提示,我想让它不管构建成功还是失败都发邮件提示。
使用插件email-ext配置邮件
想让它不管构建成功还是失败都发邮件来提示,就必须要安装一个插件,该插件名字是Email Extension Plugin。如果你是按照上面步骤来的,那么该插件就已经安装。Manage Jenkins → Manage Plugins查看是否安装此插件,没有就安装。
Manage Jenkins → Configure System → Extended E-mail Notification,填写SMTP server,勾选Use SMTP Authentication,再填写User Name和Password,Password这里填邮箱授权码,然后SMTP port这里填465
往下拉,定位到Default Triggers,选择always,表示不管什么情况都会发邮件提示。之后再清空之前设置的邮箱通知,应用、保存即可
打开之前创建的linuxprobe任务 → 配置,去掉构建后操作,点击增加构建后操作步骤,选择Editable Email Notification,在Project Recipient List那里添加自己的邮箱,然后继续往下拉点击Advanced Setting,定位到Triggers,可以在Add Trigger处增加发邮件的条件
现在来测试,看是否能接收邮件。
先在jinkai02上改回目标目录原来的权限:
[root@localhost tmp]# chattr -i jenkins_test/
回到浏览器,点击立即构建,查看控制台输出:
到QQ邮箱进行查看:
邮件收到,邮箱配置成功。
破解管理员密码
一般初始密码
通常情况下,在初始化完成后的Jenkins环境中,初始密码在/var/lib/jenkins/secrets/initialAdminPassword下直接cat就能看到,然后根据提示登陆即可
正常运行后的密码
要是登录后,还正常运行过的环境,这个文件已经不存在了,这个时候密码在/var/lib/jenkins/users下有个albert(这个是我自己设的用户名)开头的文件,默认可能是
/var/lib/jenkins/users/albert_3614558779671548111/config.xml
cat可以查看到
<passwordHash>#jbcrypt:$2a$10$txFrUEMY4x9YmCtIYEze3O.xr.dZXnDBzyeRU329Gm.rvu6zCTpfm</passwordHash>
一段被hash加密的密码字符串,不过貌似只能看看而已,那如何破解密码呢?如下
密码环境配置在/var/lib/jenkins/config.xml
备份/var/lib/jenkins/config.xml文件,用来后边再恢复配置
[root@jinkai01 jenkins]# cp config.xml config.xml.bak
修改config.xml文件下密码环境配置
vim /var/lib/jenkins/config.xml
#删除如下代码段,对,是删除,不是注释,注释没用的,后边会自动恢复被注释,起不到修改效果
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>true</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
修改完成后重启服务
[root@jinkai01 jenkins]# systemctl restart jenkins
再次登录Jenkins页面的时候,发现已经不需要登录了,可以直接进入页面,并且是管理员权限
Manage Jenkins ----Configure Global Security(配置全局安全性)
安全域选择---Jenkins’ own user database---保存
用户列表--选择用户---设置---password(设置新密码)--保存
恢复config.xml文件,并重启服务
[root@jinkai01 jenkins]# cp config.xml.bak config.xml
cp:是否覆盖"config.xml"? yes
[root@jinkai01 jenkins]# systemctl restart jenkins
重新网页登录jenkins,发现输入用户和密码的登录界面,尝试新密码登录
登录成功