iT邦幫忙

DAY 3
0

探索 Jenkins-CI 從認識到應用系列 第 3

3. 查水錶 - Jenkins 相關環境設定檢驗

  • 分享至 

  • xImage
  •  

查水錶 - Jenkins 相關環境設定檢驗

平常要確保服務的穩定,除了要拿出我們的愛心,愛~護他,關~懷他,常常請他飲茶以外,最直接的就是要知道他的罩門在那,直搗黃龍。這篇,先來列出過往經驗中,我常碰問題的清單,接著逐條審查。

問題情境

一 、Git 無法自動安裝

Jenkins 截至目前最新版,預設安裝外掛尚未加入 Git ,當然我們可以透過安裝外掛增加 Git 服務,但安裝 Git 外掛後,並不像 Ant/Maven 這般貼心,還有 Apache 自動下載安裝的選項;我們要自己先裝好 Git 。

二、校時

自動化作業,所謂的自動也就是定時作業,當Jenkins正式上工時,要非常注意校時工作,如果主機校時不正確,校時基準不同,排程作業可能會出包,SCM可能不會吐原始碼給你,等問題...但其實這應該是OS安裝就要完成的工作。

三、$#%@# OutOfMemory (OOM)

如果 Java 君也有12恨,其中兩恨一個是NPE(NullPointerException),另一個肯定就是OOM。 Jenkins 是以Java編寫而成,而只要運行在JVM之上的服務,便有可能碰到OOM的問題,這兒我們不談各種OOM發生的原因,我們要做的只是盡可能讓他不要出來見客。

四、建立作業命名限制

每一個作業建立,都會在Jenkins上建立一個與名稱相同的目錄,不要使用中文為作業命名,後續絕對會給你帶來麻煩,千萬不要。太過隨意的作業名稱,最後發現好像大家單字造詣差不多,撞來撞去的。在起步點,我們就要建立規則,至少不要出現太過容易衝突的作業名稱。要感受作業項目一堆,我們可以去Apache 運行中的Jenkins 服務感受看看 https://builds.apache.org/


(Apache builds 是很好的 Jenkins 參觀工廠 https://builds.apache.org/)

OK! 這些是目前想到,曾經歷過的麻煩,預防勝於治療,現在就開始動刀,逐一鏟除。

開始鏟除

yum -y install git ntp

☑ Git 安裝完成

是的,Git 裝好了;不過我們今天還用不到它。接著要進行校時調整設定。

ntpdate time.stdtime.gov.tw
echo '15 0 * * * root /usr/sbin/ntpdate time.stdtime.gov.tw && /sbin/hwclock -w' >> /etc/crontab

以上兩行,分別為立即校時 ,以及系統排程每日 AM 00:15 進行校時

☑校時設定完成

下一刀,OOM。這個Java的小感冒,聽了大多人就知道去加Xmx,PermSize就對了。如果之後你的Jenkins主機實體記憶體有2G以上,並可專屬Jenkins服務使用,我會建議照以下設定調整。相信短時間內OOM的問題不會纏上,若只是測試機,本項目可呼略。

echo 'JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:PermSize=256M"' >> /etc/sysconfig/jenkins
service jenkins restart

查驗看看重新啟動後的服務有沒有成功

ps aux | grep jenkins

當然設定值不能超過實體容量,不然會無法啟動

☑***king OutOfMemory 預防完成

最後是作業的命名,與之後進階的slave設定有關系,所以最少會希望有『分類』項目,而分類之後為了控制作業顯示的次序,我會再加一組『編號』,而最後才是作業名稱,這個設定,我們要進入Jenkins系統中完成,前一篇安裝好的 Jenkins 應該會在 http://<ip address>:8080/

在管理Jenkins項目中找到設定系統


設定系統中勾選『專案命名限制』,然後自行定義名稱樣子,如果還沒有個想法,建議先就照我常用的

名稱樣式:[a-zA-Z0-9]+_[0-9]+_[a-zA-Z0-9 -\.]*
Description:格式必需為 "分類_編號_作業名稱" 且不可以中文命名或含特殊符號


不符合樣式的作業名稱,便無法建立。

☑命名管理完成

OK! 收工。這篇是長久以來使用Jenkins的準備心得分享,除了 Git 只是為了方便後續文章進行外,其它幾項都若發生在正式的服務上,都會帶來一定層度的傷害損失;都是種痛的體會(泣)。

明天,要來開始操課了,我們會讓 Jenkins 去 GitHub 取回專案原始碼,然後好好的操操 Jenkins !

下一篇:神功初現 - 在 Jenkins 的第一個作業就不簡單!

Reference

時間伺服器: NTP 伺服器, 鳥哥的 Linux 私房菜 - http://linux.vbird.org/linux_server/0440ntp.php
一輩子受用的 Regular Expressions, 朝貴老師 - http://user.frdm.info/ckhung/b/gnu/regexp.php
Jenkins permgen space 問題 - http://demi-panda.com/2012/11/19/jenkins-PermGen-Space/


上一篇
2. 好的開始 - 無痛(腦)安裝 Jenkins-CI
下一篇
4. 神功初現 - 在 Jenkins 的第一個作業就不簡單!
系列文
探索 Jenkins-CI 從認識到應用16
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言