CentOS 7.2安装Jenkins自动构建Git项目
1.環(huán)境
本文使用VMWare虛擬機進行實驗。
最終實現(xiàn)目標,在Jenkins服務(wù)器上新建構(gòu)建任務(wù),從Git服務(wù)器上拉取master HEAD(不編譯,僅演示),部署到"目標服務(wù)器",再執(zhí)行一個腳本。
?
Jenkins服務(wù)器
- 2核CPU,4GB內(nèi)存,20GB硬盤,IP:192.168.118.145(要求能上網(wǎng),裝插件)
- CentOS 7.2最小安裝(CentOS-7-x86_64-Minimal-1511.iso)
?
Git遠程庫服務(wù)器
- IP:?192.168.118.148
- 已經(jīng)存在一個git repo: hello-jenkins.git
?
目標服務(wù)器
- IP:?192.168.118.147
2.需求
- Jenkins?2.89
- JRE 8u162
- Git?1.8.3.1
- Supervisor?3.1.4
3.安裝
3.1安裝軟件
yum -y install git supervisor?
3.2安裝JRE
從官網(wǎng)下載Java SE Runtime Environment 8u162 Linux x64
jre-8u162-linux-x64.tar
tar zxvf jre-8u162-linux-x64.tar -C /opt export JAVA_HOME=/opt/jre1.8.0_162 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/toos.jar?
3.3安裝Jenkins
官網(wǎng)下載Jenkins,安裝
rpm -ivh jenkins-2.89.3-1.1.noarch.rpm得到war包 ?/usr/lib/jenkins/jenkins.war?
?
其實到現(xiàn)在已經(jīng)可以運行Jenkins服務(wù)了,但我們先來配置下開機自動啟動(利用supervisor)
?
3.4配置Jenkins開機自啟
為jenkins創(chuàng)建supervisor配置文件
vi /etc/supervisord.d/jenkins.ini?
添加如下內(nèi)容,藍色加粗的是有用的,分號開頭的已經(jīng)被注釋掉了,需要的話自己開、自己配
[program:jenkins] ;command=/bin/cat command=/opt/jre1.8.0_162/bin/java -jar /usr/lib/jenkins/jenkins.war ; the program (relative uses PATH, can take args) ;process_name=%(program_name)s ; process_name expr (default %(program_name)s) ;numprocs=1 ; number of processes copies to start (def 1) ;directory=/tmp ; directory to cwd to before exec (def no cwd) ;umask=022 ; umask for process (default None) ;priority=999 ; the relative start priority (default 999) autostart=true ; start at supervisord start (default: true) autorestart=true ; retstart at unexpected quit (default: true) startsecs=10 ; number of secs prog must stay running (def. 1) ;startretries=3 ; max # of serial start failures (default 3) ;exitcodes=0,2 ; 'expected' exit codes for process (default 0,2) ;stopsignal=QUIT ; signal used to kill process (default TERM) ;stopwaitsecs=10 ; max num secs to wait b4 SIGKILL (default 10) ;user=chrism ; setuid to this UNIX account to run the program ;redirect_stderr=true ; redirect proc stderr to stdout (default false) ;stdout_logfile=/a/path ; stdout log path, NONE for none; default AUTO ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) ;stdout_logfile_backups=10 ; # of stdout logfile backups (default 10) ;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) ;stdout_events_enabled=false ; emit events on stdout writes (default false) ;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO ;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB) ;stderr_logfile_backups=10 ; # of stderr logfile backups (default 10) ;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default 0) ;stderr_events_enabled=false ; emit events on stderr writes (default false) ;environment=JAVA_HOME=/opt/jre1.8.0_162,CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/toos.jar ; process environment additions (def no adds)?
添加supervisor開機自啟,注意現(xiàn)在不要啟動(start),一會兒我們手動啟動
systemctl enable supervisord?
4.運行
java -jar /usr/lib/jenkins/jenkins.war?
初次運行Jenkins會開始安裝、配置,注意控制臺會輸出admin的密碼(類似下面藍色粗體),密碼要記住,新建用戶后這密碼就找不到了...
************************************************************* ************************************************************* *************************************************************Jenkins initial setup is required. An admin user has been created and a password generated. Please use the following password to proceed to installation:d4b41da7b70048c8b2a4eb5786100996This may also be found at: /root/.jenkins/secrets/initialAdminPassword************************************************************* ************************************************************* *************************************************************?
默認Jenkins服務(wù)器端口為8080
瀏覽器訪問?http://192.168.118.145:8080/,把密碼填進去,下一步
?
會讓你選擇安裝插件,其實安裝建議的就行,但這里選擇自己安裝插件
?
注意Git要勾選,
?
另外勾選“Publish Over SSH”,部署的時候會用到
?
然后確定開始下載安裝插件,看網(wǎng)速...完了之后會進入賬戶設(shè)置,
?
設(shè)置完就進入主界面了
到這里就Jenkins安裝好了,系統(tǒng)重啟會自動啟動Jenkins服務(wù)。
?
5.部署demo
?最終實現(xiàn)目標,在Jenkins服務(wù)器上新建一個構(gòu)建任務(wù),這個任務(wù)從Git服務(wù)器上拉取master HEAD(不編譯,僅演示),部署到"目標服務(wù)器",再執(zhí)行其中一個腳本。
?
5.1配置ssh key
這個Key用于訪問git、訪問“目標服務(wù)器”
?
在Jenkins服務(wù)器上,-C后面的注釋隨便寫,交互shell中不用管,一路回車就行
ssh-keygen -t rsa -C "jenkins@admin.com"生成的公鑰文件/root/.ssh/id_rsa.pub、私鑰文件/root/.ssh/id_rsa.pub
?
為了ssh無密碼訪問(使用root用戶),我們要把公鑰注冊到目標上
在Git服務(wù)器上,把公鑰內(nèi)容復(fù)制填進去,保存。
vi /root/.ssh/authorized_keys?
在目標服務(wù)器(見環(huán)境一節(jié)介紹)上,把公鑰內(nèi)容復(fù)制填進去,保存。
vi /root/.ssh/authorized_keys?
5.2注冊Jenkins SSH Server
主界面---系統(tǒng)管理---系統(tǒng)設(shè)置---Publish over SSH(在最下面)
?
Path to key 填私鑰文件路徑(公鑰剛才已經(jīng)傳到目標服務(wù)器上了)
SSH Server,Name起一個名字,hostname填“目標服務(wù)器”IP,root登錄,Remote Directory是部署的目錄(/表示部署到根目錄下),不懂的最右邊有個問號可以點,有幫助。
?
5.3新建一個Job
?
填一個名字,下面選第一項”構(gòu)建一個自由風格的軟件項目“,點確定。
源碼管理一欄,添git路徑(就是一般git clone XXX中的XXX)
?
Credentials點右邊Add,配置秘鑰訪問git
Kind選 SSH Username with private key
Username填root
Private Key選 From the Jenkins master ~/.ssh?(私鑰路徑/root/.ssh/id_rsa,公鑰剛才已經(jīng)傳到git服務(wù)器上了)
Description隨便填,便于自己區(qū)分
?
填完之后回到之前的頁面,選擇使用這個憑證:root(sshKeyToGit)
?
構(gòu)建后操作,選剛才添加的SSH Server
Source files填**,表示所有文件
Remote directory填first-ci,剛才配了部署目錄是/,綜合得到部署路徑?/first-ci
Exec command填的是文件傳輸完成后執(zhí)行的命令,這里執(zhí)行的是git庫中一個腳本
?
保存,進入這個界面,點“立即構(gòu)建”,左下區(qū)域是構(gòu)建情況(圖上是構(gòu)建了4次,藍色表示成功,黃色表示出了點問題)
?
點“#4”,點“Console Output”,可以查看整個構(gòu)建過程的輸出,
?
一般構(gòu)建出錯也是在這里看錯在哪了,比如下面這圖#3
?
?
5.4驗證部署結(jié)果
在目標服務(wù)器上,
?
可以看到部署的文件(也是部署后執(zhí)行的腳本)
?
以及執(zhí)行腳本的結(jié)果(可見登錄后的目錄為用戶home目錄)
?
TODO:
Jenkins用戶管理....
?
轉(zhuǎn)載于:https://www.cnblogs.com/nidey/p/8387597.html
總結(jié)
以上是生活随笔為你收集整理的CentOS 7.2安装Jenkins自动构建Git项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JMeter 保持sessionId
- 下一篇: ubuntu无法获得锁 /var/lib