Jenkins介绍
Jenkins 只是一个平台,真正运做的都是插件。这就是 jenkins 流行的缘由,由于 jenkins 什么插件都有Hudson 是 Jenkins 的前身,是基于 Java 开发的一种持续集成工具,用于监控程序重复的工做,Hudson 后来被收购,成为商业版。后来创始人又写了一个 jenkins,jenkins 在功能上远远超过hudson。
一、什么是集成?
指的是代码由编译、发布和测试、直到上线的一个过程。java
二、什么是持续集成?
高效的、持续性质的不断迭代代码的集成工做。git
三、如何高效准确的实现持续集成
必不可少的须要一套能自动化、而且可视化的平台来帮助咱们。web
根据以上几点来看,Jenkins就是一个能够实现持续集成的平台。windows
四、为何是Jenkins来帮助咱们实现持续集成?
1)Jenkins是一个开源的、且基于JAVA代码开发的持续集成系统
由于含有很是丰富的插件支持,因此咱们能够方便的打通版本库、测试构建环境、线上环境的全部环节。而且丰富友好的通知使用者和开发、管理人员。安全
2)安装维护简单
安装Jenkins,不太复杂。并且支持通用的平台。ruby
3)Java应用经常使用
在企业的软件构建过程当中,JAVA的应用工程稍显复杂,因为复杂构建和代码上线、而且服务的重启。整个过程下来,消耗的时间较多,Jenkins却能很好的集成maven的编译方式,并且利用自动化的插件和自定义开发脚本的支持。因此目前普遍的应用于JAVA工程的持续集成平台。服务器
接下来用到的全部软件包大多数是从清华开源镜像站下载。ssh
一、安装gitlab,并登陆到web界面建立库,测试能够上传下载便可
可参考以前写的一篇博文持续集成之Gitlab安装与应用来安装部署gitlab,根据博文进行到刷新web界面的库页面,可以看到test测试文件上传成功便可maven
一、安装Jenkinstcp
[root@jenkins ~]# wget https://mirrors-i.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.172-1.1.noarch.rpm [root@jenkins ~]# rpm -ivh jenkins-2.172-1.1.noarch.rpm [root@jenkins ~]# rpm -ql jenkins #查看其相应文件的存放路径 /etc/init.d/jenkins /etc/logrotate.d/jenkins /etc/sysconfig/jenkins /usr/lib/jenkins /usr/lib/jenkins/jenkins.war /usr/sbin/rcjenkins /var/cache/jenkins /var/lib/jenkins /var/log/jenkins [root@jenkins ~]# sed -i 's/JENKINS_PORT="8080"/JENKINS_PORT="8081"/g' /etc/sysconfig/jenkins # 修改其监听端口 [root@jenkins ~]# /etc/init.d/jenkins start # 启动jenkins [root@jenkins ~]# netstat -anput | grep 8081 # 肯定端口在监听 tcp6 0 0 :::8081 :::* LISTEN 49094/java
二、配置Jenkins的web界面
客户端访问Jenkins服务器的监听端口8081,而后根据提示复制其管理员密码。以下:
[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword 86d28c93461d43f9a06f5822f61fd871
接下来能够安装一些基础插件,点击它的推荐安装便可,以下(我直接上传我这里的包到指定目录,就能够跳过这个步骤了,能够下载个人包(提取码:357v),进行和我同样的操做):
我没有安装它的推荐插件,我选择如下的方式安装:
[root@jenkins ~]# tar zxf jenkins-plugins.tar.gz -C /var/lib/jenkins/ [root@jenkins ~]# /etc/init.d/jenkins restart
注意:若使用我这种方式安装,那么再次访问时须要断开外网。
通过上述配置,便可看到Jenkins的工做页面,以下:
三、配置Jenkins拉取Gitlab的仓库代码
[root@jenkins ~]# cat ~/.ssh/id_rsa #复制查看到的全部内容,包括开头和结尾的“---”行 -----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEAt7+/JKecuR1UbXsRxwD7H5Ndxjm3yH4sSWj9CFLAangDb4LU jRFy9jRGHT6g0FbfHHlL/PE41NyV/W1aFdZLDCMN3M5NC8+I3JB+38uslPyDKJWC Xt0CWKZyo+FRTXo3baYllL8QMlhSoDCGqLHz52AQzM2/+eGemQP4Kvax8a5kpyqa EnWlEbS/+oJSgUl4H6zqTauAncrYpggYkYmhipSAKS011KBZsXtzVQRToRrmhKJB 8eeAFaUdkeou6LGDoa93oR9bDEaeNqM+hc/xcwhtxf4+wc1BzsxKeVdv7ZdwjjqU CZ+FWhjajwFqn5GL+HubGYQqODlqe5mQoS15RQIDAQABAoIBAHCcxmOLieR1kjmq tEF3W3CFm3ISC42HrlKrUnAYby6RMOHVl7iBGijD7ribmmk05HYJ7MUvfToPmqj/ rLc3ZzUgAq3xjYyQe3tZ3zf/Fl0UyLlFr+m9n2N/V0ESpQZLwc6kheG8mwuPz8u3 EcAvl6CU4pbx/hcB7HYw1ZZXLMVFpeEFWG8PqOdhgJNujRWFHOlorhExdzj02pHR okaN2tjGVnyf6dRnMw0TIsrZwyK26fNUScsTRPuBDAL/+zdkb2flyeb1ALz4m1Sv f8G7sepaf/mwaxqv/zshS/mWbJTHrh1nTjdhINOA1MJtVZ0UjhOZDjeM5LZsiz4V 7yRuxt0CgYEA78Tgw881lnRjfeqozFoIjeTTWib+4+FMXI/+XVm6XiotfHXtIuV5 fo4uYCErI8+wS060wMk/e7HEXyZktqI3a8zRibcbvBNw2NnoXCn5Zo1KTgJ8XiAr NgBFT30v9sx6NCjBmPQGAnIA8OCsNXb5pceIGb2Z/vTG3YChL2o4ryMCgYEAxDAP GbAEV4+0+zs3MfTJCRaKm+LI1RcGl4booc4Jf0kRK/NNsrOw9wpNXNgtnO7RapWG hhO2P9BNBgJa78ruYffm5f/lS/yK1vbsgdCQMrxps8QxdJCBldkD2NkfKsnu1gPU wHrp9yIvgbE51RKAQhLY6lYm9bJhVmKx4PKksHcCgYEA18ii0/aW7rn+lGLs2USp 8DGg+MChoqqv05oPvSm0rWxeFWX4LfDBv+Dr4b3YGlme+pdx2xMDXConZc6i0y74 m77wUXWGs2P3qmGqWc+40c+UsNJR5VAkM2xY9GnhEccCsBCB80qiYe8B48b/lPpn QQhq92eIwUi/9Lb/2TFKpGsCgYEAvME4ZhCRvOUIzYaljizjlxjW9zB05YAn2XX1 MGgZfxt/p/eI09xK8QQ6do+PIyQq3A9MxIcGm9L/qD5v27I1NJDc2IEhzcAGnNgp qKRPeGEKmeizZGD8LH4FU4dikzqBzesVsLMRk7KSXodzCuun9upHRP7qsQ2U1RZT 6gfKJ/UCgYALae1Yao9fTdwryBlpnLJjf2RGGzECueqE6Px/kWuEP62aRJLUWHP2 bfyZ6bYlkj5DMWb8WNlOz8KVOOIuYIyCwJSqXmxvkC5S7ZAHs7bNC6ZA7zLgDxIa bYW+XbH/zhrkJ0fSPiql690kVu/9ajPpzu/biBkPaeqoUaeyFJKKiA== -----END RSA PRIVATE KEY-----
能够看到如下页面便可说明配置无误:
#终端查看本地同步过来的文件: [root@jenkins ~]# ls /var/lib/jenkins/workspace/web1 README.md test.txt [root@jenkins ~]# cat /var/lib/jenkins/workspace/web1/test.txt aaaa
接下来就是这篇文件的关键部分了。
在进行下面的配置前,若为了方便,能够先下载(提取码:357v)我提供的插件
而后你会看到一些报红的提示,不用在乎,下拉页面,以下:
依次上传我提供的包,顺序以下:gitlab-oauth====>>gitlab-plugin ====>> windows-slaves ====>>ruby-runtime ====>>gitlab-hook
插件上传完成后
这里我附加一下,若是想要在线安装插件,能够更改其插件来源为清华大学的Jenkins镜像站的URL,这里附加一个更改方法的连接,自行参看进行更改便可。
修改过程以下:
附加内容至此结束
因为接下来多数操做是点点点,因此就不截图了,只会截比较关键的图。
依次点击:系统管理===>>全局安全配置===>>受权策略,而后进行如下操做:
依次点击:系统管理===>>系统设置,下翻找到gitlab,而后进行如下操做:
而后进行如下操做:
#在终端生成令牌并复制: [root@jenkins ~]# openssl rand -hex 10 #复制下面的字符串 5d1df0a52b307e432844
回到Gitlab的web页面,进行如下操做:
接下来须要去Jenkins找到咱们所需的URL
如下操做在Jenkins的web页面进行操做:
看到上述内容后,咱们须要对Jenkins的URL进行拼接,大概是Jenkins的访问地址+/job....=身份验证令牌码。我这里拼接后的的以下:http://192.168.171.134:8081//job/web1/build?token=5d1df0a52b307e432844
而后回到gitlab的页面,输入Jenkins的URL:
添加后,下拉页面,点击以下以便测试:
至此,持续部署便安装完成了,接下来就是测试了,在终端上提交代码到gitlab上,查看Jenkins有没有自动同步,以下:
[root@jenkins ~]# cd test1/ [root@jenkins test1]# echo "abcd" > chixu.txt [root@jenkins test1]# git add chixu.txt [root@jenkins test1]# git commit -m "chi xu bu shu test" [master 52a11ce] chi xu bu shu test 1 file changed, 1 insertion(+) create mode 100644 chixu.txt [root@jenkins test1]# git push origin master Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 303 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To git@192.168.171.134:root/test1.git 1da454a..52a11ce master -> master
Jenkins能够看到如下,便可说明持续部署配置完成了。以下:
#本地查看测试 [root@jenkins test1]# cat /var/lib/jenkins/workspace/web1/chixu.txt abcd