Jenkins 2.0

Jenkins 2.0

2.0最大的三个卖点分别是Pipeline as Code,全新的开箱体验和1.x兼容性

新版強調Pipelines as Code的概念,首度增加「流程(Pipeline)」功能,讓整合測試流程的組態設定可用程式碼來定義,並且透過程式碼簽入與版本控管的功能,可以快速建立簡單的整合測試流程。至於較複雜的流程,亦可透過Groove程式語言來控制。

Jenkins 2.0的使用介面也有所調整,同時在安裝過程中首度提供官方建議的擴充元件(Plugins)組合包,可一次安裝好官方建議的環境,對於入門使用者將是方便的設計,可大幅簡化安裝過程,快速建立Jenkins系統。此外,使用者也可以依喜好自定擴充元件的組合。

Jenkins強調其不只是軟體開發階段的持續整合測試,更要涵蓋軟體持續發布(Continuous Delivery)等更完整的軟體開發部署生命周期。

Pipeline
pipeline

Stage View
stage-view

https://jenkins.io/2.0/
http://www.infoq.com/cn/news/2016/04/jenkins-2-beta-pipeline-system
http://www.ithome.com.tw/news/104273

Blue Ocean

Jenkins 新版 UI 控制台

blueocean-activity
blueocean-pipeline-good
blueocean-pipeline-bad

https://jenkins.io/projects/blueocean/
https://jenkins.io//blog/2016/05/26/introducing-blue-ocean/
https://github.com/jenkinsci/blueocean-plugin

Pipeline

Jenkins管道插件并不是什么新东西,但是2.0版本将提供一种新的核心特性(名字就叫Pipeline),该特性允许用户在DSL(Domain Specific Language)的帮助下定义他们的构建流程。该DSL是一种Groovy代码,允许把“构建定义(build definitioin)”当作普通代码。现在,构建定义不是放在产品里面,而是可以被提交到代码仓库里面。

pipeline-flow

基本概念:
Stage: 一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作。注意,Stage是一个逻辑分组的概念,可以跨多个Node。
Node: 一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境。
Step: Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供。

具体构成:
Jenkinsfile: Pipeline的定义文件,由Stage,Node,Step组成,一般存放于代码库根目录下。
Stage View: Pipeline的视觉展现

2.0默认支持三种类型的Pipeline,普通Pipeline,Multibranch Pipeline和Organization Folders,后两种其实是批量创建一组普通Pipeline的快捷方式,分别对应于多分支的应用和多应用的大型组织。注意,要获取Organization Folders的支持需要额外安装Plugin。

角色:
Master:主服务器,是控制节点、调度器
Agent:从服务器,降低主服务器的负载
Executor:执行具体的任务。可以在 Master 或 Slave 上执行任务

自带 Snippet Generator 生成器,http://地址:8080/jenkins/pipeline-syntax/
左侧菜单可选使用说明、在线文档等链接

参考:
http://emacoo.cn/devops/jenkins-2-0-from-ci-to-cd/
http://emacoo.cn/devops/jenkins-pipeline-tips/
https://www.cloudbees.com/blog/top-10-best-practices-jenkins-pipeline-plugin 最佳实践
https://go.cloudbees.com/docs/support-kb-articles/CloudBees-Jenkins-Enterprise/ CloudBees 知识库

安装

参考:
https://jenkins.io/doc/book/getting-started/installing/
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins
http://pkg.jenkins-ci.org/redhat-stable/
https://wiki.jenkins-ci.org/display/JENKINS/Containers
http://stackoverflow.com/question/37370927/jenkins-deploy-war-file-to-tomcat-8
http://www.whiteboardcoder.com/2014/01/installing-jenkins-on-tomcat-8.html
https://blog.microideation.com/2016/05/19/java-spring-auto-deployment-to-tomcat-8-using-jenkins-2-0-in-aws-cloud/
https://wiki.jenkins-ci.org/display/JENKINS/Offline+Jenkins+Installation

1、系统环境

系统要求
* Java 8
* 1GB+ free memory
* 50GB+ free disk space

Classic UI 浏览器要求:https://wiki.jenkins-ci.org/display/JENKINS/Browser+Compatibility+Matrix
Blue Ocean 浏览器要求:IE 要求 11+

软件版本、目录:
* JDK /DATA/app/jdk1.8.0_112
* Tomcat /DATA/app/apache-tomcat-8.5.8
* Jenkins 版本 2.19.4
* Jenkins 数据目录 /DATA/app/jenkins/data

2、安装软件

wget -O - http://.../jdk-8u112-linux-x64.tar.gz | tar -C /DATA/app -zxvf -
wget -O - http://.../apache-tomcat-8.5.8.tar.gz | tar -C /DATA/app -zxvf -
wget -O /DATA/app/apache-tomcat-8.5.8/webapps/jenkins.war http://.../jenkins-2.19.4.war

3、配置环境变量

mkdir -p /DATA/app/jenkins/data
cat > /etc/sysconfig/jenkins <<'EOF'
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
JAVA_HOME=/DATA/app/jdk1.8.0_112
TOMCAT_HOME=/DATA/app/apache-tomcat-8.5.8
JENKINS_HOME=/DATA/app/jenkins/data
PATH=$TOMCAT_HOME/bin:$JAVA_HOME/bin:$PATH
CATALINA_OPTS="-Djava.awt.headless=true"
LANG=en_US.utf8
export JAVA_HOME TOMCAT_HOME JENKINS_HOME PATH CATALINA_OPTS LANG
EOF
. /etc/sysconfig/jenkins

4、配置 Tomcat

修改字符集

vi $TOMCAT_HOME/conf/server.xml
    <Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

配置账号(如果不选用 Delegate to servlet container 的认证机制,就不需要这步操作)

vi $TOMCAT_HOME/conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="jenkins-admin" password="secret" roles="admin-gui,admin-script,manager-gui,manager-script"/>

支持 %2F、%5C 解析为路径分隔符

if grep -q '^org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH' $TOMCAT_HOME/conf/catalina.properties; then
  sed -i '/^org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH/c org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true' $TOMCAT_HOME/conf/catalina.properties
else
  echo "org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true" >> $TOMCAT_HOME/conf/catalina.properties
fi

5、第一次启动初始化

5.1
启动

. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/startup.sh

5.2
访问 http://:8080/jenkins/ 网址,提示输入 admin 用户密码,并提示该密码从下面文件获取

cat /DATA/app/jenkins/data/secrets/initialAdminPassword

输入该密码,选继续

(注意,http://地址:8080/jenkins 报 Null Pointer 错误,地址末尾必须加个斜杠:http://地址:8080/jenkins/)

5.3
提示 Offline,配置 Proxy

5.4
安装默认推荐的插件
install-plugins

5.5
不创建新的账号

6、修改认证机制
访问 http://:8080/jenkins/configureSecurity/
选择 Unix user/group database
选 Logged-in users can do anything
重新登录,登录账号同操作系统账号

7、Blue Ocean

Blue Ocean is available today as a plugin from the update center for Jenkins servers running Jenkins 2.7.x and above.
To start using Blue Ocean:

  • Login to your Jenkins server
  • Click Manage Jenkins in the sidebar then Manage Plugins
  • Choose the Available tab and use the search bar to find BlueOcean beta
  • Click the checkbox in the Install column
  • Click either Install without restart or Download now and install after restart
  • When installation is complete click the Use Blue Ocean button in the classic UI

8、管理命令
启动

. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/startup.sh

停止

. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/shutdown.sh

-eof-

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值