前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >安装部署Jenkins从Git获取代码

安装部署Jenkins从Git获取代码

作者头像
星哥玩云
发布2022-07-24 11:51:16
6760
发布2022-07-24 11:51:16
举报
文章被收录于专栏:开源部署

一:持续集成的概念:

1.1:总体的概括

代码语言:javascript
复制
持续集成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

代码语言:javascript
复制
# 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.zipmv 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 

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
持续集成
CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档