Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
³ÖÐø¼¯³É+×Ô¶¯»¯²¿Êð[´úÂëÁ÷Ë®Ïß¹ÜÀí¼°JenkinsºÍgitlab¼¯³É]
 
À´Ô´:csdn ·¢²¼ÓÚ:2017-11-1
  4316  次浏览      28
 

Ò»¡¢´úÂëÁ÷Ë®Ïß¹ÜÀí

PipelineÃû´Ê¹ËÃû˼Òå¾ÍÊÇÁ÷Ë®ÏßµÄÒâ˼£¬ÒòΪ¹«Ë¾¿ÉÄÜ»áÓкܶàÏîÄ¿¡£Èç¹ûʹÓÃjenkins¹¹½¨Íê³Éºó£¬¿ª·¢¹¹½¨ÏîÄ¿ÐèÒªÒ»ÏîÒ»Ïîµã»÷£¬±È½ÏÂé·³¡£ËùÒÔ³öÏÖpipelineÃû´Ê¡£

´úÂëÖÊÁ¿¼ì²éÍê±ÏÖ®ºó£¬ÎÒÃÇÐèÒª½«´úÂ벿Êðµ½²âÊÔ»·¾³ÉÏÈ¥£¬½øÐÐ×Ô¶¯»¯²âÊÔ

н¨²¿Êð´úÂëÏîÄ¿

µã»÷н¨

ÕâÀïÖ»ÐèҪдһÏÂÃèÊö

Ö´ÐÐShell½Å±¾

ÎÂܰÌáʾ£ºÖ´ÐÐÃüÁîÖ÷񻃾¼°µÄÊÇȨÏÞÎÊÌ⣬ÎÒÃÇÒª¸ãÃ÷°×£¬jenkinsÊÇÒÔʲôȨÏÞÀ´Ö´ÐÐÃüÁîµÄ¡£ÄÇôÎÊÌâÀ´ÁË£¬ÎÒÃÇÏÖÔÚ192.168.56.11ÉÏ£¬Èç¹ûÔÚÏë192.168.56.12ÉÏÖ´ÐÐÃüÁî¡£ÐèÒªÔõô×öÄØ£¿

ÎÒÃÇ×öÎÞÃØÔ¿ÓÐ2ÖÖ·Ö°¸£º

1¡¢Ê¹ÓÃjenkinsÓû§½«ÃØÔ¿·Ö·¢¸ø192.168.56.12ÉÏ

2¡¢Ê¹ÓÃrootÓû§½«ÃØÔ¿·Ö·¢¸ø192.168.56.12ÉÏ£¬Èç¹ûʹÓÃrootÓû§»¹Òª½øÐÐvisudoÊÚȨ¡£ÒòΪWebÉÏĬÈÏÖ´ÐÐÃüÁîµÄÓû§ÊÇjenkins

1.ÎÒÃÇʹÓÃroot×öÃÜÂëÑéÖ¤

#ÕâÀïÎÒÃǵÄkeyÒѾ­×öºÃ£¬Èç¹ûû×ö¿ÉÒÔÖ±½Ó ssh-keygen -t ras À´Éú³ÉÃØÔ¿

ÎÒÃǽ«192.168.56.11ÉϵĹ«Ô¿¸´ÖƵ½192.168.56.12ÉÏ

[root@linux-node1 ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA BAQChVQufrGwqP5dkzIU4ZwXCjRuSvMVGN5l JdvL/QFckmlVphWMsQw06VsPhgcI1NDjGbKOh5pb jrylyJUCig5YIJ1xuMOZ2YAK32SceMxnVhEb/ G4wNb9VMsGQ/Vs4CxrU1HdATktH9zDAV4Qz81x2POYJW5B5 LAvwZ4owqnIpZ7o3ya6xBxEvCIMSVtD17oKrNqAphsg +e68KvRexiNCEbCbRGGq3bKevgiDsWpSGnCYsJC 0+cSrUxuzEO3G6AqGI/qR3nOeg91rOsoAP3FpFjBKgb /sXggkwwjmGIqFXJrUG+XmczeF4kG /rUrNbdy84e5RyHoIS3XKnJuRjTxHyD root@linux-node1

[root@linux-node2 ~]# vim .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQChV QufrGwqP5dkzIU4ZwXCjRuSvMVGN5lJdvL/ QFckmlVphWMsQw06VsPhgcI1NDjGbKOh5pbjryly JUCig5YIJ1xuMOZ2YAK32SceMxnVhEb /G4wNb9VMsGQ/Vs4CxrU1HdATktH9zDAV 4Qz81x2POYJW5B5LAvwZ4owqnIpZ7o3 ya6xBxEvCIMSVtD17oKrNqAphsg+ e68KvRexiNCEbCbRGGq3bKevgiDsWpSGnCYsJC 0+cSrUxuzEO3G6AqGI/qR3nOeg91rOsoAP3FpFjBKg b/sXggkwwjmGIqFXJrUG+XmczeF4kG /rUrNbdy84e5RyHoIS3XKnJuRjTxHyD root@linux-node1

[root@linux-node1 ~]# ssh 192.168.56.12
The authenticity of host '192.168.56.12 (192.168.56.12)' can't be established.
ECDSA key fingerprint is b5:74:8f:f1:03:2d:cb:7d: 01:28:30:12:34:9c:35:8c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.56.12' (ECDSA) to the list of known hosts.
Last login: Sat Dec 17 02:14:31 2016 from 192.168.56.1
[root@linux-node2 ~]# ll
total 4
-rw-------. 1 root root 1021 Dec 13 05:56 anaconda -ks.cfg

#ÏÖÔÚSSHÁ¬½Ó¾Í²»ÐèÒªÃÜÂëÁË

ÊÚȨjenkinsÓû§£¬ ʹÓÃvisudo»òÕ߱༭ÅäÖÃÎļþ/etc/sudoers
[root@linux-node1 ~] # vim /etc/sudoers
92 jenkins ALL= (ALL) NOPASSWD:/usr/bin/ssh
#jenkinsÊÚȨËùÓÐÖ÷»ú£¬ ²»ÐèÒªÃÜÂëÖ´ÐÐssh¡£ÇмDz»ÒªÊÚȨALL

ÎÒÃÇÔÚ192.168.56.12ÉÏдһ¸ö¼òµ¥shell½Å±¾£¬¼ì²âÊÇ·ñ¿ÉÒÔÖ´Ðгɹ¦¡£Õýʽ»·¾³¿ÉÒÔдһ¸ö×Ô¶¯»¯²¿ÊðµÄ½Å±¾

[root@linux-node2 ~] # echo "echo "hello word"" >demo.sh
[root@linux-node2 ~] # chmod +x demo.sh
[root@linux-node2 ~ ]# ll demo.sh
-rwxr-xr-x 1 root root 16 Dec 17 02:24 demo.sh

jenkins±àдִÐнű¾

È»ºóÎÒÃǵã»÷Á¢¼´¹¹½¨

³É¹¦£¡

ÏÖÔÚÎÒÃÇÒª½«´úÂëÖÊÁ¿¹ÜÀíºÍ²âÊÔ²¿ÊðÁ¬½ÓÆðÀ´¡£

Õâʱºò¾ÍÓõ½ÁËgit¹³×Ó

ÎÒÃÇÐèÒª°²×°jenkins²å¼þparameterized

ÎÒÃÇÑ¡Ôñdemo-deploy

Ôٴεã»÷ÏîÄ¿ÉèÖõÄʱºò¾Í»á³öÏÖTrigger parameterized build on other projects

Ìáʾ£ºProjects to buildÊÇΪ¹¹½¨ÉèÖÃÒ»¸öÏîÄ¿¡£ÀýÈçÎÒÃÇÏë¹¹½¨Íê´úÂëÏîÄ¿ºóÖ´ÐвâÊԵģ¬ÕâÀï¾ÍÌîд²âÊԵľͿÉÒÔ¡£

×îºóµã»÷±£´æ£¬µã»÷¹¹½¨¡£ÎÒÃDz鿴Ч¹û

#ÕâÑùÎÒÃÇÿ´Îµã»÷demo-deploy Ëü¾Í»áÔÚ¹¹½¨Íê³ÉÖ®ºóÔÚ¶Ôauto-deploy½øÐй¹½¨

ÏÂÔØpipeline¡£ÕâÑùÖ»ÐèÒª¹¹½¨Ò»¸öÏîÄ¿£¬¾Í»á°ïÎÒÃÇÍê³ÉËùÓÐÏà¹ØÏîÄ¿

ËÑË÷²å¼þpipeline

µÈ´ý°²×°Íê³É

ÎÒÃǵã»÷Ê×Ò³+ºÅ£¬Ð½¨Ò»¸öÊÔͼ

µã»÷OK

pipeline ÅäÖÃ

 

È»ºóÎÒÃǵã»÷±£´æ

pipelineÊÓͼÈçÏ£º

µã»÷Run

ÕâÑù¾ÍÏÈ´úÂëÖÊÁ¿½øÐйÜÀí£¬È»ºó¾Í¿ªÊ¼²¿ÊðÁË

¹¹½¨³É¹¦ºó£º

ÕâÑùÎÒÃÇÏ´ÎÏë¿´pipelineÊÓͼµÄʱºò£¬µã»÷ÉÏÃæµÄdemo-pipeline¼´¿É

 

¶þ¡¢Jenkins + gitlab¼¯³É

Jenkins + gitlab¼¯³Éºó£¬ÊµÏֵŦÄÜÊÇ ¿ª·¢Ð´ºÃ´úÂëÌá½»ÖÁgitlabÉÏ£¬µ±Ê±¿ªÊ¼pushµ½gitlabÉÏÖ®ºó£¬jenkins×Ô¶¯°ïÎÒÃÇÁ¢¼´¹¹½¨

Õâ¸öÏîÄ¿ÎÒÃÇÐèÒª°²×°Ò»¸ögitlab¹³×ӵĽű¾

Ìáʾ£º jenkins²»ÂÛÏëʵÏÖʲô¹¦ÄÜ£¬¶¼ÐèÒª°²×°²å¼þ£¡£¡

°²×°Íê²å¼þÖ®ºóÎÒÃǾͿªÊ¼ÅäÖù³×ӽű¾

ÕâÀïÐèÒªÎÒÃÇÔÚ·þÎñÆ÷ÀïÃæÐ´Ò»¸öÁîÅÆ£¬ÔÚjenkinsÉÏҲдһ¸öÁîÅÆ¡£ÕâÁ½¸ö¿ÉÒÔÁ¬½Óµ½Ò»Æð¾Í¿ÉÒÔ¡£

#ÒòΪÓõ½ÁËÁîÅÆÎÒÃÇ»¹ÐèÒªÔÚ°²×°Ò»¸ö²å¼þ£¬·ñÔò½«ÎÞ·¨Ê¹Óá£ÒòΪÁîÅÆÊÇÐèÒªµÇ¼֮ºó²Å»áÓУ¬ËùÒÔÐèÒªÓÐÒ»¸ö¹ÜÀíµÄ²å¼þ

²å¼þËÑË÷£ºBuild Aut

ΪÁËÁîÅÆµÄ°²È«ÐÔ£¬ÎÒÃÇʹÓÃopensslÉú³ÉÒ»¸ö

[root@linux-node1 ~]# openssl rand -hex 10
0a37c6d7ba1fe3472e26

È»ºóÎÒÃǵã»÷±£´æ¼´¿É

ÒòΪjenkinsÉÏÒ²ÌáʾÎÒÃÇÐèÒªÔÚgitlabÉÏÌí¼Ó¹³×ӽű¾

µã»÷ÎÒÃÇ´´½¨µÄÏîÄ¿

Ñ¡ÖÐWebhooks

Build Authorization Token Root Plugin ²å¼þʹÓÃ˵Ã÷

https://wiki.jenkins-ci.org/display/JENKINS/Build+Token+Root+Plugin

ʹÓÃBuild²å¼þºó£¬urlÈçÏ£º

http://192.168.56.11:8080/buildByToken/build?job=auto-deploy&token=0a37c6d7ba1fe3472e26
auto-deploy=ÏîÄ¿Ãû³Æ(¹¹½¨Ê±µÄÏîÄ¿Ãû³Æ)
0a37c6d7ba1fe3472e26=jenkinsÌîдµÄÁîÅÆ

È»ºóµã»÷Add Webhook

Ï·½¾Í»á³öÏÖÎÒÃÇÕâ¸öÑ¡ÏÎÒÃǵã»÷Test½øÐвâÊÔ

²âÊÔ½á¹û

Ïògit·þÎñÆ÷Ìá½»´úÂ룬ÑéÖ¤ÊÇ·ñ¿ÉÒÔ×Ô¶¯²¿Êð£º

[root@linux-node1 ~]# echo "Build Token Root Plugin" > index.html
[root@linux-node1 ~]# git add index.html [root@saltmaster ~/weather]# git commit -m "text"
[root@linux-node1 ~]# git push origin master

jenkins·þÎñÆ÷µÄÈÕÖ¾¼Ç¼£º

[root@linux-node1 ~]# tail -f /var/log/jenkins/jenkins.log

jenkinsÏîÄ¿¹¹½¨£º

·ÃÎÊweb½çÃæÑéÖ¤´úÂëÊÇ·ñ×îеģº

jenkins¿ØÖÆÌ¨Êä³öÐÅÏ¢£º

   
4316 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ΪʲôҪ×ö³ÖÐø²¿Êð£¿
ÆÊÎö¡°³ÖÐø½»¸¶¡±£ºÎå¸öºËÐÄʵ¼ù
¼¯³ÉÓë¹¹½¨Ö¸ÄÏ
³ÖÐø¼¯³É¹¤¾ßµÄÑ¡Ôñ-×°ÔØ
Ïà¹ØÎĵµ

³ÖÐø¼¯³É½éÉÜ
ʹÓÃHudson³ÖÐø¼¯³É
³ÖÐø¼¯³ÉÖ®-ÒÀÀµ¹ÜÀí
IPD¼¯³É²úÆ·¿ª·¢¹ÜÀí
Ïà¹Ø¿Î³Ì

ÅäÖùÜÀí¡¢ÈÕ¹¹½¨Óë³ÖÐø¼¯³É
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
»ùÓÚAndroidµÄµ¥Ôª¡¢ÐÔÄܲâÊÔ