因為客戶需要在Solaris上進行編譯,因此簡單的方法就是在上面佈置Jenkins Agent
啟動Jenkins Agent有幾種方法,核心的方法就是跑一個agent.jar檔,它會連線回主機,執行Master(主節點)叫他做的事情,所以要是下錯指令,就會像吃到港警的催淚彈一樣,痛哭流涕,因為是MIC劣質品。
本次採用的方法是jnlp方式建立
如果在你看到這篇還不了解Jenkins是用java撰寫的,可以先跳過,我不是跟你說話
有人的jenkins版本是可以用ssh連線建立起來,但是我必須告訴你實情是,ssh只是前面引導執行個腳本,本體還是跑後面的jnlp連線。所以你不用管ssh也還是可以建立節點,但是請詳閱你agent.jar需要的java最低版本,像我曾經試圖在AIX上建立節點,就覺的安裝java的難度高過跑java。
首先你像駭客任務,找到了Oracle,再找太陽(Sun)的遺跡,找到jdk-8u231-solaris-sparcv9.tar.gz
看這壓縮的狀態,這個是白矮星
...先解開一下
gzip -dc jdk-8u231-solaris-sparcv9.tar.gz | tar -xf -
我是把它放去/usr下,不然以後的人會找不到,然後又到處亂裝,順便
JAVA_HOME=/usr/jdk1.8.0_231
export JAVA_HOME
下一步我們要在Master建立節點,該給孩子報戶口,畢竟農村要想富,多生孩子能種樹。
選擇上我偏好讓agent自行找到Master,因為邏輯上Master是行走江湖上要挨刀的,所以當然防火牆不會鎖起來
叫Master去找slave,找到了不免一頓毒打...
然後在細項就藏著魔鬼,就是神奇的召喚咒語
大家看到了,咒語範例就是
java -jar agent.jar -jnlpUrl https://jenkins.icekimo.idv.tw/computer/TESTPARM/slave-agent.jnlp -secret 32ca7ef5608cbb759a5f91721193cdb5780654fab88f0a6a868ee814266a47fb -workDir ""
恩,這樣公然貼出來好嗎?
當然沒問題,有人要照抄來當我slave,我為何要阻止讓我自己壯大?
咒語裡面有三要素,jnlpUrl、secret、workDir
只是填上自己適合的參數,不用向我報到沒關係啦,我也不會介意的
再來就是重要的事情了,因為這樣測試後,Java指令結束就是agent斷線之時,但是
但是理論上應該要讓這台「高級伺服器」開機就會自動來報到,所以需要撰寫一個開機執行機制
幸好solaris可以跑init.d,不然趕時間又要寫標準service,我是會翻臉的喔
那麼撰寫要怎麼寫?這個只能github,不能言傳
在適當的處理好/etc/init.d/jenkins.agent 這檔案後
我們再來處理符號連結
cd /etc/init.d/ && ln jenkins.agent /etc/rc2.d/S99jenkins.agent
cd /etc/init.d/ && ln jenkins.agent /etc/rc3.d/S99jenkins.agent
cd /etc/init.d/ && ln jenkins.agent /etc/rc2.d/K99jenkins.agent
cd /etc/init.d/ && ln jenkins.agent /etc/rc3.d/K99jenkins.agent
這樣稿費有多個字,不會讓大家覺的一下就結束
然後啟動看看
/etc/init.d/jenkins.agent start
沒問題就關閉看看
/etc/init.d/jenkins.agent stop
一切就跟我想的一樣完美,重新開機也會自動連回master
以上就是如何在Solaris 10上安裝Jenkins Agent