jenkins持续集成和自动化部署
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
- 安装
复制jenkins包到client的/root下

进入/root目录,安装jenkins

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

- 修改配置文件(默认 jenkins 端口为 8080,如果同 gitlab 一起安装,需要修改端口)
[root@client ~]# vim /etc/sysconfig/jenkins
修改:
如果git端口号是80,jenkins的端口可以不用改
JENKINS_USER="root" 29行
JENKINS_PORT="8081" 56行


- 启动jenkins并设置开机自启
[root@client ~]# systemctl start jenkins
[root@client ~]# systemctl enable Jenkins

- 加快更新
[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 //可能没有这个文件
也可不做
修改:
改为:

- 重启jenkins服务
[root@client ~]# systemctl restart jenkins
- 浏览器访问jenkins

- 查看密码
[root@client ~]# cat /var/lib/jenkins/secrets/initialAdminPassword

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

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




- 复制插件包到虚拟机(注意:在线安装插件会非常慢)
解压复制内容到/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

- 重启jenkins服务
[root@client plugins]# systemctl restart jenkins
- 修改admin用户密码
右上角--admin 点击下拉三角--Configure--Password 字段--修改密码--save 保存 重启服务:systemctl restart Jenkins









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


创建与服务器及 web 站点之间的互信
- Jenkins服务器跟web之间做互信
[root@client plugins]# ssh-keygen

- 查看公钥并复制到gitlab
[root@client plugins]# cat /root/.ssh/id_rsa.pub

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



- Jenkins服务器根gitlab服务互信(双方都做互信)
Jenkins:ssh-copy-id root@192.168.8.5
IP为gitlab

gitlab:ssh-copy-id root@192.168.8.6
IP为jenkins

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

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



- 添加root用户及密码,gitlab的root用户


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




- 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

更多推荐
所有评论(0)