[CI]jenkins安裝&插件管理&java-helloworld之旅

持續集成概述

  • 沒有持續集成時的狀況

持續集成最佳實戰
html

  • 維護一個單一的代碼庫
  • 使構建自動化
  • 執行測試是構建的一部分
  • 集成日誌及歷史記錄
  • 使用統一的依賴包管理庫
  • 天天至少集成一次

jenkins實現持續集成、自動測試、持續部署的超級引擎,支持自定義工具集、多種交付通道。java

jenkins rpm安裝

yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
下載地址
    https://pkg.jenkins.io/redhat-stable/

RPM安裝
    rpm –ivh jenkins-2.32.3-1.1.noarch.rpm
    service jenkins start
    ckconfig Jenkins on
/var/lib/jenkins 主目錄
/etc/init.d/jenkins 啓動文件
/var/cache/Jenkins 程序文件
/var/log/Jenkins 日誌文件


修改/etc/init.d/Jenkins
將用戶修改成root,能夠調用root工具
106行,113行
修改啓動端口85行,$JENKINS_PORT
systemctl daemon-reload
service jenkins restart

工做目錄設置
Maven項目配置
設置系統JDK ANT MAVEN
Jenkins Location
郵件通知

Configure Global Security

調試模式啓動:(這裏要說的)node

java -jar jenkins.jar

- 指定參數啓動
/usr/local/jdk_8u25/bin/java -Dhudson.model.DownloadService.noSignatureCheck=true -Djava.awt.headless=true -DJENKINS_HOME=/log/data/jenkins -jar /log/jenkins_war/jenkins.war --logfile=/var/log/jenkins/jenkins.log --httpPort=8080 --httpListenAddress=192.168.10.1 --ajp13Port=-1 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20

工做目錄:git

/root/.jenkins/workspace/

如構建java-helloword項目github

/root/.jenkins/workspace/java-helloword/
  • 全部stage裏執行命令都是基於這個目錄
  • 每次構建會將這個項目目錄git pull拉代碼覆蓋到最新代碼.
  • jenkins執行的全部命令都是基於這個目錄進行的.

安裝jenkins插件

默認的插件

web

經常使用的插件
docker

其次手動安裝pipeline插件
json

更換插件鏡像

所有鏡像
http://mirrors.jenkins-ci.org/status.html
更換鏡像
http://updates.jenkins-ci.org/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/
http://mirror.esuni.jp/jenkins/updates/update-center.json
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.jsonless

更新: 若是安裝不上插件(我發現最新的war lts包) 能夠先java -jar jenkins.war 而後停下

改爲
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json工具

插件目錄須要備份

解壓備份plugin.tar.gz
  mv plugins /var/lib/jenkins/
  chown -R jenkins.jenkins plugins/
  service jenkins restart

最簡單的java-helloworld自動構建之旅-手動mvn打包

mvn安裝和阿里雲源配置參考: https://github.com/lannyMa/java-helloword

cd /usr/local/src/
git clone https://github.com/lannyMa/java-helloword.git
cd java-helloworld
mvn clean
mvn package
cd target
java -jar testweb-v1.0.jar

最簡單的java-helloworld自動構建之旅-配置jenkins自動編譯打包

mvn安裝和阿里雲源配置參考: https://github.com/lannyMa/java-helloword


安裝好jenkins後,直接開始新建項目:(默認你已安裝pipline插件)

新建一個pipeline項目

配置pipeline

stage 'prepare'
node{sh "mvn -v" }

node{
    git "https://github.com/lannyMa/java-helloword.git"
    state: 'clean'
    sh 'mvn clean'
    stage 'package'
    sh 'mvn package'
    stage 'test'
    sh 'java -jar target/testweb-v1.0.jar'
}

構建

構建完畢!!!

如下是之前整理的一些jenkins目錄細節,我的以爲不必細究了.

咱們主要關注這些

  • 安裝目錄
  • 數據目錄
  • 日誌目錄
  • jobs目錄
  • 插件目錄
  • 數據目錄 /var/jenkins_home

安裝jenkins(物理機jar包方式)

選擇lts版.

發現lts版的http://updates.jenkins-ci.org/update-center.json這個插件源能夠更新插件,每週更新版的那個卻無法更新,很蛋疼.

docker啓動jenkins

參考: https://github.com/jenkinsci/docker/blob/master/README.md

But if you want to attach build slave servers through JNLP (Java Web Start): make sure you map the port: -p 50000:50000 - which will be used when you connect a slave agent.

8080是webui
50000是jnlp協議slave來通信的.

docker run -d -u root \
    -p 8080:8080 \
    -v /etc/localtime:/etc/localtime:ro \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v $(which docker):/bin/docker \
    -v /var/jenkins_home:/var/jenkins_home \
    --name=jenkins \
    jenkins

建立1個job至關於建立1個類,每次構建至關於一次類的實例化.

- 建立jobs

- 當即構建

- 查看jenkins目錄

- jenkin啓動後目錄文件結構:
    通常 /var/jenkins_home 或者/home/jenkins 或者 /root/.jenkins
- 主要有jobs(存放jobs的配置以及每次構建結果)  plugin workspace文件夾
- 進入jobs
- 查看jobs的配置文件
- 查看plugin目錄
- 每一個插件1個文件1個目錄

製做最簡單的用於jenkins測試的基於mvn的war包:
http://www.cnblogs.com/iiiiher/p/7943097.html
https://github.com/lannyMa/trucks/tree/master

相關文章
相關標籤/搜索