设为首页 收藏本站
查看: 1287|回复: 0

[经验分享] 持续集成①安装部署jenkins从git获取代码

[复制链接]

尚未签到

发表于 2018-1-7 17:17:23 | 显示全部楼层 |阅读模式
  持续集成①安装部署jenkins从git获取代码
  一:持续集成的概念:
  1.1:总体的概括
  

持续集成Continuous Integration  
持续交付Continuous Delivery
  
持续部署Continuous Deployment
  

  1.2:什么是持续集成:
  持续集成是指开发者在代码的开发过程中,可以频繁的将代码部署集成到主干,并进程自动化测试
  1.3:什么是持续交付:
  持续交付指的是在持续集成的环境基础之上,将代码部署到预生产环境
  1.4:持续部署:
  在持续交付的基础上,把部署到生产环境的过程自动化,持续部署和持续交付的区别就是最终部署到生产环境是自动化的。
  1.5:关于安全:OWASP:每年发布top 10web漏洞:
  top1:注入攻击漏洞,例如SQL,OS 以及 LDAP注入。这些攻击发生在当不可信的数据作为命令或者查询语句的一部分,被发送给解释器的时候。攻击者发送的恶意数据可以欺骗解释器,以执行计划外的命令或者在未被恰当授权时访问数据。
  top2:失效的身份认证和会话管理:与身份认证和会话管理相关的应用程序功能往往得不到正确的实现,这就导致了攻击者破坏密码、密匙、会话令牌或攻击其他的漏洞去冒充其他用户的身份。
  top3:跨站脚本(XSS):当应用程序收到含有不可信的数据,在没有进行适当的验证和转义的情况下,就将它发送给一个网页浏览器,这就会产生跨站脚本攻击(简称XSS)。XSS允许攻击者在受害者的浏览器上执行脚本,从而劫持用户会话、危害网站、或者将用户转向至恶意网站。
  相关资料:http://www.owasp.org.cn/owasp-project/download/mobile-top-10-2013-2
  二:安装部署持续集成工具jenkins:
  2.1:安装部分:
  2.1.1:执行安装:
  下载jdk-8u111-linux-x64.rpm
  

# rpm -ivh jdk-8u111-linux-x64.rpm  

  
# vim
/etc/profile  

  
export JAVA_HOME
=/usr/java/jdk1.8.0_111  
export PATH
=$JAVA_HOME/bin:$PATH  

  安装jenkins
  方法①yum方式安装
  

# cd /etc/yum.repos.d/  
#
wget http://pkg.jenkins.io/redhat/jenkins.repo  
# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
  
# yum install -y jenkins
  
# systemctl start jenkins
  

  方法②通过war包的方式安装下载地址:http://updates.jenkins-ci.org/download/war/2.60.1/jenkins.war
  

unzip apache-tomcat-8.0.37.zip  
mv apache-tomcat-8.0.37 /usr/local/
  
cd /usr/local
  
ln -s /usr/local/apache-tomcat-8.0.37 /usr/local/tomcat
  
useradd jenkins
  
# 将jenkins.war放到/usr/local/tomcat/webapps目录下,解压
  
unzip -d jenkins jenkins.war
  
chown -R jenkins.jenkins /usr/local/apache-tomcat-8.0.37
  
bin/startup.sh
  

  2.1.2:打开web界面:第一次打开要输入随机生成的密码:
  http://192.168.3.199:8080/jenkins
  查看密码
  

$ cat /home/jenkins/.jenkins/secrets/initialAdminPassword  
8743f91ff1474a85a0abcd841fc74eb6
  


  输入密码点下确认之后选择插件,选择默认安装插件即可,此过程需要一段时间,而且根据网络不同有些插件安装不成功,但是之后可以自己再安装即可

  报错:
  An error occurred
  An error occurred during installation: No such plugin: cloudbees-folder

  解决办法:
  下载cloudbees-folder.hpi放在目录/usr/local/tomcat/webapps/jenkins/WEB-INF/detached-plugins/下,重启tomcat即可
  设置用户名密码

  3.1配置邮件通知,系统管理–系统设置
  添加管理员邮箱,添加邮件

  点击保存或测试邮件,系统会给目标邮箱发送一封测试邮件:


  安装gitlab插件,系统管理–管理插件–可选插件

  插件安装界面,会额外安装一些依赖关系的插件,jenkins基于ruby开发,所以会有ruby环境:

  在gitlab管理界面将用户添加到一个项目,下一步要用此用户拉取项目代码
  三:使用jenkins:
  3.1:添加一个认证用户,拉取git代码的时候使用:

  创建任务 --> 构建一个自由风格的软件项目


  项目描述信息:

  配置git项目地址,我们先进行其他配置,等会再继续配置git相关的选项

  系统管理 --> Global Tool Configuration




  配置deploy-key
  如下配置,jenkins服务器上root用户生成密钥对
  

[iyunv@node1 ~]# ssh-keygen -t rsa  
Generating public
/private rsa key pair.  
Enter
file in which to save the key (/root/.ssh/id_rsa):  
Enter passphrase (empty
for no passphrase):  
Enter same passphrase again:

  
Your>in /root/.ssh/id_rsa.  
Your public key has been saved
in /root/.ssh/id_rsa.pub.  
The key fingerprint is:
  
bf:1e:4d:b3:0f:fb:8b:
71:cd:ef:d3:70:69:a4:46:ff root@node1.chinasoft.com  
The key
's randomart image is:  
+--[ RSA 2048]----+
  
| |
  
| |
  
| |
  
| . . |
  
| S + + .|
  
| . o =.*.|
  
| o * oo=|
  
| o B .E|
  
| .o o.+o+|
  
+-----------------+
  
[iyunv@node1 ~]# cat .ssh/id_rsa.pub
  
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC3vhfbA4NdkP8g1WVyYkw93f1PZ04nWoyFnoerC9b40jIY5px+tkugdy/RZ3/bp4hMC5yNgV1S25Tm8RpzBJMp7pbJz8dO+LCKqUnXq9Eh0QhsZE0xlQN+J4awy9YIGiD2nFg7k/ZzeAtQRzNryrrPnKaWpXtg7tMGGTWBjeyLAVuqCOMU7euY94G26UmVfjDLIJkcJqB+8dwvodW3wpmUER32qVPKZLnSYSOCfoNed+P4Eujs5PBCLuzFvGyiDhY2Pwrk/4S11jWUa7TJItfoPXzeGc/ujaJi/o24dt8VXeFa/Rm4wywYLNW3TRjXy1mPpdVlob3701MMQ0bf3qPv root@node1.chinasoft.com
  

  gitlab上配置web-demo项目设置private deploy key

  把key复制进去,同时title起一个简单明了的名字

  在jenkins服务器192.168.3.199上测试下是否能够正常获取代码
  

[iyunv@node1 tmp]# git clone git@192.168.3.198:web/web-demo.git  
Cloning into
'web-demo'...  
The authenticity of host
'192.168.3.198 (192.168.3.198)' can't be established.  
ECDSA key fingerprint is 9d:60:c3:8e:49:72:e8:9c:c0:d6:c8:d2:f1:b6:3a:74.
  
Are you sure you want to continue connecting (yes/no)? yes
  
Warning: Permanently added '192.168.3.198' (ECDSA) to the list of known hosts.
  
remote: Counting objects: 79, done.
  
remote: Compressing objects: 100% (79/79), done.
  
remote: Total 79 (delta 17), reused 0 (delta 0)
  
Receiving objects: 100% (79/79), 1.18 MiB | 0 bytes/s, done.
  
Resolving deltas: 100% (17/17), done.
  

  jenkins拉取代码没问题,继续配置jenkins的认证,这里应该输入私钥

  复制jenkins拉取git代码服务器root的私钥
  

[iyunv@node1 ~]# cat .ssh/id_rsa  

-----BEGIN RSA PRIVATE KEY-----  
MIIEpAIBAAKCAQEAt74X2wODXZD
/INVlcmJMPd39T2dOJ1qMhZ6HqwvW+NIyGOac  
frZLoHcv0Wd
/26eITAucjYFdUtuU5vEacwSTKe6Wyc/HTviwiqlJ16vRIdEIbGRN  
MZUDfieGsMvWCBog9pxYO5P2c3gLUEcza8q6z5ymlqV7YO7TBhk1gY3siwFbqgjj
  
FO3rmPeBtulJlX4wyyCZHCagfvHcL6HVt8KZlBEd9qlTymS50mEjgn6DXnfj
+BLo  
7OTwQi7sxbxsog4WNj8K5P
+EtdY1lGu0ySLX6D183hnP7o2iYv6NuHbfFV3hWv0Z  
uMMsGCzVt00Y18tZj6XVZaG9
+9NTDENG396j7wIDAQABAoIBAEHMfCR9HJTsMMDk  
SmDs3JqnHWhK
+UzUe0/6VmEla0VNmI0cQFyMEYcUR3Z41uulEgURf22ZLv9WDPuq  
yar4r26rtynsE1avbiEpwHzQVaMDhT2zqYUg9NA
/fVdgl3PtT3KgyGQFd5MgIQUN  
ileGkOF6GpoGBqnOvJkJfAS5
+0RHi8EZ8RcufNExgan5QF42dtKNWOEdgZIp0+WY  
jmI73YEpIadQzKxjL6PCOUmFAjfuNllw3It5QLePvYYlQeWKkl8QdROOADzOxgoj
  
6zCdzGo6ZqP4vK8gGioT7UybH1WJoN8of1ZBenKyT4
+TagQYwqV0LXIpVBkHKgdD  
5bxZIPkCgYEA4giWHweLYxmkZIXDx5VrOjIPmzTFqSfDMI9rDFQt57AbIr0hM4BW
  
6qmViWwuc9t28cLSXv
+0FtycIfs4co8RvMinIMLykWddX8x3sniCr2+Pgn/G+RgQ  
FK36wN0dVZwwr
/6oPeIDCJlr4AqhDAJLJkcbRjc5i8kR9OPHIvkPJjsCgYEA0Bou  
cmeOGYtrCW6t88xnmR26Sk8ybNWUdpju9SpEeCdz4jJnZC29AJ3qg8LilG0sDS
/y  
0cNT
/iMP8x6FPeFqJnhI/l4C1H5WEqult/thMl1bZ+RFEO92EUcKEXZep0yu5Txr  
6bHZzCnp9cYe56z9qsGk064LR2N9TR16xAzeud0CgYEArx0B2NZKeaNDBhHPxI8Q
  

/IwOJSs0O0Gv6a4iu/F3gviffUFTOIgkTjbFwCqMrnuHYfOSccDeb5vIZlcvuyj2  
D
/DP8gS2UknnQDGzRhQxAuOGJg8CQrcOtka3brWfZVTVL3Q2OYMg4Iej2HXDoP8h  
42zRR4u
/THmhLL1O6NxVjUMCgYBslKyVbuja9T61HjXPVmDbqIIyEZ6a4NnlA6jy  
7Mnq85LofCosQB00vDDH7SCyF0B75P
/KaSNjH8JLtSoKfpoXVn2nkz/gxcZ9WWhP  
Ve
+CCuoNjDJpQriVDT74m42Jt14uJ9eaiPy+JUR4w5YOhdmZhg5NkKs75XJUkUQk  
FR8FVQKBgQDOWXJYF3VEYdCD1qIy
/CsY3s4ARD9kery+5aOCu6TNd6auYEfqxsev  
ie1jD
+cvAgVR1aZ5aP3C8jEYhZa4xgn1+hxfRLWs79uMYnXXNGJ+FxKftDyhuV+m  
efEQrUf8jh4MofW9Ee6Z7YjitIRY7SQ
+kZl2Xms+QZlJotBzTG2DSA==  
-----END RSA PRIVATE KEY-----
  


  添加描述,点击OK
  继续编辑配置

  这样就不报错了,下面还可以指定从哪个分支拉取,默认从master拉取,有些公司使用release分支

  源码浏览器,去gitlab上找到http的url:http://192.168.3.198/web/web-demo.git
  找出gitlab的版本,输入url和版本,版本只支持2位,拉到最下面保存
  

[iyunv@web01 ~]# rpm -qa|grep gitlab  
gitlab
-ce-8.10.5-ce.0.el7.x86_64  

  点击立即构建,查看控制台,可以看到构建的详细输出


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432645-1-1.html 上篇帖子: 【转】手把手教你利用Jenkins持续集成iOS项目 下篇帖子: jenkins svn源码管理小记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表