1. 問題描述
部門內(nèi)部對于Jenkins的使用采取的是Master + Slave Work Node的方式,即作為Master節(jié)點的Jenkins只負責(zé)任務(wù)調(diào)度,具體的操作由對應(yīng)的Slave Work Node去執(zhí)行。
最近團隊成員反饋一個問題:一個Linux系統(tǒng)的Slave Work Node的編譯日志輸出中,中文部分均為亂碼(如下圖),這造成問題排查效率不高。
針對以上問題,我們嘗試了:
- 在Jenkins的Pipeline腳本中設(shè)置
LC_ALL = 'en_US.UTF-8'
。 - 確認作為Master節(jié)點的Jenkins服務(wù)端的啟動參數(shù)中存在
-Dfile.encoding=UTF-8
。 - 確認目標(biāo)機器Slave Work Node的系統(tǒng)環(huán)境變量
echo $LANG
/locale
。 - 確認作為Master節(jié)點的Jenkins服務(wù)端的系統(tǒng)環(huán)境變量
echo $LANG
/locale
。 - 在Jenkins的Script Console中設(shè)置
System.setProperty('hudson.console.ConsoleCharset', 'UTF-8')
。
無一例外,全部失敗了。
2. 解決方案
這里先說解決方案。畢竟能夠找到這里的,肯定是上面提到的常規(guī)方式都嘗試失敗了。
其實事后回顧,此時此刻就只剩下最后一種可能:作為agent的java程序remoting.jar自身的編碼不對勁。
-
確定問題。
-
調(diào)整。
-
驗證配置生效。
重啟agent之后,應(yīng)該如下圖:
修改前后,Slave Work Node上agent命令參數(shù)行對比:
3. 最終效果
4. 總結(jié)
細節(jié)是魔鬼。文章來源:http://www.zghlxwxcb.cn/news/detail-672753.html
神在細節(jié)之中。文章來源地址http://www.zghlxwxcb.cn/news/detail-672753.html
到了這里,關(guān)于【DEVOPS】Jenkins使用問題 - 控制臺輸出亂碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!