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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
³ÖÐø¼¯³ÉÖ®Jenkins+Gitlab¼ò½é [Ò»]
 
À´Ô´:csdn ·¢²¼ÓÚ:2017-11-6
  5664  次浏览      30
 

³ÖÐø¼¯³É¸ÅÄî

³ÖÐø¼¯³ÉContinuous Integration
³ÖÐø½»¸¶Continuous Delivery
³ÖÐø²¿ÊðContinuous Deployment

1.1 ʲôÊdzÖÐø¼¯³É£º

³ÖÐø¼¯³ÉÊÇÖ¸¿ª·¢ÕßÔÚ´úÂëµÄ¿ª·¢¹ý³ÌÖУ¬¿ÉÒÔÆµ·±µÄ½«´úÂ벿Ê𼯳ɵ½Ö÷¸É£¬²¢½ø³Ì×Ô¶¯»¯²âÊÔ

1.2 ʲôÊdzÖÐø½»¸¶£º

³ÖÐø½»¸¶Ö¸µÄÊÇÔÚ³ÖÐø¼¯³ÉµÄ»·¾³»ù´¡Ö®ÉÏ£¬½«´úÂ벿Êðµ½Ô¤Éú²ú»·¾³

1.3 ³ÖÐø²¿Êð£º

ÔÚ³ÖÐø½»¸¶µÄ»ù´¡ÉÏ£¬°Ñ²¿Êðµ½Éú²ú»·¾³µÄ¹ý³Ì×Ô¶¯»¯£¬³ÖÐø²¿ÊðºÍ³ÖÐø½»¸¶µÄÇø±ð¾ÍÊÇ×îÖÕ²¿Êðµ½Éú²ú»·¾³ÊÇ×Ô¶¯»¯µÄ¡£

1.4 ²¿Êð´úÂëÉÏÏßÁ÷³Ì

1.´úÂë»ñÈ¡£¨Ö±½ÓÁËÀ­È¡£©
2.±àÒë £¨¿ÉÑ¡£©
3.ÅäÖÃÎļþ·Å½øÈ¥
4.´ò°ü
5.scpµ½Ä¿±ê·þÎñÆ÷
6.½«Ä¿±ê·þÎñÆ÷ÒÆ³ý¼¯Èº
7.½âѹ²¢·ÅÖõ½Webroot
8.Scp ²îÒìÎļþ
9.ÖØÆô £¨¿ÉÑ¡£©
10.²âÊÔ
11.¼ÓÈ뼯Ⱥ

ÔËά±ØÖªOWASP

JenkinsÉÏOWASP ²å¼þ½éÉÜ£º ËüÊÇ¿ª·ÅʽWebÓ¦ÓóÌÐò°²È«ÏîÄ¿[OWASP,Open Web Application Secunity Project]

ËüÿÄê»á³öÒ»¸ötop10µÄ°²È«Â©¶´£¬ÎÒÃÇÐèÒªÖªµÀµ±Ç°top10µÄ©¶´ÓÐÄÄЩ

https://www.owasp.org/ images/5/57/ OWASP_Proactive_Controls_2.pdf

https://www.owasp.org /index.php /Top_10_2013-Top_10

Gitlab½éÉÜ

GitLabÊÇÒ»¸öÀûÓà Ruby on Rails ¿ª·¢µÄ¿ªÔ´Ó¦ÓóÌÐò£¬ÊµÏÖÒ»¸ö×ÔÍйܵÄGitÏîÄ¿²Ö¿â£¬¿Éͨ¹ýWeb½çÃæ½øÐзÃÎʹ«¿ªµÄ»òÕß˽ÈËÏîÄ¿¡£

GitLabÓµÓÐÓëGithubÀàËÆµÄ¹¦ÄÜ£¬Äܹ»ä¯ÀÀÔ´´úÂ룬¹ÜÀíȱÏݺÍ×¢ÊÍ¡£¿ÉÒÔ¹ÜÀíÍŶӶԲֿâµÄ·ÃÎÊ£¬Ëü·Ç³£Ò×ÓÚä¯ÀÀÌá½»¹ýµÄ°æ±¾²¢Ìṩһ¸öÎļþÀúÊ·¿â¡£Ëü»¹Ìṩһ¸ö´úÂëÆ¬¶ÎÊÕ¼¯¹¦ÄÜ¿ÉÒÔÇáËÉʵÏÖ´úÂ븴Ó㬱ãÓÚÈÕºóÓÐÐèÒªµÄʱºò½øÐвéÕÒ¡£

»·¾³×¼±¸

[root@linux-node1 ~] # cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@linux-node1 ~]# uname -r
3.10.0-514.2.2.el7.x86_64

ÏÂÔØepelÔ´
[root@linux-node1 ~]# wget http://mirrors.aliyun.com/epel/epel -release-latest-7.noarch.rpm
[root@linux-node1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/ repo/Centos-7.repo

¹Ø±Õ NetworkManager ºÍ·À»ðǽ
[root@linux-node1 ~] #systemctl stop firewalld.service
systemctl disable firewalld
systemctl disable NetworkManager

¹Ø±ÕSELinux²¢È·ÈÏ´¦ÓڹرÕ״̬
sed -i 's/SELINUX =enforcing/SELINUX =disabled/' /etc/selinux/config
grep SELINUX= disabled /etc/selinux/config
setenforce 0

¸üÐÂϵͳ²¢ÖØÆô
[root@linux-node1 ~]# yum update -y && reboot

ÎÒÃÇÒ»¹²ÓÐ2̨£º192.168.56.11ºÍ192.168.56.12ÎÒÃǰ²×°ÔÚ192.168.56.11ÉÏ

[root@linux-node1 /] # yum install curl policycoreutils openssh -server openssh-clients postfix -y
[root@linux-node1 /]# systemctl start postfix
[root@linux-node1 /]# curl -sS https://packages.gitlab.com/ install/repositories/gitlab/ gitlab-ce/script.rpm.sh | sudo bash
[root@linux-node1 /]# yum install -y gitlab-ce

#ÓÉÓÚÍøÂçÎÊÌ⣬¹úÄÚÓû§£¬½¨ÒéʹÓÃÇ廪´óѧµÄ¾µÏñÔ´½øÐа²×°

[root@linux-node1 ~]# cat /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl= http://mirrors.tuna.tsinghua.edu.cn /gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey= https://packages.gitlab.com /gpg.key
[root@linux-node1 ~]# yum makecache
[root@linux-node1 /]# yum install -y gitlab-ce

ÔÚ°²×°Ò»¸ögit¿Í»§¶Ë

[root@linux-node1 /] # yum install -y git

ÅäÖò¢Æô¶¯gitlab-ce

[root@linux-node1 ~] # gitlab-ctl reconfigure
#ʱ¼ä¿ÉÄܱȽϳ¤£¬ÄÍÐÄÄãµÈ´ý¼´¿É£¡----


gitlab³£ÓÃÃüÁ
¹Ø±Õgitlab£º[root@linux-node2 ~] # gitlab-ctl stop
Æô¶¯gitlab£º[root@linux-node2 ~] # gitlab-ctl start
ÖØÆôgitlab£º[root@linux-node2 ~] # gitlab-ctl restart

¿ÉÒÔʹÓÃgitlab-ctl¹ÜÀígitlab£¬ÀýÈç²é¿´gitlab״̬£º

[root@linux-node1 /]# gitlab-ctl status
run: gitlab-workhorse: (pid 7437) 324s; run: log: (pid 7436) 324s
run: logrotate: (pid 7452) 316s; run: log: (pid 7451) 316s
run: nginx: (pid 8168) 2s; run: log: (pid 7442) 318s
run: postgresql: (pid 7293) 363s; run: log: (pid 7292) 363s
run: redis: (pid 7210) 369s; run: log: (pid 7209) 369s
run: sidekiq: (pid 7479) 265s; run: log: (pid 7426) 326s
run: unicorn: (pid 7396) 327s; run: log: (pid 7395) 327s

Ìáʾ£º ÎÒÃÇÒª±£Ö¤80¶Ë¿Ú²»±»Õ¼ÓÃ

ÎÒÃÇ¿ÉÒԲ鿴һ϶˿Ú

[root@linux-node1 /] # gitlab-ctl restart
ok: run: gitlab-workhorse: (pid 8353) 0s
ok: run: logrotate: (pid 8360) 1s
ok: run: nginx: (pid 8367) 0s
timeout: down: postgresql: 0s, normally up, want up
ok: run: redis: (pid 8437) 0s
ok: run: sidekiq: (pid 8445) 0s
ok: run: unicorn: (pid 8450) 0s

[root@linux-node1 /]# lsof -i:80
COMMAND PID USER FD T YPE DEVICE SIZE/ OFF NODE NAME
nginx 8367 root 7u IPv4 54972 0t0 TCP *:http (LISTEN)
nginx 8368 gitlab-www 7u IPv4 54972 0t0 TCP *:http (LISTEN)

Web£º·ÃÎÊ£º192.168.56.11

Ìáʾ£ºÆô¶¯gitlabÐèҪʱ¼ä£¡

WebÒ³ÃæÌáʾÎÒÃÇÐèÒªÉèÖÃÒ»¸öÕ˺ÅÃÜÂ루ÎÒÃÇÒªÉèÖÃ×îÉÙ8λÊýµÄÒ»¸öÕ˺ÅÃÜÂ룩ÎÒÃÇÉèÖÃÃÜÂëΪ£º12345678

ÎÒÃÇÔÚºóÃæµÄÒ³ÃæÉèÖÃÓû§Ãû

ÎÒÃÇÏÖÔÚÊÇÒÔ¹ÜÀíÔ±µÄÉí·ÝµÇ½

ÎÒÃǵã»÷ÓÒÉϽǹÜÀíÇøÓò

µÚÒ»²½£ºÎÒÃǹرÕ×Ô¶¯×¢²á£¬ÒòΪÎÒÃÇÄÚ²¿Ê¹Óò»ÐèÒªÓû§×Ô¼º×¢²á£¬ÓÉÔËά·ÖÅäÓû§¼´¿É

Ìáʾ£ºSaveÔÚÒ³Ãæ×îÏ·ţ¡£¡£¡£¡£¡£¡ ¼ÇµÃµã±£´æ£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡

ÏÖÔÚÔڲ鿴Ê×Ò³¾ÍûÓÐ×¢²áÒ³ÃæÁË

µÚ¶þ²½£ºÎÒÃÇ´´½¨Ò»¸öÓû§£¬ÔÚ´´½¨Ò»¸öÏîÄ¿

ÏÈ´´½¨Ò»¸ö×é

**Ìáʾ£º**gitlabÉÏÃæÓÐÒ»¸öÏîÄ¿¸ú×éµÄ¸ÅÄÎÒÃÇÒª´´½¨Ò»¸ö×飬²Å¿ÉÒÔÔÚ´´½¨Ò»¸öÏîÄ¿¡£ÒòΪgitlabµÄ·¾¶ÉÏÊ×ÏÈÊÇipµØÖ·£¬Æä´ÎÊÇ×é

µã»÷Ï·½Create group

È»ºóÎÒÃÇÔÚ×éÀïÃæ´´½¨ÏîÄ¿

ÏÂÒ»²½£º

´´½¨Íê³ÉÖ®ºóËüÌáʾÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ökey¶ÔËü½øÐйÜÀí

ÎÒÃǵã»÷ÉÏÃæµÄREADMEÈ»ºóÎÒÃÇËæ±ãÔÚÀïÃæÐ´µã¶«Î÷

ÌîдÍê³ÉÎÒÃǵã»÷Ç°Ãæ½øÐв鿴

ÎÒÃÇÒª×öÃâÃÜÑéÖ¤£¬ÏÖÔÚÈ¥192.168.56.11¸´ÖÆÏÂÃæµÄ.ssh/id_rsa.pub

[www@linux-node1 ~]$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2 EAAAADAQAB AAABAQC8wfTSQ cSyhlsGYDSUtuxZNb 1Gl3VU56nAPux AEF2wP2ZWZ2 yva354ZdKOOb6rZx 2yZxqy5XIj7opBJPbhraXap + NtCH5qWyktR7dH19 RBmCS7vUGgvk/ 5RQC0mVFrC8cztBp0M /5HxMuhVir6mD1 rhbDvvaLL6S5y4gljzC1 Gr2VRHIb4Et9go/3 8c2tqMjYCike7 WWbFRyL9wTal6/ 146+ 9uREZ/r69TBTKrGuRq F44fROQP8/ ly02XFjlXyl6J5NnGTk 6AU855pwasX0W 9aNPce3Ynrpe 1TBTubmfQhrH1BwteEmg +ZXNRupxjumA +tPWfBUX +u51r/w7W/d4PD www@linux-node1

#Ìáʾ£ºÐèÒªÌáǰ×öÃØÔ¿ÈÏÖ¤

ÉèÖÃKeys

Ìí¼ÓÍêÖ®ºóÎÒÃǾͿÉÒÔʹÓÃwwwÓû§£¬¾Í¿ÉÒÔÀ­ÁË

µã»÷Projects Ñ¡ÔñSSH£¬ÎÒÃÇÒª½«´úÂëÀ­È¥ÏÂÀ´

[www@linux-node1 ~]$ cd /deploy/code/
[www@linux-node1 code]$ ls
web-demo
[www@linux-node1 code]$ rm -rf web-demo/
[www@linux-node1 ~] $ git clone gi t@linux-node1: web/web-demo.git
Cloning into 'web-demo'...
The authenticity of host 'linux-node1 (192.168.56.11)' 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 'linux-node1' (ECDSA) to the list of known hosts.
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
[www@linux-node1 ~]$ ls web-demo/
README.md

#git cloneÊǿˡµÄÒâ˼

ÎÒÃÇÀ´Ä£Ä⿪·¢¼ÌÐøÐ´´úÂëÌá½»

[www@linux-node1 ~]$ mkdir -p /web-demo
[www@linux-node1 ~]$ vim web-demo/index.html
[www@linux-node1 ~]$ cd web-demo/
[www@linux-node1 web-demo]$
[www@linux-node1 web-demo]$ ls
index.html README.md
[www@linux-node1 web-demo]$ git add *
[www@linux-node1 web-demo]$ git commit -m "add index.html"

*** Please tell me who you are.

Run

git config --global user.email " you@example.com"
git config --global user.name " Your Name"

to set your account's default identity.
Omit --global to set the identity o nly in this repository.

fatal: empty ident name (for <www@linux-node1.(none)>) not allowed

ÐèÒªÉí·ÝÑéÖ¤£º

[www@linux-node1 web-demo]$ git config --global user.email " you@example.com"
[www@linux-node1 web-demo]$ git config --global user.name "Your Name"
[www@linux-node1 web-demo]$ git commit -m "add index.html"
[master be8a547] add index.html
1 file changed, 169 insertions(+)
create mode 100644 index.html

git pushÃüÁîÓÃÓÚ½«±¾µØ·ÖÖ§µÄ¸üУ¬ÍÆË͵½Ô¶³ÌÖ÷»ú¡£ËüµÄ¸ñʽÓëgit pullÃüÁîÏà·Â¡£

[www@linux-node1 web-demo]$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior a fter the default changes, use:

git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

git config -- global push.default simple

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 7.66 KiB | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@linux-node1: web/web-demo.git
0c1d357..be8a547 master -> master

ÎÒÃǵÄgitlab°²×°ÔÚopt/gitlab

gitlabÅäÖÃÎļþ´æ·ÅÔÚetc/gitlab/gitlab.rb

#ÏÖÔÚgit ÐèÒª¼ÓÉÏÖ÷»úÃû£¬ÎÒÃÇ¿ÉÒÔÐÞ¸ÄÅäÖÃÎļþ£¬ÈÃËüʹÓÃIP½øÐзÃÎÊ

±à¼­ÅäÖÃÎļþ

[root@linux-node1 ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.56.11'


[root@linux-node1 ~]# gitlab-ctl reconfigure
#Ìáʾ£ºÐÞ¸ÄÍêÐèÒª´ÓÐÂÅäÖòŻáÉúЧ

ÎÒÃÇ´Óеǽ½øÐв鿴

ß×£¡ Ϊɶ»¹Ã»¸ÄÄØ£¡ ÎÒÃÇ´Óд´½¨Ò»¸öÏîÄ¿ÔÚÊÔÒ»ÏÂ

ÓÑÇéÌáʾ£º

¹ØÓÚGit¿ÉÒԲ鿴Ð첼˹²©¿Í or ÁÎÑ©·åGit

×Ô¶¯»¯ÔËά֮DevOps

DevOps£¨Ó¢ÎÄDevelopment£¨¿ª·¢£©ºÍOperations£¨¼¼ÊõÔËÓª£©µÄ×éºÏ£©ÊÇÒ»×é¹ý³Ì¡¢·½·¨ÓëϵͳµÄͳ³Æ£¬ÓÃÓÚ´Ù½ø¿ª·¢£¨Ó¦ÓóÌÐò/Èí¼þ¹¤³Ì£©¡¢¼¼ÊõÔËÓªºÍÖÊÁ¿±£ÕÏ£¨QA£©²¿ÃÅÖ®¼äµÄ¹µÍ¨¡¢Ð­×÷ÓëÕûºÏ¡£

ËüµÄ³öÏÖÊÇÓÉÓÚÈí¼þÐÐÒµÈÕÒæÇåÎúµØÈÏʶµ½£ºÎªÁ˰´Ê±½»¸¶Èí¼þ²úÆ·ºÍ·þÎñ£¬¿ª·¢ºÍÔËÓª¹¤×÷±ØÐë½ôÃܺÏ×÷

¼òµ¥µÄÀ´ËµDevOpsÊÇÒ»ÖÖÎÄ»¯£¬ÊÇÈÿª·¢¿ª·¢¡¢ÔËά¡¢²âÊÔÄܹ»Ö®¼ä¹µÍ¨ºÍ½»Á÷

×Ô¶¯»¯ÔËά¹¤¾ß£ºsaltstack¡¢jenkins¡¢µÈ¡£ÒòΪËûÃǵÄÄ¿±êÒ»Ñù£¬ÎªÁËÎÒÃǵÄÈí¼þ¡¢¹¹½¨¡¢²âÊÔ¡¢·¢²¼¸ü¼ÓµÄÃô½Ý¡¢Æµ·±¡¢¿É¿¿

Èç¹ûÔËά¶Ôgit²»Ê죬ÊÇÎÞ·¨×ö×Ô¶¯»¯²¿Êð¡£ÒòΪËùÓеÄÏîÄ¿¶¼ÊÜÖÆÓÚ¿ª·¢

Jenkins ½éÉÜ

JenkinsÖ»ÊÇÒ»¸öƽ̨£¬ÕæÕýÔË×÷µÄ¶¼ÊDzå¼þ¡£Õâ¾ÍÊÇjenkinsÁ÷ÐеÄÔ­Òò£¬ÒòΪjenkinsʲô²å¼þ¶¼ÓÐ

HudsonÊÇJenkinsµÄǰÉí£¬ÊÇ»ùÓÚJava¿ª·¢µÄÒ»ÖÖ³ÖÐø¼¯³É¹¤¾ß£¬ÓÃÓÚ¼à¿Ø³ÌÐòÖØ¸´µÄ¹¤×÷£¬HudsonºóÀ´±»ÊÕ¹º£¬³ÉΪÉÌÒµ°æ¡£ºóÀ´´´Ê¼ÈËÓÖдÁËÒ»¸öjenkins£¬jenkinsÔÚ¹¦ÄÜÉÏÔ¶Ô¶³¬¹ýhudson

Jenkins¹ÙÍø£ºhttps://jenkins.io/

°²×°

°²×°JDK

JenkinsÊÇJava±àдµÄ£¬ËùÒÔÐèÒªÏȰ²×°JDK£¬ÕâÀï²ÉÓÃyum°²×°£¬Èç¹û¶Ô°æ±¾ÓÐÐèÇ󣬿ÉÒÔÖ±½ÓÔÚOracle¹ÙÍøÏÂÔØJDK¡£

[root@linux-node1 ~]# yum install -y java-1.8.0

°²×°jenkins

[root@linux-node1 ~]# cd /etc/yum.repos.d/
[root@linux-node1 yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo
[root@linux-node1 ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@linux-node1 ~]# yum install -y jenkins
[root@linux-node1 ~]# systemctl start jenkins

#±¾ÎÄʹÓÃyum½øÐа²×°£¬´ó¼ÒÒ²¿ÉÒÔʹÓñàÒë°²×°¡£

а汾µÄjenkinsΪÁ˱£Ö¤°²È«£¬ÔÚ°²×°Ö®ºóÓÐÒ»¸öËø£¬ÐèÒªÉèÖÃÃÜÂëÖ®ºó²Å¿ÉÒÔ½âËø

Jenkins Web·ÃÎʵØÖ·£º192.168.56.11:8080

ÓÑÇéÌáʾ£ºjenkinsÈç¹û¸úgitlabÔÚһ̨·þÎñÆ÷ÐèÒª½«jenkinsµÄ¶Ë¿Ú½øÐÐÐ޸ģ¬ÐèÒª½«jenkinsµÄ8080ÐÞ¸ÄΪ8081

[root@linux-node1 ~]# cat /var/lib/jenkins/secrets/ initialAdminPassword
490a2f35a2df49b6b8787ecb27122a3a

¸´ÖÆÕâ¸öÎļþÏÂÃæµÄID£¬·ñÔò²»¿ÉÒÔ½øÐа²×°¡£

ÎÒÃÇÑ¡ÔñÍÆ¼ö°²×°¼´¿É

Ëü»á¸øÎÒÃǰ²×°Ò»Ð©»ù´¡µÄ²å¼þ

ÉèÖÃÓû§ÃûÃÜÂ룺

µã»÷±£´æ²¢Í˳ö

ÔçÆÚjenkinsĬÈÏÊDz»ÐèÒªµÇ½µÄ

 

ÎÒÃÇÏÈÀ´½éÉÜÒ»ÏÂjenkins»ù´¡¹¦ÄÜ

ÎÒÃǵã»÷н¨

ÕâÀï¾ÍÊǹ¹½¨Ò»¸öÏîÄ¿

Óû§½çÃæ£ºÖ÷ÒªÊÇһЩÓû§µÄ¹ÜÀí

¿ÉÒÔ¿´µ½µ±Ç°µÇ½Óû§¼°Óû§È¨ÏÞµÈ

ÈÎÎñÀúÊ·£º¿ÉÒԲ鿴µ½ËùÓй¹½¨¹ýµÄÏîÄ¿µÄÀúÊ·

#Ö®ËùÒԽй¹½¨£¬ÊÇÒòΪ¶¼ÊÇjava£¬ÒòΪÈç¹û²»ÊÇjava³ÌÐò¾ÍûÓй¹½¨Õâ¸ö´Ê¡£µ«ÊÇÎÒÃÇÒ²¿ÉÒÔ°ÑһЩ¹¤×÷³ÆÖ®Îª¹¹½¨

ϵͳ¹ÜÀí£º´æ·ÅjenkinsËùÓеÄÅäÖÃ

My Views£ºÊÓͼ¹¦ÄÜ£¬ÎÒÃÇ¿ÉÒÔ×Ô¼º´´½¨Ò»¸ö×Ô¼ºµÄÊÓͼ

¹¹½¨¶ÓÁУºÈç¹ûµ±Ç°ÓÐÊÓͼÈÎÎñ¶¼»áÏÔʾÔÚÕâÀï

¹¹½¨Ö´ÐÐ״̬£ºÏÔʾÔÚÕý¹¹½¨µÄÈÎÎñ

ϵͳ¹ÜÀí£º-ϵͳÉèÖÃ

ÉèÖÃJenkinsÈ«¾ÖÉèÖÃ&·¾¶

Jenkinsϵͳ¹ÜÀí±È½ÏÖØÒªµÄ¾ÍÊDzå¼þ¹ÜÀíÁË

#ÒòΪjenkinsËùÓеĶ«Î÷¶¼ÐèÒª¿¿²å¼þÀ´Íê³É£¬

µã»÷ÒѰ²×°¿ÉÒԲ鿴ÎÒÃǵݲװ

ÎÒÃÇÏ밲װʲô²å¼þ£¬ÎÒÃÇ¿ÉÒÔÑ¡Ôñ¿ÉÑ¡²å¼þ

ÎÒÃÇΪÁ˺ÍgitlabºÍÔÚÒ»Æð£¬ÎÒÃÇÐèÒª°²×°Ò»¸ö²å¼þ

²é¿´»¹¿ÉÒÔÈ¥jenkins¹ÙÍøÏÂÔØ£¬È»ºóÉÏ´«²å¼þ

ÒòΪºÜ¶à²å¼þÐèÒª·­Ç½²Å¿ÉÒÔ¼ÌÐøÏÂÔØ£¬jenkins»¹ÌṩÁË´úÀíµÄÉèÖÃ

»¹ÊÇÔÚ·þÎñÆ÷Ŀ¼Ï½øÐÐÉÏ´«²å¼þ
Ŀ¼·¾¶= /var/lib/jenkins/plugins/
Õâ¸öĿ¼ÏÂÊÇÎÒÃǰ²×°ËùÓеIJå¼þ

 

   
5664 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

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

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

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