搭建jenkins實現自動化部署


一、安裝jenkins

1、添加yum repos,然后安裝

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

 注:如果上邊的執行成功就不用再執行這兩行了

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/RedHat/jenkins.repo
sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

 注:如果網絡不好需要重試幾次

sudo yum install jenkins

2、如果未安裝java還需安裝java

sudo yum install java

3、啟動和停止

sudo service jenkins start
sudo service jenkins stop
sudo service jenkins restart

sudo chkconfig jenkins on

如果啟動失敗,可以運行如下命令查看錯誤信息

systemctl status jenkins.service

如上錯誤是java配置錯誤,需要修改jenkins配置文件

vi /etc/rc.d/init.d/jenkins

類似如下修改:

candidates="
************
************
/usr/local/jdk1.8/bin/java
"

4、jenkins的默認設置

  Jenkins會隨系統啟動而啟動。詳情參照/etc/init.d/jenkins
  Jenkins會創建一個用戶叫做jenkins, 如果你修改了user,則要修修改所屬者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
  如果遇到問題,查看日志/var/log/jenkins/jenkins.log
  配置文件/etc/sysconfig/jenkins
  默認啟用8080

 5、打開和關閉防火牆

  開啟非80端口需要打開防火牆,參考:http://www.cnblogs.com/rslai/p/7954080.html

6、關於centos上的java
  Jenkins不支持在centos的默認的jdk上工作。如果如下所示,則需要remove:

  java -version
  java version "1.5.0"
  gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)
  為了正確使用Jenkins:

  yum remove java
  然后可以安裝openjdk

  yum install java-1.7.0-openjdk
  正確如下:

  java -version
  java version "1.7.0_79"
  OpenJDK Runtime Environment (rhel-2.5.5.1.el6_6-x86_64 u79-b14)
  OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

7、配置java路徑
直接啟動:

sudo service jenkins start
但是發現啟動失敗,於是需要配置java位置:

vi /etc/init.d/jenkins
在啟動加入本機的java:

[root@iZ94xvn71eeZ ~]# vim /etc/init.d/jenkins


# Set up environment accordingly to the configuration settings
[ -n "$JENKINS_HOME" ] || { echo "JENKINS_HOME not configured in $JENKINS_CONFIG";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
[ -d "$JENKINS_HOME" ] || { echo "JENKINS_HOME directory does not exist: $JENKINS_HOME";
if [ "$1" = "stop" ]; then exit 0;
else exit 1; fi; }

# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/bin/java
/usr/java/jdk1.7.0_80/bin/java

 8、配置端口

  修改

vi /etc/sysconfig/jenkins

  內容改為需要的端口

JENKINS_PORT="8080"

9、yum安裝Jenkins默認路徑為

  /var/lib/jenkins

二、進入jenkins

1、打開

http://192.168.3.231:8080

2、查看密碼,將內容填寫到密碼處點擊繼續

cat /var/lib/jenkins/secrets/initialAdminPassword

3、選擇默認插件即可  

4、設置管理員

 三、安裝和Git,GitLab插件

1、安裝git客戶端

  Linux安裝配置git參見,只需要安裝客戶端不需要產生sshkey,如果你又想再jenkins上用git又想直接再linux上用再生成key

  http://www.cnblogs.com/rslai/p/8175864.html

2、安裝git插件

3、在這里將安裝和Git,GitLab插件,注意使用ctrl+f查找

4、配置gitLab連接

5、找到Gitlab配置,如下圖

  name:可以隨便寫一個

  host URL:host地址注意只填寫host不要庫地址寫http地址即可

  credentials:選擇一個證書

   新建一個證書,選擇add->Jenkins添加一個證書

  kind:選擇GitLab API token

  API token:輸入token,如何找到token參見下面 

  查找token,token需要在gitLab中查找,不同版本的gitLab方式不同

    a)在Access Tokens中就顯示了api token直接copy即可

    b)在如下頁面填入名字和過期時間后自動生成token,生成后一定要使用記事本記下來,之后無法查看該token

   回到Jenkins設置token后Test Connection,如果測試成功

四、新建item

1、生成ssh key 

由於jenkins執行腳本的使用使用的是jenkins這個賬號,所以公鑰私鑰需要放在此用戶的目錄里。

a)由於此賬號是一個不允許登錄且修改了home目錄的賬號,所以需要先執行 vi /etc/passwd 查看一下jenkins賬號的home目錄,在里邊找到jenkins這個賬號其中紅框部分為他的home目錄

b)生成root(不是root其它賬號也可)賬號的sshkey

ssh-keygen -t rsa -C "root@192.168.3.231" -b 4096 # 生成公鑰私鑰,注意雙引號內是個助記符根據需要修改
cd /root/.ssh # 進入ssh目錄
git ls-remote -h ssh://git@118.188.3.87:1022/html/tamH5.git HEAD # 連一下git服務器,生成known_hosts文件
ll # 查看文件

如果沒有 known_hosts 文件之后Jenkins發布時會有如下錯誤 “Host key verification failed.”

c)進入jenkins目錄將剛才創建的sshkey復制過來並將所有者指到jenkins賬號

cd /var/lib/jenkins # 進入jenkins的home目錄
mkdir .ssh # 創建ssh目錄存放sshkey文件,如果存在會報錯
cd .ssh
cp /root/.ssh/* . # 將root賬號下的sshkey文件復制過來,此時如果執行ll看一下這兩個文件所有這應該是root
chgrp jenkins * # 將key文件的組改為jenkins
chown jenkins * # 將key文件的所有者改為jenkins

d)此時pwd再ll應該看到如下內容  

2、打開 id_rsa.pub 將其中內容復制到記事本中,然后再copy到git服務器上

3、訪問gitlab將剛才生成的公鑰添加到ssh keys中

 

4、創建證書

  a)Jenkins -> Credentials

 

  b)global -> Add credentials新建一個證書

  c)填寫證書信息

    kind:選擇 SSH Username with private key

    Username:隨便輸入,之后在創建item是記得住選擇那個即可

    Priveate key:選擇“Enter directly”后輸入私鑰,記住一定是私鑰 (按照上步驟在linux上生成密鑰后,會是一對其中帶pub后綴的是公鑰。id_rsa私鑰、id_rsa.pub公鑰)。在linux執行cat id_rsa將所有內容copy填入key中

    Passphrase:不填,如果填了每次都需要輸入密碼

    填好后點擊“ok”保存

2、新建item

  a)新建Item

  b)輸入任務名稱,選擇“構建一個自由風格軟件項目”后單擊“確定”

  

   c)在GitLab connection處選擇剛才創建的連接(輸入git host時創建的連接)

    選擇git並Credentials處選擇剛才輸入私鑰的證書

    Repository URL輸入git項目地址(注意輸入時需添加ssh注意如果修改端口應填寫ssh://git@host:port/xxxxxx/xxxxx.git)

    之后單擊“保存”即可。

 

3、構建job 

  a)進入demo job

 

  b)點擊“立即構建”

    由於item只配置了git所以只會clone git,clone后在如下目錄中,以job名稱為目錄保存

     /var/lib/jenkins/workspace

 

 

 

構建后目錄

./var/lib/jenkins/workspace/

根據job名字放到相應目錄

 

 

 

 

 

 

 

 

 

 

 

 

 

安裝插件 

 

 

 

 

 

 

 

 

 

參考文檔:

  http://blog.csdn.net/achuo/article/details/51086599

  http://blog.csdn.net/wangfei0904306/article/details/56011877

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM