Jenkins

CI&CD(持续集成/持续部署):

持续集成注重将各个开发者的工作集合到一个代码仓库中,通常每天会进行几次, 主要目 的是尽早发现集成错误,使团队更加紧密结合,更好地协作。

 持续交付的目的是最小化部署或发布过程中团队固有的摩擦, 它的实现通常能够将构建部 署的每个步骤自动化,以便任何时刻能够安全地完成代码发布(理想情况下)。

 持续部署是一种更高程度的自动化,无论何时代码有较大改动, 都会自动进行构建/部署。

 hudson

Jenkins:

Jenkins 是开源 CI&CD 软件领导者, 提供超过 1000 个插件来支持构建、部署、自动化, 满足任何项目的需要。

 官方文档:

 https://www.jenkins.io/zh/doc/ 下载 jenkiins: https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.222-1.1.noarch.rpm

实验环境:

在gitlab基础上,关闭防火墙和selinux

  1. 安装

复制jenkins包到client的/root下

进入/root目录,安装jenkins

[root@client ~]# rpm -ivh jenkins-2.222-1.1.noarch.rpm

  1. 修改配置文件(默认 jenkins 端口为 8080,如果同 gitlab 一起安装,需要修改端口)

[root@client ~]# vim /etc/sysconfig/jenkins

修改:

如果git端口号是80,jenkins的端口可以不用改

JENKINS_USER="root"    29行

JENKINS_PORT="8081"   56行

  1. 启动jenkins并设置开机自启

[root@client ~]# systemctl start jenkins

[root@client ~]# systemctl enable Jenkins

  1. 加快更新

[root@client ~]# vim /var/lib/jenkins/hudson.model.UpdateCenter.xml

更改:

<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/update-center.json</url>

vim /var/lib/jenkins/updates/default.json //可能没有这个文件

也可不做

修改:

https://www.google.com/

改为:

百度一下,你就知道

  1. 重启jenkins服务

[root@client ~]# systemctl restart jenkins

  1. 浏览器访问jenkins

http://192.168.8.6:8081/

  1. 查看密码

[root@client ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

复制加密密码字段,粘贴到 web

  1. 点击安装推荐插件——使用admin默认用户登录

  1. 复制插件包到虚拟机(注意:在线安装插件会非常慢)

解压复制内容到/var/lib/jenkins/plugins 下

[root@client ~]# cd /var/lib/jenkins/plugins/

解压

[root@client plugins]# tar zxvf jenkins-plugins.tar.gz

查看目录

[root@client plugins]# ls

将插件压缩包删掉

[root@client plugins]# rm -rf jenkins-plugins.tar.gz

移动并覆盖

[root@client plugins]# mv plugins/* ./

删除原有的plugins/目录

[root@client plugins]# rm -rf plugins/

查看目录共有几行

[root@client plugins]# ls -lh |wc -l

  1. 重启jenkins服务

[root@client plugins]# systemctl restart jenkins

  1. 修改admin用户密码

右上角--admin 点击下拉三角--Configure--Password 字段--修改密码--save 保存 重启服务:systemctl restart Jenkins

  1. 关联gitlab

点击左上角 logo--回到主页面--选择新项目“New Item”--填写项目名--选择项目 类型“Freestyle project”--save 保存

创建与服务器及 web 站点之间的互信

  1. Jenkins服务器跟web之间做互信

[root@client plugins]# ssh-keygen

  1. 查看公钥并复制到gitlab

[root@client plugins]# cat /root/.ssh/id_rsa.pub

登录gitlab

http://192.168.8.5   root管理员登录密码:123.com123

  1. Jenkins服务器根gitlab服务互信(双方都做互信)

Jenkins:ssh-copy-id root@192.168.8.5

IP为gitlab

gitlab:ssh-copy-id root@192.168.8.6

IP为jenkins

  1. 在jenkins测试

[root@client plugins]# git ls-remote -h git@192.168.8.5:yun71/web.git

  1. 配置项目--源代码管理--git--填写存储库网址(git@192.168.8.5:yun71/web.git) --报红字错误,则需要添加私钥认证--如果认证成功--save 保存

  1. 添加root用户及密码,gitlab的root用户

  1. 选择项目--左侧选择“build now”--下面构建历史出现蓝色标志--选择蓝色标志下 拉列表--console output--输出执行过程

  1. jenkins 服务器上查看/var/lib/jenkins/workspace 目录,会有项目同名文件夹,保 存 git clone 的所有代码

[root@client plugins]# cd /var/lib/jenkins/workspace/

[root@client workspace]# ls

[root@client workspace]# cd web

[root@client web]# ls

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐