1. 程式人生 > >centos6.5下,Jenkins自動部署nodeJS程式

centos6.5下,Jenkins自動部署nodeJS程式

一、安裝Jenkins 在centos上的安裝

注意:Jenkins是java程式,需要依賴JDK。

在centos下,預設的JDK版本(GCJ)不支援Jenkins。這個時候,需要解除安裝原來的JDK,安裝Sun-compatible 版本。

以下是在官網找到的相關資料:

If you get output similar to the following, it means you’re using the default (GCJ) version of Java, which will not work with Jenkins:

java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)

To correct this, you may need to remove the GCJ version of Java and install a Sun-compatible version.
If you received the above output, uninstall the default java:

  yum remove java 

Then after you’ve uninstalled Java (or if you didn’t have Java installed at all to begin with). You need to install a Sun-compatible version of Java. The easiest approach is using OpenJDK, which is available through the EPEL repository (alternatively you may install an official RPM directly from Oracle). To install OpenJDK run the following:

 yum install java-1.6.0-openjdk

Depending on your version of CentOS, the package name for OpenJDK may differ. Use yum search openjdk to check for the name of the package. If OpenJDK is not found at all through yum, you probably need to install the EPEL yum repository. After installation, you should be able to get the following output for java -version:

java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-i386)
OpenJDK Client VM (build 20.0-b11, mixed mode)
OpenJDK Client VM (build 20.0-b11, mixed mode)

這樣,確保jdk安裝成功後,接下來,安裝Jenkins:

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo  

rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

yum install jenkins

一條一條命令執行完成後,jenkins就安裝完成了,非常簡單吧。

然後需要配置下jenkins的埠,避免衝突。

vi /etc/sysconfig/jenkins

進入該檔案,這個是jenkins的系統配置檔案,
找到2處修改埠號:

JENKINS_PORT="8080"
JENKINS_AJP_PORT="8009"

預設是這樣的,我們可以隨意修改成自己需要的埠號,避免衝突(tomcat預設埠也是這樣的)
這裡作者修改成了:

JENKINS_PORT="8081"
JENKINS_AJP_PORT="8889"

接下來我們就可以嘗試啟動jenkins服務了。

service jenkins start

如果提示:

Starting Jenkins   [確定]

則表示jenkins服務成功啟動,你可以通過http://ip:8081 的方式直接訪問jenkins了。

二、安裝node.js

安裝命令:

CentOS的軟體源未包含有最新的nodejs, 需要手動編譯安裝。
首先安裝依賴的庫與工具

yum install libtool automake autoconf gcc-c++ openssl-devel

Procedure(步驟)

1 進入/usr/local/src資料夾
原因:其實可以自己選擇下載目錄的,但是我們要歸類。/usr/local這個資料夾就是代表你手動安裝的程式
命令:

cd /usr/local/src

2 從網路上獲取nodejs包

原因:巧婦難為無米之炊,要玩nodejs肯定要有nodejs包了

命令:

wget http://nodejs.org/dist/node-latest.tar.gz

言外話:13M左右,還是比較少的

3 在/usr/local/src資料夾中解壓node-latest.tar.gz

命令:

tar zxvf node-latest.tar.gz

個人情況:解壓後在/usr/local/src中出現一個資料夾是 node-v0.10.28(不一樣的話,應該是版本不一樣,沒事)

4 進入到解壓後的資料夾node-v0.10.28中
命令:

cd node-v0.10.28

5 編譯安裝三部曲
命令:

./configure
make && make install

題外話:好像要安裝很久呀,最少10分鐘吧,還有就是我對這個./configure命令不是很熟,應該是可以配置一些引數的
6 檢查安裝成功

 node –v

最後, 配置NODE_HOME,進入profile編輯環境變數

1、先找到node安裝在哪裡

whereis node

找到node命令的路徑。

/usr/local/bin/node

2、檢視path是否有node的安裝路徑

Echo $PATH

如果在path中,含有/usr/local/bin這個路徑,就不用執行下面的操作。

3、開啟配置檔案,並增加path

vi /etc/profile

4、設定nodejs環境變數,在export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL 一行的上面新增如下內容:(i插入內容)

#set for nodejs
export PATH = /usr/local/bin
:wq儲存並退出

5、修改完以後執行 :

source /etc/profile

使得配置檔案生效。

6、驗證是否安裝配置成功

node -v

輸出 v0.10.24 表示配置成功

題外話:
在Jenkins中執行shell指令碼,是指定了執行路徑的,所以,要用全路徑才可以。

/usr/local/bin/node –v

輸出node的版本資訊

三、CentOS 6.5安裝TortoiseSVN svn 客戶端

TortoiseSVN:

TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端, 可以超越時間的管理檔案和目錄。檔案儲存在中央版本庫,除了能記住檔案和目錄的每次修改以外,版本庫非常像普通的檔案伺服器。你可以將檔案恢復到過去的版 本,並且可以通過檢查歷史知道資料做了哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種“時間機器”。

安裝命令:

yum install -y subversion

SVN客戶端命令:
檢視svn命令幫助:

svn help

檢視版本號

Svn –version 

檢視子命令幫助:

svn checkout --help

這裡,通過 Svn –version 命令查看了svn的版本號,如果能查得出來,表示安裝成功。

主要用到的svn命令有:

svn checkout svn://192.168.70.183/openapi

svn update 

四、配置job

這裡,先交代一下專案的背景和思路。專案分前臺和中臺,而中臺的後面,還有個服務去支撐。所以,一共要啟動3個node程序。如果要重新部署整個系統,需要把這3個node程序同時結束。這裡,可以使用shell指令碼去結束全部node程序,然後觸發構建新的3個node程序。

一個job的配置,主要包括下面三個方面:專案名稱、描述、原始碼管理、構建觸發器、構建環境。

1、新建一個job的配置頁

專案名稱:kill_node

描述: 結束全部node程序,觸發新的構建。

原始碼管理:不用設定

構建觸發器 :
這裡,選擇”Build periodically“,即定期構建。每週工作日的9點到18點,每隔半個鍾執行一次。

H/30 9,10,11,14,15,16,17,18 * * 1-5 

構建環境:

pwd

ps -aux | grep /usr/local/bin/node | grep -v root | awk '{print $2}' | xargs kill -9  

sleep 3  /*等待3秒鐘*/

echo “重啟開放平臺”

TIP:在windows環境下,結束程序的語句是:

rem 結束nodejs程序
taskkill /f /t /im node.exe
rem 等待5秒
ping -n 6 127.0.0.1>nul

2、啟動node程序

專案名稱:runQianTai

描述: 部署前臺程式

原始碼管理:Subversion
Repository URL:程式碼的svn更新地址
Credentials:svn的賬號和密碼
其他選項預設。

構建觸發器 :
這裡,選擇”Build after other projects are built“,即在其他專案構建之後構建。
Projects to watch:上游的專案名稱
然後選擇”Trigger even if the build fails“(無論上游的專案是否構建成功,都出發現在這個”runQianTai“專案。)

構建環境:
選擇shell指令碼

  /usr/local/bin/node trunk/bin/www

注意:這個sell指令碼的工作目錄是固定的。想要檢視具體是哪個目錄下,可以用pwd命令進行檢視。

3、其他2個job,與runQianTai類似,這裡不再詳述。

4、啟動job
在Jenkins主頁面,啟動kill_node,自動結束當前系統執行的所有nodejs程序,然後,觸發器觸發構建接下來的前臺、中臺和服務程序。

然後,開啟前臺和中臺的網址,檢視程式是否部署完成。

如果沒問題,Jenkins部署nodeJS程式的設定就結束了。