持续集成①安装部署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/profileexport 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用户生成密钥对

[root@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 identification has been saved 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+| +-----------------+ [root@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上测试下是否能够正常获取代码

[root@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的私钥

[root@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位,拉到最下面保存

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

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

转载于:https://www.cnblogs.com/jimcsharp/p/8576461.html

【CentOS】安装部署jenkins从git获取代码[转]相关推荐

  1. Jenkins从svn获取代码报”E170001“异常问题解决

    使用jenkins 2.46.2,实现从svn获取代码并进行sonar扫描的功能,在取代码的时候报错了,信息如下: Caused by: org.tmatesoft.svn.core.SVNAuthe ...

  2. git获取代码,拉取最新代码,更新代码等

    有句话说的很好:git是弓,我们的代码是箭,github就是靶子.我们需要把自己的代码存放到github的仓库上. 下图为截取的阮一峰博客的关于git常用命令总结的一张图片: 1.一开始从零获取代码 ...

  3. CentOS安装部署Graylog

    临时接到一个任务,在服务器上安装Graylog 日志监控系统 Graylog是一个开源的日志聚合.分析.审计.展现和预警工具.功能上和ELK类似,但又比ELK要简单,依靠着更加简洁,高效,部署使用简单 ...

  4. docker 安装部署 Jenkins 2.322

    文章目录 一.镜像容器 1. 安装docker 2. 镜像搜索 3. 远程拉取镜像 4. 创建挂载目录 5. 修改权限 6. 启动容器 二.配置修改 2.1. 镜像地址 2.2. 核查url 2.3. ...

  5. Centos安装(更新)git(亲测有效)

    Centos 6.5默认安装的是git 1.7.X 版本,使用过程中会有一些奇怪的问题,对于用户名.密码支持不是很友好. 将Centos6.5上的git更新到2.0.5,方法如下: 1.安装编译git ...

  6. centos安装部署Swarm Bee V0.5.3教程

    创建目录 mkdir -p /mnt/beecd /mnt/bee 1.首先jq安装: yum install epel-release yum list jq yum install -y jq 2 ...

  7. centos 安装部署 zabbix3

    1.安装PHP Zabbix 3.0对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7 rpm -ivh ...

  8. CentOS安装部署FFmpeg

    一.把安装包导入服务器 二.解压 (1)tar -zxvf yasm-1.3.0.tar.gz 进入yasm-1.3.0文件夹: cd yasm-1.3.0 安装: ./configure make ...

  9. 前端学习(2488):使用git获取代码

最新文章

  1. python字符串常量_python教程---字符串常量ascii_letters、punctuation、digits、whitespace等...
  2. QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题
  3. 安装deepin后桌面以及窗口特效美化:破碎效果
  4. cake-build -.Net Core 跨平台构建自动化系统。
  5. 针对新手的Java EE7和Maven项目-第4部分-定义Ear模块
  6. android 富文本编辑器_富文本编辑器原理探索
  7. java的递归算法_如果要用Java实现算法,一定慎用递归
  8. mysql client version_下载mysqlclient问题报错
  9. FFPLAY的原理(三)
  10. [编程题]vivo智能手机产能
  11. 表上作业法-运输问题(Java)
  12. 中文编程——函语言概念
  13. 如何在csdn写博客
  14. IOS软键盘弹起,顶起页面使其脱离文档流,input失焦后,留下空白问题解决
  15. R语言期末试题【二期补充】-重庆工商大学-统计学课程
  16. 马尔可夫链(Markov chain)的基本认识
  17. 简洁好用的Geek Unіnstaller
  18. 虚拟实习项目技术架构mal总结
  19. matlab likelihood,Matlab做空间面板模型log-likelihood为NAN怎么办
  20. 5GNR漫谈8:CSI-RS/TRS/SRS参考信号

热门文章

  1. iconfont 图标宽高出问题_细节猎人04期 | PPT图标的分类和使用注意事项 上篇
  2. 如何删除写保护的文件_如何找回已删除或永久删除的Office Excel文件
  3. 【springboot】启动时指定lib目录
  4. ws配置 zuul_SpringCloud系列研究---服务网关zuul
  5. java 正则表达式 替换字符串img标签的路径_python面试题汇总第06期-正则表达式(内附7题及答案)...
  6. python定义x_Python 定义函数(示例代码)
  7. mysql 南邮ctf_南邮ctf web
  8. 判断字符为空_49. 把字符串转换成整数(剑指offer)
  9. 如何获取某个标签下所有的元素id_D3库实践笔记之元素定位与数据绑定 |可视化系列33...
  10. 使用github上已有的开源项目