話說公司的Jenkins有一天突然就不能寄信了, 上網爬文大部分都說是Google的問題, 改成"低安全性連線"就好, 試了, 沒用.

有人說不支援SSL認證, 要改成TLS, 改了, 沒用.

又有人說Jenkins 2.1版預設startttl關閉, 要在/etc/default/jenkins的 JENKINS_ARGS加上"-Dmail.smtp.starttls.enable=true", 改了, 沒用.

改來改去都沒用, 那升級Jenkins試試有沒有用吧.

一樣的那套指令, 更新apt資料庫再裝jenkins:

wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -

deb https://pkg.jenkins.io/debian-stable binary/

sudo apt-get update

sudo apt-get install jenkins

 

這次的結果是:

Job for jenkins.service failed because the control process exited with error code.
See "systemctl status jenkins.service" and "journalctl -xe" for details.
invoke-rc.d: initscript jenkins, action "start" failed.
● jenkins.service - LSB: Start Jenkins at boot time
   Loaded: loaded (/etc/init.d/jenkins; generated)
   Active: failed (Result: exit-code) since Mon 2021-08-09 11:16:38 CST; 20ms ago
     Docs: man:systemd-sysv-generator(8)
  Process: 27463 ExecStart=/etc/init.d/jenkins start (code=exited, status=7)

 八  09 11:16:36 asuswrt-build-server systemd[1]: Starting LSB: Start Jenkins at boot time...
 八  09 11:16:36 asuswrt-build-server jenkins[27463]: Correct java version found
 八  09 11:16:36 asuswrt-build-server jenkins[27463]:  * Starting Jenkins Automation Server jenkins
 八  09 11:16:36 asuswrt-build-server su[27507]: Successful su for jenkins by root
 八  09 11:16:36 asuswrt-build-server su[27507]: + ??? root:jenkins
 八  09 11:16:36 asuswrt-build-server su[27507]: pam_unix(su:session): session opened for user jenkins by (uid=0)
 八  09 11:16:38 asuswrt-build-server jenkins[27463]:    ...fail!
 八  09 11:16:38 asuswrt-build-server systemd[1]: jenkins.service: Control process exited, code=exited status=7
 八  09 11:16:38 asuswrt-build-server systemd[1]: jenkins.service: Failed with result 'exit-code'.
 八  09 11:16:38 asuswrt-build-server systemd[1]: Failed to start LSB: Start Jenkins at boot time.
dpkg: error processing package jenkins (--configure):
 installed jenkins package post-installation script subprocess returned error exit status 1
Processing triggers for systemd (237-3ubuntu10.50) ...
Processing triggers for ureadahead (0.100.0-21) ...
Errors were encountered while processing:
 jenkins
E: Sub-process /usr/bin/dpkg returned an error code (1)

嚇! 怎麼越補越大洞! 不妙啊, 繼續找問題, 有人說這是openjdk版本不支援的問題, 看了一下我的openjdk是version 8, 沒錯啊? 難道是Jenkins太新? 再繼續升級openjdk到11, 也打開/etc/init.d/jenkins看支援板號JAVA_ALLOWED_VERSIONS=( "1.8" "11" ), 8跟11都可以, 怎麼就是跑不起來?

剛好同事有成功升級Jenkins, 問問他的做法, 他是下載jenkins.war直接貼到/usr/share/jenkins, 把舊版換掉, 試了, 也沒用! 哇, 這下慘了, 看看還有沒有什麼線索, 上面的錯誤訊息說用"systemctl status jenkins.service"試試看得到


● jenkins.service - LSB: Start Jenkins at boot time
   Loaded: loaded (/etc/init.d/jenkins; generated)
   Active: failed (Result: exit-code) since Mon 2021-08-09 11:16:38 CST; 2min 28s ago
     Docs: man:systemd-sysv-generator(8)

我真想擺出JOJO POSE, 大喊"沒用 沒用 沒用 沒用 沒用"啊!

系統資訊都看過了, 那來看Jenkins自己的log寫什麼吧, 打開/var/log/jenkis/jenkins.log看到multiple define Dmail.smtp.starttls.enable=true之類的訊息, 在記錄這篇文章時已經洗掉了, 我不想再搞一次, 大概就這個意思啦. 回到/etc/default/jenkins把"-Dmail.smtp.starttls.enable=true"拿掉, 再跑一次/etc/init.d/jenkins start, 天啊! 終於跑起來了, 再回到最原始的email問題, 使用google smtp + SSL就可以寄信了, 繞了一大圈, 終於解決問題!

我想是因為新版Jenkins已經把"mail.smtp.starttls.enable=true"改成預設值, 才會在更新Jenkins後出現重複定義的問題, 而Email問題在新版Jenkins也解掉了, 又可以順利寄出測試報告了!

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 boyauchang 的頭像
    boyauchang

    Yau's Scrambler life

    boyauchang 發表在 痞客邦 留言(0) 人氣()