如何搭建弹性高可用的持续php集成环境搭建

&如何搭建基于Mesos的弹性高可用的持续集成环境
秒后自动跳转到登录页
快捷登录:
举报类型:
不规范:上传重复资源
不规范:标题与实际内容不符
不规范:资源无法下载或使用
其他不规范行为
违规:资源涉及侵权
违规:含有危害国家安全等内容
违规:含有反动/色情等内容
违规:广告内容
详细原因:
任何违反下载中心规定的资源,欢迎Down友监督举报,第一举报人可获5-10下载豆奖励。
视频课程推荐
如何搭建基于Mesos的弹性高可用的持续集成环境
上传时间:
技术分类:
资源评价:
(5位用户参与评价)
已被下载&81&次
持续集成(CI)是一种软件开发实践,使用得当,它会极大的提高软件开发效率并保障软件开发质量;Jenkins是一个开源项目,它提供了一种易于使用的持续集成系统;Mesos是Apache下的一个开源的统一资源管理与调度平台,它被称为是分布式系统的内核;Marathon是注册到Apache Mesos上的管理长时应用(long-running applications)的framework,如果把Mesos比作数据中心kernel的话,那么Marathon就是init或者upstart的daemon。本文旨在探讨...
51CTO下载中心常见问题:
1.如何获得下载豆?
1)上传资料
2)评论资料
3)每天在首页签到领取
4)购买VIP会员服务,无需下载豆下载资源
5)更多途径:点击此处
2.如何删除自己的资料?
下载资料意味着您已同意遵守以下协议:
1.资料的所有权益归上传用户所有
2.未经权益所有人同意,不得将资料中的内容挪作商业或盈利用途
3.51CTO下载中心仅提供资料交流平台,并不对任何资料负责
4.本站资料中如有侵权或不适当内容,请邮件与我们联系()
5.本站不保证资源的准确性、安全性和完整性, 同时也不承担用户因使用这些资料对自己和他人造成任何形式的伤害或损失
2013云计算架构师峰会从云计算的核心
本专题为VMware虚拟化实验,共15个实
大数据已经从硅谷来到北京!一个大规
本视频是hadoop课程体系的入门和提高
2012云计算架构师峰会为51CTO主办,并
Hadoop是一个分布式系统基础架构,由
本视频由杨尚川老师录制,详细讲解了
本次大会以"发现架构之美"为主题定位
思科UCS就是将服务器、网络、虚拟化等
专业提供华为云计算HICE认证学习资料
意见或建议:
联系方式:
您已提交成功!感谢您的宝贵意见,我们会尽快处理用户名:super李导
文章数:116
访问量:17835
注册日期:
阅读量:1297
阅读量:3317
阅读量:444663
阅读量:1130445
51CTO推荐博文
搭建持续集成环境 jenkins + maven + svn + tomcat 实现自动编译打包部署1.环境准备(1)JDK1.8.0_131&&&&&&&&&&&&&&&&&&&&#不低于1.7版本,这里用最新版本(2)Apache Maven 3.3.9 &&&&& &#可以选择3.2.5或者3.3.9;不要使用3.5.0版本!!(3)SVN客户端(Subversion 1.6.11) &&&&&&&&#程序版本控制SVN1.6.11(4)Tomcat1.7(apache-tomcat-7.0.77) &&&&&#Tomcat7.0.77或者7.0.75(5)Centos6.72.安装配置JAVA环境安装配置下载最新版本1.8.0_131cd /tmp/wget& tar zxf&jdk-8u131-linux-x64.tar.gz -C /usr/local/vim /etc/profile添加如下内容export JAVA_HOME=/usr/local/jdk1.8.0_131export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar然后执行source /etc/profileMaven安装到Apache官网下载maven3.3.9版本wget& tar zxf&apache-maven-3.3.9-bin.tar.gz -C /usr/local/vim /etc/profile添加下面内容export MAVEN_HOME=/usr/local/apache-maven-3.3.9export PATH=$PATH:$MAVEN_HOME/binsource /etc/profile查看版本[root@localhost tmp]# mvn -vApache Maven 3.3.9 (bb52da5a3f4c23dc5; T00:41:47+08:00)Maven home: /usr/local/apache-maven-3.3.9Java version: 1.8.0_131, vendor: Oracle CorporationJava home: /usr/local/jdk1.8.0_131/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "2.6.32-573.el6.x86_64", arch: "amd64", family: "unix"Tomcat安装下载Tomcat7.0_77wget& &unzip&apache-tomcat-7.0.77.zip&mv&apache-tomcat-7.0.77 /usr/local/&cd&/usr/local/apache-tomcat-7.0.77安装Jenkinswget
mv jenkins.war /usr/local/apache-tomcat-7.0.77/webapps/cd&/usr/local/apache-tomcat-7.0.77/webapps/在webapps目录下启动jenkins执行命令 &java -jar jenkins.war&(关闭selinux和iptables)浏览器访问jenkins &
&安装配置svn可以参考yum -y install subversionmkdir /var/svnsvnadmin create /var/svn/projectsvn import /etc/java &file:///var/svn/project -m "java"&启动svnsvnserve -d -r /var/svn/project用windows客户端检出 svn://192.168.1.7/project &测试是否成功需要设置密码的请查看上面链接文档自行设置&使用Maven创建项目通过maven创建helloworld项目cd /tmp/使用mvn命令创建mvn&archetype:generate&&-DgroupId=helloworld&-DartifactId=helloworld[INFO]&Scanning&for&projects...[INFO]&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&[INFO]&------------------------------------------------------------------------[INFO]&Building&Maven&Stub&Project&(No&POM)&1[INFO]&------------------------------------------------------------------------.....信息多,略去......[INFO]&Generating&project&in&Interactive&mode ##此处可能会卡住,可以选择一直等待1个小时左右就正常进行了,只要这次链接下载成功了,以后就不会出现这种情况了;也可以用重新创建时加入忽略跳过参数-DarchetypeCatalog=internal ##..................................................Define&value&for&property&'version':&&1.0-SNAPSHOT:&:&&&&##执行到此处停止了,回车即可[INFO]&Using&property:&package&=&helloworldConfirm&properties&configuration:groupId:&helloworldartifactId:&helloworldversion:&1.0-SNAPSHOTpackage:&helloworld&Y:&:&&&&&##输入Y,回车。。。。。下面等待直到成功tree&helloworld/helloworld/├──&pom.xml└──&src&&&&├──&main&&&&│&&&└──&java&&&&│&&&&&&&└──&helloworld&&&&│&&&&&&&&&&&└──&App.java&&&&└──&test&&&&&&&&└──&java&&&&&&&&&&&&└──&helloworld&&&&&&&&&&&&&&&&└──&AppTest.java下面将创建的项目导入到svn版本库中/var/svn/project中svn import /tmp/helloworld file:///var/svn/project/ -m "helloword"3 配置Jenkins浏览器访问jenkins &&&进入Jenkins管理界面Jenkins Web的全局环境配置:系统管理=&系统设置配置jdk和mvn的家目录,顺便查看自己的Jenkins家目录是否改变为自己定义的jenkins的家目录如下图jdk/mvn的配置如下图:mvn的仓库为了方便使用默认的:Jenkins填写URL,SVN选择自己安装的版本接下来创建helloworld项目任务新建任务pom.xml文件,选择跳过测试(不跳过测试,耗时还可能报错):添加内容如下(clean install -Dmaven.test.skip=true)设置好任务后,新建工作空间,也就是执行编译打包,此过程时间会比较长,需要耐心等待构建完成后出现jar包,在后台工作空间中会多一个target目录4 构建过程中常见错误及解决方法(1)svn的URL配置问题,路径出现不正确或者提示要输入账号密码.SVN的路径是项目的上一级目录,如果配置的svn有账号密码,就根据提示填入账号密码即可(2)找不到pom.xml.pom.xml文件是必须的,maven创建的项目都会有这个文件,其他项目支持maven且有这个文件才行所有测试的时候我选择用maven命令创建一个测试项目,保证不出现pom.xml找不到的问题&(3)maven创建项目时在generating project in interactive mode卡住了.解决方法是可以选择一直等待就行了大概一个小时左右,只是首次会出现这个情况(推荐等待完成)也可以在命令后加参数-DarchetypeCatalog=internalmvn&archetype:generate&&-DgroupId=helloworld&-DartifactId=helloworld&-DarchetypeCatalog=internal(4)在执行创建工作空间时候,创建不成功,出现错误..........java.lang.NoSuchFieldError: DEFAULT_USER_SETTINGS_FILE.........这是jar冲突,版本太高引起的,maven3.5.0版本有这个问题,使用3.3.9低版本就可以了总结:以上这些完成后,算是基础环境搭建已经成功完成,剩下的就是根据自己的项目实际情况深入学习配置使用Jenkins持续集成了,谷歌、官网,还有51cto是解决各种问题的最好地方!本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)
15:34:34 14:32:46jenkins + GIt 搭建持续集成环境
来源:open开发经验库
持续集成通过自动化构建、自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风险,使得系统在开发中始终保持在一个稳定健康的集成状态。jenkins是目前广泛应用的持续集成工具,本文记录我使用jenkins+Git配置持续集成环境的整个流程以及踩到的坑( jenkins过程的坑往往不是在第一次配置,而是在配置结束后更改某些配置项的时候踩到 )。 
总体流程如下:
tomcat8.0下载地址:http://tomcat.apache.org/
jenkins下载地址:http://jenkins-ci.org/
下载完毕后,将jenkins.war丢入tomcat/webapps目录下。
默认情况下,jenkins的工作空间会放到C:\Users\Account\.jenkins目录下,
,如过想要更改工作空间,我们需要在系统环境变量里面配置JENKINS_HOME变量,将该变量指向目标工作空间。这里需要注意的是,tomcat启动情况下,jenkins不会去读JENKINS_HOME变量,必须要重启tomcat。 而重启tomcat也是有坑的 ,如果tomcat是通过命令行执行tomcat/bin/startup.bat目录启动的,那么单单停掉tomcat没用,必须要将前面提到的命令行一并关闭掉,这时重启tomcat,jenkins才会使用JENKINS_HOME中配置的目录作为工作空间。此外, 一旦更换工作空间,此前过于jenkins的所有配置都将作废 。 
我们的产品使用Git作为版本管理工具,而jenkins需要git插件来支持git,所以我们需要为jenkins添加git插件。
在Available tab页中找到Git Plugin
点击下方的Install without Restart安装插件。
插件安装完毕后,我们需要在jenkins中配置Git.exe的位置。
点击保存,jenkins整体的配置可以告一段落,下面我们来创建和配置job。
点击左侧的New Item,选择一个自由风格的job,点击OK。
在源码管理工具(Source Code Management)中选择Git,添加Git仓库、添加Git证书、选择一个分支:
关于证书我们选择,SSH形式:
这个key跟我们在gitHub中配置公有秘钥的道理是一样的,jenkins调用git命令去Git服务器上pull代码,git服务器通过检查公钥私钥来保证安全性。如果机器上没有git的ssh key需要
如果Git仓库有子仓库,我们需要对子仓库进行配置,这里选中循环更新所有子仓库:
持续集成的目的不是简单的将源码下载下来,而是通过持续集成进行单元测试、自动化测试、自动构建发布。所以在源码下载完毕后需要执行的命令可以放到Buid部分:
这里我们使用bat命令:
cd %workspace%\client\buildScripts\
build.bat
cd "yourPath"\buildOutput
xcopy stem \\NAO\webapp /Y /E 上面命令的意思是:
进入buildScripts目录,%workspace%是jenkins提供的环境变量,指向我们job的工作空间,强烈建议使用该环境变量。
执行build.bat命令,build.bat中调用其他命令执行build脚本。
进入buildOutput目录
将buildOutput中的stem下所有内容拷贝到NAO机器的共享目录中。
点击保存,进入到我们刚刚创建的job的控制界面中,点击Build Now,便可以开始我们的持续集成的旅途了。
点击某一次具体的构建,我们可以查看日志输出:
注意这里的构建并不检查build.bat中的错误和输出,换句话说如果build.bat失败,本次构建过程不会失败。解决方法是使用jenkins的Log Parser插件,同使用Git Plugin一样,在插件管理中找 Log Parser插件,并添加。添加完毕后,配置jenkins中的Console Output Parsing
rule的具体规则语法可以使用正则表达式,具体可以参考Log Parser插件的文档http://my.oschina.net/donhui/blog/382592
Parsing Rules File的配置同上文的配置工作目录具有一样的坑,如果要更新规则,首先要清除job中选中的规则,然后删除此处配置的Parseing Rule,重启tomcat。
添加完毕后,在job的配置页的 Post-Build Actions部分选中Console Output parsing
然后进行如下配置:
这样我们可以对buld.bat中的error进行捕获,并且在某次构建过程的Parsed Console Output中进行查看
来自: 
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动基于Jenkins, Apache Mesos和Marathon的弹性高可用的持续集成环境(下篇)
来源:open开发经验库
在, 探讨了利用 marathon/Mesos 管理Jenkins集群的整个架构流程,以及如何一步步配置 Jenkins Master 来将其注册成为 Mesos 的 Framework 。本篇博客,我们主要解决Jenkins Master的数据持久化问题,marathon会在Jenkins Master因意外崩溃后重新部署其到某个mesos slave节点上,但marathon无法维护应用程序的数据,即我们需要一个 Jenkins Master 的数据持久化方法,由于Jenkins Master是将数据存储在XML文件而不是数据库中,这里可以利用jenkins插件来将Jenkins Master的数据同步到相应的repo。 
在内部的代码库或者 github 上创建一个 git repo 
我们需要在内部的代码库或者公共代码库创建一个名为 jenkins-on-mesos 的 gitrepo , 譬如:git@gitlab.dataman.io:wtzhou/jenkins-on-mesos.git 。 这个 repo 是 jenkins 插件
用来同步jenkins数据的。 
另外,对于SCM-Sync-Configuration来说,非常关键的一步是保证其有权限 pull/push 上面我们所创建的gitrepo。 以我们公司的内部环境为例, 在mesos集群搭建时,我们首先使用ansible为所有的mesos slave节点添加了用户core并生成了相同的ssh keypair,同时在内部的gitlab上注册了用户core并上传其在slave节点上的公钥,然后添加该用户core为repo git@gitlab.dataman.io:wtzhou/jenkins-on-mesos.git的developer或者owner,这样每个mesos slave节点都可以以用户core来 pull/push 这个gitrepo了。 
使用 marathon 部署可持久化的 Jenkins Master 
我们首先需要wget两个文件: 
wget -O start-jenkins.app.sh /Dataman-Cloud/jenkins-on-mesos/master/start-jenkins.app.sh.template
wget /Dataman-Cloud/jenkins-on-mesos/master/marathon.json 其中start-jenkins.app.sh是需要配置的, 
#! /bin/bash
# Sync the config with SCM_SYNC_GIT
# SCM_SYNC_GIT format: git@gitlab.dataman.io:wtzhou/jenkins-on-mesos.git
SCM_SYNC_GIT=
# deploy jenkins on marathon as user APP_USER, who has been granted to pull/push repo SCM_SYNC_GIT
APP_USER=
# Marathon PORTAL, for example: http://192.168.3.4:8080/v2/apps
MARATHON_PORTAL=
......
......
...... 编辑如下3个变量: 
SCM_SYNC_GIT: 上面所配置的 gitrepo 地址, 格式例子: git@gitlab.dataman.io:wtzhou/jenkins-on-mesos.git 
APP_USER: marathon 会以用户 APP_USER 来部署 jenkins ,从而插件SCM-Sync-Configuration会以用户APP_USER来跟gitrepo进行同步。 所以在我们的这个例子里,我们让APP_USER=core。 
MARATHON_PORTAL: marathon 的 RESTapi 入口,例如: http://marathon.dataman.io:8080/v2/apps 
接下来就可以执行命令: 
bash start-jenkins.app.sh 来让 marathon 部署我们的 Jenkins Master 了。这样, 我们在 Jenkins Master 上所保存的任何配置,创建的任何job都会被SCM-Sync-Configuration同步到repo里,并在 Jenkins Master 被重新发布后 download 到本地。 
关于SCM-Sync-Configuration的更多信息 
SCM-Sync-Configuration初始化完成后(在我们环境里初始化过程会被自动触发),每次配置更新或者添加,编辑构建作业时,我们会得到一个提示页面来为新的 commit message 添加 comment,如下图所示, 
当前,所支持的配置文件如下: 
构建作业的配置文件 (/jobs/*/config.xml) 
全局的 Jenkins/Hudson 系统配置文件 (/config.xml) 
基本的插件的配置文件 (/hudson*.xml, /scm-sync-configuration.xml) 
用户手动指定的配置文件 
另外,我们可以在每一页的下面看到 scm sync config 的状态, 下图是同步出错时的截图,你可以去System Log查看具体的出错信息。
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动UDN-企业互联网技术人气社区
后使用快捷导航没有帐号?
如何搭建弹性高可用的持续集成环境
摘要: 持续集成的开发实践是目前的一个热门话题,在本文中,数人科技云平台负责人周伟涛解析其利用开源的Jenkins,ApacheMesos和Marathon搭建弹性的,高可用的持续集成环境的实践,详细介绍了环境设置,在Marathon上部 ... ...
  持续集成的开发实践是目前的一个热门话题,在本文中,数人科技云平台负责人周伟涛解析其利用开源的Jenkins,ApacheMesos和Marathon搭建弹性的,高可用的持续集成环境的实践,详细介绍了环境设置,在Marathon上部署Jenkins的master实例,配置JenkinsMaster实现弹性伸缩,在内部的代码库或者github上创建一个gitrepo,以及使用marathon部署可持久化的JenkinsMaster等步骤。
  持续集成(CI)是一种软件开发实践,使用得当,它会极大的提高软件开发效率并保障软件开发质量;Jenkins是一个开源项目,它提供了一种易于使用的持续集成系统;Mesos是Apache下的一个开源的统一资源管理与调度平台,它被称为是分布式系统的内核;Marathon是注册到ApacheMesos上的管理长时应用(long-runningapplications)的Framework,如果把Mesos比作数据中心Kernel的话,那么Marathon就是init或者upstart的daemon。
  本文旨在探讨如何利用Jenkins,ApacheMesos和Marathon搭建一套弹性的,高可用的持续集成环境。
  为什么要把Jenkins运行到ApacheMesos上
  把Jenkins运行到ApacheMesos上,或者说利用ApacheMesos向Jenkins提供slave资源,最主要的目的是利用Mesos的弹性资源分配来提高资源利用率。通过配置Jenkins-on-Mesos插件,JenkinsMaster可以在作业构建时根据实际需要动态的向Mesos申请slave节点,并在构建完成的一段时间后将节点归还给mesos。
  同时,Marathon会对发布到它之上的应用程序进行健康检查,从而在应用程序由于某些原因意外崩溃后自动重启该应用。这样,选择利用Marathon管理JenkinsMaster保证了该构建系统的全局高可用。而且,JenkinsMaster本身也通过Marathon部署运行在Mesos资源池内,进一步实现了资源共享,提高了资源利用率。
  下面两张图形象的说明了Marathon将JenkinsMaster部署到Mesos资源池,以及JenkinsMaster使用Mesos资源池进行作业构建的整个过程。
  环境设置
  为了便于理解,这里我简化了Mesos/Marathon集群的架构,不再考虑集群本身的高可用性。至于如何利用zookeeper配置高可用的mesos/marathon集群,可以参考Mesosphere的官方文档,这里不再展开。
  我搭建了一个包含40个节点192.168.3.4-192.168.3.43的Mesos集群,其中一个节点用作运行Marthon及Mesos-master,其它39个节点作为mesos的slave,如下所示。
  配置启动Marathon,Mesos-Master和Mesos-Slave后,下面的整个操作都将在这个集群上完成。
  在Marathon上部署Jenkins的master实例
  Marathon支持web页面或者REST两种方式发布应用,在192.168.3.*内网执行下面的bash命令,就会通过Marathon的RESTapi在mesosslave上启动一个Jenkinsmaster实例。
  如果Jenkinsmaster实例被成功部署,通过浏览器访问(请确定你的浏览器能够访问内网,譬如可以利用设置浏览器代理等方式来搞定)可以在runningtasks列表中找到jenkins,点击进入详细信息页面,我们会看到下图:
  访问并在ActiveFrameworks中找到Marathon,点击进入详细信息页面,可以在该页面找到JenkinsMaster具体运行到Mesos哪一台Slave上,如下图所示:
  点击sandbox
  配置JenkinsMaster实现弹性伸缩
  接下来是配置Jenkins注册成为Mesos的Framework,需要通过浏览器访问来到JenkinsMaster的UI页面。下面的截图是我逐步配置的全过程。
  1.点击”系统管理”中的”系统设置”
  2.设置MesosMaster为192.168.3.4:5050;点击”TestConnection”测试链接,显示链接成功后,点击”应用”保存设置。
  Jenkins在Mesos上注册成功,访问,我们可以找到jenkinsFramework,如下图所示:
  现在我们可以同时启动多个构建作业来看一下Jenkins在Mesos上的弹性伸缩,在上新建一个名为test的工程,配置其构建过程为运行一个shell命令top,如下图所示:
  把该工程复制3份test2、test3和test4,并同时启动这4个工程的构建作业,JenkinsMaster会向Mesos申请资源,如果资源分配成功,JenkinsMaster就在获得的slave节点上进行作业构建,如下图所示:
  因为在前面的系统配置里我们设置了执行者数量为2(即最多有两个作业同时进行构建),所以在上图中我们看到两个正在进行构建的作业,而另外两个作业在排队等待。
  下图展示了当前的Jenkins作业构建共使用了0.6CPU和1.4G内存:
  正在使用的slave节点的详细信息:
  配置JenkinsSlave参数(可选)
  在使用Jenkins进行项目构建时,我们经常会面临这样一种情形,不同的作业会有不同的资源需求,有些作业需要在配置很高的slave机器上运行,但是有些则不需要。为了提高资源利用率,显然,我们需要一种手段来向不同的作业分配不同的资源。通过设置JenkinsMesosCloud插件的slaveinfo,我们可以很容易的满足上述要求。具体的配置如下图所示:
  至此我们利用mesos为jenkins弹性的提供资源,同时配置JenkinsSlave的参数来满足不同作业的资源需求,提高了集群的整体资源利用率。并通过Marathon会自动检查运行在它之上的app的健康状态,并重新发布崩溃掉的应用程序功能,实现了集群系统的部分高可用功能。接下来我们看看如何解决数据持久化的问题。
  如何解决JenkinsMaster的数据持久化问题
  marathon会在JenkinsMaster因意外崩溃后重新部署其到某个mesosslave节点上,但marathon无法维护应用程序的数据,即我们需要一个JenkinsMaster的数据持久化方法,由于JenkinsMaster是将数据存储在XML文件而不是数据库中,这里可以利用jenkins插件SCMSyncconfigurationplugin来将JenkinsMaster的数据同步到相应的repo。
  在内部的代码库或者github上创建一个gitrepo
  我们需要在内部的代码库或者公共代码库创建一个名为jenkins-on-mesos的gitrepo,譬如::wtzhou/jenkins-on-mesos.git。这个repo是jenkins插件SCMSyncconfigurationplugin用来同步jenkins数据的。
  另外,对于SCM-Sync-Configuration来说,非常关键的一步是保证其有权限pull/push上面我们所创建的gitrepo。以我们公司的内部环境为例,在mesos集群搭建时,我们首先使用ansible为所有的mesosslave节点添加了用户core并生成了相同的sshkeypair,同时在内部的gitlab上注册了用户core并上传其在slave节点上的公钥,然后添加该用户core为:wtzhou/jenkins-on-mesos.git的developer或者owner,这样每个mesosslave节点都可以以用户core来pull/push这个gitrepo了。
  使用marathon部署可持久化的JenkinsMaster
  我们首先需要wget两个文件:
  其中start-jenkins.app.sh是需要配置的,
  编辑如下3个变量:
  1.SCM_SYNC_GIT:上面所配置的gitrepo地址,格式例子::wtzhou/jenkins-on-mesos.git
  2.APP_USER:marathon会以用户APP_USER来部署jenkins,从而插件SCM-Sync-Configuration会以用户APP_USER来跟gitrepo进行同步。所以在我们的这个例子里,我们让APP_USER=core。
  3.MARATHON_PORTAL:marathon的RESTapi入口,例如:
  接下来就可以执行命令:
  来让marathon部署我们的JenkinsMaster了。这样,我们在JenkinsMaster上所保存的任何配置,创建的任何job都会被SCM-Sync-Configuration同步到repo里,并在JenkinsMaster被重新发布后download到本地。
  关于SCM-Sync-Configuration的更多信息
  SCM-Sync-Configuration初始化完成后(在我们环境里初始化过程会被自动触发),每次配置更新或者添加,编辑构建作业时,我们会得到一个提示页面来为新的commitmessage添加comment,如下图所示:
  当前,所支持的配置文件如下:
  1.构建作业的配置文件(/jobs/*/config.xml)
  2.全局的Jenkins/Hudson系统配置文件(/config.xml)
  3.基本的插件的配置文件(/hudson*.xml,/scm-sync-configuration.xml)
  4.用户手动指定的配置文件
  另外,我们可以在每一页的下面看到scmsyncconfig的状态,下图是同步出错时的截图,你可以去SystemLog查看具体的出错信息。
  至此,我们又解决了JenkinsMaster的数据持久化问题。到这里,我们就真正搭建完成了基于Jenkins,ApacheMesos和Marathon的弹性高可用的持续集成环境。(责编/周建丁&&周伟涛/CSDN)
地址:北京市海淀区北清路68号
移动客户端下载
微信公众号:yonyouudn
扫描右侧二维码关注我们
专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041
京公网网备安4
Powered by Discuz!

我要回帖

更多关于 mac下php集成环境搭建 的文章

 

随机推荐