Ò»¡¢´úÂëÁ÷Ë®Ïß¹ÜÀí
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¿ØÖÆÌ¨Êä³öÐÅÏ¢£º

|