2.0最大的三个卖点分别是Pipeline as Code,全新的开箱体验和1.x兼容性
新版強調Pipelines as Code的概念,首度增加「流程(Pipeline)」功能,讓整合測試流程的組態設定可用程式碼來定義,並且透過程式碼簽入與版本控管的功能,可以快速建立簡單的整合測試流程。至於較複雜的流程,亦可透過Groove程式語言來控制。
Jenkins 2.0的使用介面也有所調整,同時在安裝過程中首度提供官方建議的擴充元件(Plugins)組合包,可一次安裝好官方建議的環境,對於入門使用者將是方便的設計,可大幅簡化安裝過程,快速建立Jenkins系統。此外,使用者也可以依喜好自定擴充元件的組合。
Jenkins強調其不只是軟體開發階段的持續整合測試,更要涵蓋軟體持續發布(Continuous Delivery)等更完整的軟體開發部署生命周期。
Pipeline
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
Jenkins 新版 UI 控制台
https://jenkins.io/projects/blueocean/ https://jenkins.io//blog/2016/05/26/introducing-blue-ocean/ https://github.com/jenkinsci/blueocean-plugin
Jenkins管道插件并不是什么新东西,但是2.0版本将提供一种新的核心特性(名字就叫Pipeline),该特性允许用户在DSL(Domain Specific Language)的帮助下定义他们的构建流程。该DSL是一种Groovy代码,允许把“构建定义(build definitioin)”当作普通代码。现在,构建定义不是放在产品里面,而是可以被提交到代码仓库里面。
基本概念: 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.war3、配置环境变量
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/jenkins4、配置 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"/>支持 /、\ 解析为路径分隔符
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 fi5、第一次启动初始化
5.1 启动
. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/startup.sh5.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 安装默认推荐的插件
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 serverClick Manage Jenkins in the sidebar then Manage PluginsChoose the Available tab and use the search bar to find BlueOcean betaClick the checkbox in the Install columnClick either Install without restart or Download now and install after restartWhen installation is complete click the Use Blue Ocean button in the classic UI8、管理命令 启动
. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/startup.sh停止
. /etc/sysconfig/jenkins && $TOMCAT_HOME/bin/shutdown.sh-eof-
