³ÖÐø¼¯³ÉµÄ¿ª·¢Êµ¼ùÊÇĿǰµÄÒ»¸öÈÈÃÅ»°Ì⣬ÔÚ±¾ÎÄÖУ¬ÊýÈ˿Ƽ¼ÔÆÆ½Ì¨¸ºÔðÈËÖÜΰÌνâÎöÆäÀûÓÿªÔ´µÄJenkins£¬Apache
MesosºÍMarathon´î½¨µ¯ÐԵģ¬¸ß¿ÉÓõijÖÐø¼¯³É»·¾³µÄʵ¼ù£¬Ïêϸ½éÉÜÁË»·¾³ÉèÖã¬ÔÚMarathonÉϲ¿ÊðJenkinsµÄmasterʵÀý£¬ÅäÖÃJenkins
MasterʵÏÖµ¯ÐÔÉìËõ£¬ÔÚÄÚ²¿µÄ´úÂë¿â»òÕß github ÉÏ´´½¨Ò»¸ö git repo£¬ÒÔ¼°Ê¹Óà marathon
²¿Êð¿É³Ö¾Ã»¯µÄ Jenkins MasterµÈ²½Öè¡£
³ÖÐø¼¯³É£¨CI£©ÊÇÒ»ÖÖÈí¼þ¿ª·¢Êµ¼ù£¬Ê¹Óõõ±£¬Ëü»á¼«´óµÄÌá¸ßÈí¼þ¿ª·¢Ð§Âʲ¢±£ÕÏÈí¼þ¿ª·¢ÖÊÁ¿£»JenkinsÊÇÒ»¸ö¿ªÔ´ÏîÄ¿£¬ËüÌṩÁËÒ»ÖÖÒ×ÓÚʹÓõijÖÐø¼¯³Éϵͳ£»MesosÊÇApacheϵÄÒ»¸ö¿ªÔ´µÄͳһ×ÊÔ´¹ÜÀíÓëµ÷¶Èƽ̨£¬Ëü±»³ÆÎªÊÇ·Ö²¼Ê½ÏµÍ³µÄÄںˣ»MarathonÊÇ×¢²áµ½Apache
MesosÉϵĹÜÀí³¤Ê±Ó¦Óã¨long-running applications£©µÄFramework£¬Èç¹û°ÑMesos±È×÷Êý¾ÝÖÐÐÄKernelµÄ»°£¬ÄÇôMarathon¾ÍÊÇinit»òÕßupstartµÄdaemon¡£
±¾ÎÄÖ¼ÔÚ̽ÌÖÈçºÎÀûÓÃJenkins£¬Apache MesosºÍMarathon´î½¨Ò»Ì×µ¯ÐԵģ¬¸ß¿ÉÓõijÖÐø¼¯³É»·¾³¡£
ΪʲôҪ°ÑJenkinsÔËÐе½Apache MesosÉÏ
°ÑJenkinsÔËÐе½Apache MesosÉÏ£¬»òÕß˵ÀûÓÃApache MesosÏòJenkinsÌṩslave×ÊÔ´£¬×îÖ÷ÒªµÄÄ¿µÄÊÇÀûÓÃMesosµÄµ¯ÐÔ×ÊÔ´·ÖÅäÀ´Ìá¸ß×ÊÔ´ÀûÓÃÂÊ¡£Í¨¹ýÅäÖÃJenkins-on-Mesos²å¼þ£¬Jenkins
Master¿ÉÒÔÔÚ×÷Òµ¹¹½¨Ê±¸ù¾Ýʵ¼ÊÐèÒª¶¯Ì¬µÄÏòMesosÉêÇëslave½Úµã£¬²¢ÔÚ¹¹½¨Íê³ÉµÄÒ»¶Îʱ¼äºó½«½Úµã¹é»¹¸ømesos¡£
ͬʱ£¬Marathon»á¶Ô·¢²¼µ½ËüÖ®ÉϵÄÓ¦ÓóÌÐò½øÐн¡¿µ¼ì²é£¬´Ó¶øÔÚÓ¦ÓóÌÐòÓÉÓÚijЩÔÒòÒâÍâ±ÀÀ£ºó×Ô¶¯ÖØÆô¸ÃÓ¦Óá£ÕâÑù£¬Ñ¡ÔñÀûÓÃMarathon¹ÜÀíJenkins
Master±£Ö¤Á˸ù¹½¨ÏµÍ³µÄÈ«¾Ö¸ß¿ÉÓ᣶øÇÒ£¬Jenkins Master±¾ÉíҲͨ¹ýMarathon²¿ÊðÔËÐÐÔÚMesos×ÊÔ´³ØÄÚ£¬½øÒ»²½ÊµÏÖÁË×ÊÔ´¹²Ïí£¬Ìá¸ßÁË×ÊÔ´ÀûÓÃÂÊ¡£
ÏÂÃæÁ½ÕÅͼÐÎÏóµÄ˵Ã÷ÁËMarathon½«Jenkins Master²¿Êðµ½Mesos×ÊÔ´³Ø£¬ÒÔ¼°Jenkins
MasterʹÓÃ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Ò³Ãæ»òÕßRESTapiÁ½ÖÖ·½Ê½·¢²¼Ó¦Óã¬ÔÚ192.168.3.£ªÄÚÍøÖ´ÐÐÏÂÃæµÄbashÃüÁ¾Í»áͨ¹ýMarathonµÄRESTapiÔÚmesos
slaveÉÏÆô¶¯Ò»¸öJenkins masterʵÀý¡£

Èç¹ûJenkins masterʵÀý±»³É¹¦²¿Êð£¬Í¨¹ýä¯ÀÀÆ÷·ÃÎÊhttp://192.168.3.4:8080(ÇëÈ·¶¨ÄãµÄä¯ÀÀÆ÷Äܹ»·ÃÎÊÄÚÍø£¬Æ©Èç¿ÉÒÔÀûÓÃÉèÖÃä¯ÀÀÆ÷´úÀíµÈ·½Ê½À´¸ã¶¨)¿ÉÒÔÔÚrunning
tasksÁбíÖÐÕÒµ½jenkins£¬µã»÷½øÈëÏêϸÐÅÏ¢Ò³Ãæ£¬ÎÒÃǻῴµ½ÏÂͼ£º

·ÃÎÊhttp://192.168.3.4:5050/#/frameworks²¢ÔÚActive
FrameworksÖÐÕÒµ½Marathon£¬µã»÷½øÈëÏêϸÐÅÏ¢Ò³Ãæ£¬¿ÉÒÔÔÚ¸ÃÒ³ÃæÕÒµ½Jenkins Master¾ßÌåÔËÐе½MesosÄÄһ̨SlaveÉÏ£¬ÈçÏÂͼËùʾ£º

µã»÷sandbox

ÅäÖÃJenkins MasterʵÏÖµ¯ÐÔÉìËõ
½ÓÏÂÀ´ÊÇÅäÖÃJenkins×¢²á³ÉΪMesosµÄFramework£¬ÐèҪͨ¹ýä¯ÀÀÆ÷·ÃÎÊhttp://192.168.3.25:31052/À´µ½Jenkins
MasterµÄUIÒ³Ãæ¡£ÏÂÃæµÄ½ØÍ¼ÊÇÎÒÖð²½ÅäÖõÄÈ«¹ý³Ì¡£
1.µã»÷¡±ÏµÍ³¹ÜÀí¡±Öеġ±ÏµÍ³ÉèÖá±

2.ÉèÖÃMesos MasterΪ192.168.3.4:5050£»µã»÷¡±Test
Connection¡±²âÊÔÁ´½Ó£¬ÏÔʾÁ´½Ó³É¹¦ºó£¬µã»÷¡±Ó¦Óá±±£´æÉèÖá£

JenkinsÔÚMesosÉÏ×¢²á³É¹¦£¬·ÃÎÊhttp://192.168.3.4:5050/#/frameworks£¬ÎÒÃÇ¿ÉÒÔÕÒµ½jenkins
Framework£¬ÈçÏÂͼËùʾ£º

ÏÖÔÚÎÒÃÇ¿ÉÒÔͬʱÆô¶¯¶à¸ö¹¹½¨×÷ÒµÀ´¿´Ò»ÏÂJenkinsÔÚMesosÉϵĵ¯ÐÔÉìËõ£¬ÔÚhttp://192.168.3.25:31052/ÉÏн¨Ò»¸öÃûΪtestµÄ¹¤³Ì£¬ÅäÖÃÆä¹¹½¨¹ý³ÌΪÔËÐÐÒ»¸öshellÃüÁîtop£¬ÈçÏÂͼËùʾ£º

°Ñ¸Ã¹¤³Ì¸´ÖÆ3·Ýtest2¡¢test3ºÍtest4£¬²¢Í¬Ê±Æô¶¯Õâ4¸ö¹¤³ÌµÄ¹¹½¨×÷Òµ£¬Jenkins
Master»áÏòMesosÉêÇë×ÊÔ´£¬Èç¹û×ÊÔ´·ÖÅä³É¹¦£¬Jenkins Master¾ÍÔÚ»ñµÃµÄslave½ÚµãÉϽøÐÐ×÷Òµ¹¹½¨£¬ÈçÏÂͼËùʾ£º

ÒòΪÔÚÇ°ÃæµÄϵͳÅäÖÃÀïÎÒÃÇÉèÖÃÁËÖ´ÐÐÕßÊýÁ¿Îª2£¨¼´×î¶àÓÐÁ½¸ö×÷ҵͬʱ½øÐй¹½¨£©£¬ËùÒÔÔÚÉÏͼÖÐÎÒÃÇ¿´µ½Á½¸öÕýÔÚ½øÐй¹½¨µÄ×÷Òµ£¬¶øÁíÍâÁ½¸ö×÷ÒµÔÚÅŶӵȴý¡£
ÏÂͼչʾÁ˵±Ç°µÄJenkins×÷Òµ¹¹½¨¹²Ê¹ÓÃÁË0.6CPUºÍ1.4GÄڴ棺

ÕýÔÚʹÓõÄslave½ÚµãµÄÏêϸÐÅÏ¢£º


ÅäÖÃJenkins Slave²ÎÊý(¿ÉÑ¡)
ÔÚʹÓÃJenkins½øÐÐÏîÄ¿¹¹½¨Ê±£¬ÎÒÃǾ³£»áÃæÁÙÕâÑùÒ»ÖÖÇéÐΣ¬²»Í¬µÄ×÷Òµ»áÓв»Í¬µÄ×ÊÔ´ÐèÇó£¬ÓÐЩ×÷ÒµÐèÒªÔÚÅäÖúܸߵÄslave»úÆ÷ÉÏÔËÐУ¬µ«ÊÇÓÐЩÔò²»ÐèÒª¡£ÎªÁËÌá¸ß×ÊÔ´ÀûÓÃÂÊ£¬ÏÔÈ»£¬ÎÒÃÇÐèÒªÒ»ÖÖÊÖ¶ÎÀ´Ïò²»Í¬µÄ×÷Òµ·ÖÅ䲻ͬµÄ×ÊÔ´¡£Í¨¹ýÉèÖÃJenkins
Mesos Cloud²å¼þµÄslave info£¬ÎÒÃÇ¿ÉÒÔºÜÈÝÒ×µÄÂú×ãÉÏÊöÒªÇó¡£ ¾ßÌåµÄÅäÖÃÈçÏÂͼËùʾ£º

ÖÁ´ËÎÒÃÇÀûÓÃmesosΪjenkinsµ¯ÐÔµÄÌṩ×ÊÔ´£¬Í¬Ê±ÅäÖÃJenkins SlaveµÄ²ÎÊýÀ´Âú×㲻ͬ×÷ÒµµÄ×ÊÔ´ÐèÇó£¬Ìá¸ßÁ˼¯ÈºµÄÕûÌå×ÊÔ´ÀûÓÃÂÊ¡£²¢Í¨¹ýMarathon
»á×Ô¶¯¼ì²éÔËÐÐÔÚËüÖ®ÉϵÄappµÄ½¡¿µ×´Ì¬£¬ ²¢ÖØÐ·¢²¼±ÀÀ£µôµÄÓ¦ÓóÌÐò¹¦ÄÜ£¬ÊµÏÖÁ˼¯ÈºÏµÍ³µÄ²¿·Ö¸ß¿ÉÓù¦ÄÜ¡£½ÓÏÂÀ´ÎÒÃÇ¿´¿´ÈçºÎ½â¾öÊý¾Ý³Ö¾Ã»¯µÄÎÊÌâ¡£
ÈçºÎ½â¾öJenkins MasterµÄÊý¾Ý³Ö¾Ã»¯ÎÊÌâ
marathon»áÔÚJenkins MasterÒòÒâÍâ±ÀÀ£ºóÖØÐ²¿ÊðÆäµ½Ä³¸ömesos slave½ÚµãÉÏ£¬µ«marathonÎÞ·¨Î¬»¤Ó¦ÓóÌÐòµÄÊý¾Ý£¬¼´ÎÒÃÇÐèÒªÒ»¸ö
Jenkins Master µÄÊý¾Ý³Ö¾Ã»¯·½·¨£¬ÓÉÓÚJenkins MasterÊǽ«Êý¾Ý´æ´¢ÔÚXMLÎļþ¶ø²»ÊÇÊý¾Ý¿âÖУ¬ÕâÀï¿ÉÒÔÀûÓÃjenkins²å¼þSCM
Sync configuration pluginÀ´½«Jenkins MasterµÄÊý¾Ýͬ²½µ½ÏàÓ¦µÄrepo¡£
ÔÚÄÚ²¿µÄ´úÂë¿â»òÕß github ÉÏ´´½¨Ò»¸ö git repo
ÎÒÃÇÐèÒªÔÚÄÚ²¿µÄ´úÂë¿â»òÕß¹«¹²´úÂë¿â´´½¨Ò»¸öÃûΪ jenkins-on-mesos µÄ gitrepo
£¬ Æ©È磺git@gitlab.dataman.io:wtzhou/jenkins-on-mesos.git
¡£ Õâ¸ö repo ÊÇ jenkins ²å¼þ SCM Sync configuration plugin
ÓÃÀ´Í¬²½jenkinsÊý¾ÝµÄ¡£
ÁíÍ⣬¶ÔÓÚSCM-Sync-ConfigurationÀ´Ëµ£¬·Ç³£¹Ø¼üµÄÒ»²½ÊDZ£Ö¤ÆäÓÐȨÏÞ 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Á½¸öÎļþ:

ÆäÖÐstart-jenkins.app.shÊÇÐèÒªÅäÖõģ¬

±à¼ÈçÏÂ3¸ö±äÁ¿£º
1. SCM_SYNC_GIT: ÉÏÃæËùÅäÖÃµÄ gitrepo µØÖ·, ¸ñʽÀý×Ó£º git@gitlab.dataman.io: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 Èë¿Ú£¬ÀýÈ磺 http://marathon.dataman.io:8080/v2/apps
½ÓÏÂÀ´¾Í¿ÉÒÔÖ´ÐÐÃüÁî:

À´Èà marathon ²¿ÊðÎÒÃÇµÄ Jenkins Master ÁË¡£ÕâÑù£¬ ÎÒÃÇÔÚ Jenkins
Master ÉÏËù±£´æµÄÈκÎÅäÖ㬴´½¨µÄÈκÎjob¶¼»á±»SCM-Sync-Configurationͬ²½µ½repoÀ²¢ÔÚ
Jenkins Master ±»ÖØÐ·¢²¼ºó download µ½±¾µØ¡£
¹ØÓÚSCM-Sync-ConfigurationµÄ¸ü¶àÐÅÏ¢
SCM-Sync-Configuration³õʼ»¯Íê³Éºó£¨ÔÚÎÒÃÇ»·¾³Àï³õʼ»¯¹ý³Ì»á±»×Ô¶¯´¥·¢£©£¬Ã¿´ÎÅäÖøüлòÕßÌí¼Ó£¬±à¼¹¹½¨×÷ҵʱ£¬ÎÒÃÇ»áµÃµ½Ò»¸öÌáÊ¾Ò³ÃæÀ´ÎªÐµÄ
commit message Ìí¼Ó comment£¬ÈçÏÂͼËùʾ£º

µ±Ç°£¬ËùÖ§³ÖµÄÅäÖÃÎļþÈçÏ£º
1. ¹¹½¨×÷ÒµµÄÅäÖÃÎļþ (/jobs/*/config.xml)
2. È«¾ÖµÄ Jenkins/Hudson ϵͳÅäÖÃÎļþ (/config.xml)
3. »ù±¾µÄ²å¼þµÄÅäÖÃÎļþ (/hudson*.xml, /scm-sync-configuration.xml)
4. Óû§ÊÖ¶¯Ö¸¶¨µÄÅäÖÃÎļþ
ÁíÍ⣬ÎÒÃÇ¿ÉÒÔÔÚÿһҳµÄÏÂÃæ¿´µ½ scm sync config µÄ״̬£¬
ÏÂͼÊÇͬ²½³ö´íʱµÄ½ØÍ¼£¬Äã¿ÉÒÔÈ¥System Log²é¿´¾ßÌåµÄ³ö´íÐÅÏ¢¡£

ÖÁ´Ë£¬ÎÒÃÇÓÖ½â¾öÁËJenkins MasterµÄÊý¾Ý³Ö¾Ã»¯ÎÊÌâ¡£µ½ÕâÀÎÒÃǾÍÕæÕý´î½¨Íê³ÉÁË»ùÓÚJenkins,
Apache MesosºÍMarathonµÄµ¯ÐԸ߿ÉÓõijÖÐø¼¯³É»·¾³¡££¨Ôð±à/Öܽ¨¶¡£© |