一:基本概念
1.CI/CD持续集成/持续部署
什么是持续集成(CI-Continuous integration)
持续集成是指多名开发者在开发不同功能代码的过程当中,可以频繁的将代码行合并到一起并切相互不影响工作。
什么是持续部署(CD-continuous deployment)
是基于某种工具或平台实现代码自动化的构建、测试和部署到线上环境以实现交付高质量的产品,持续部署在某种程度上代表了一个开发团队的更新迭代速率。
什么是持续交付(Continuous Delivery)
持续交付是在持续部署的基础之上,将产品交付到线上环境,因此持续交付是产品价值的一种交付,是产品价值的一种盈利的实现。
2.jenkins介绍
官网:https://www.jenkins.io/zh/doc/
jenkins是java语言编写的一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
2.1 gitLab 和github区别:
.GitHub 和 GitLab 都是基于 web 的 Git 仓库,使用起来二者差不多,它们都提供了分享开源项目的平台,
为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。
GitHub 作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,GitHub 同时
提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。
GitLab 解决了这个问题,你可以在上面创建私人的免费仓库。
GitLab 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub , 它有不少特色:
(1) 允许免费设置仓库权限;
(2) 允许用户选择分享一个 project 的部分代码;
(3) 允许用户设置 project 的获取权限,进一步提升安全性;
(4) 可以设置获取到团队整体的改进进度;
(5) 通过 innersourcing 让不在权限范围内的人访问不到该资源;
所以,gitLab可以部署到自己的服务器上,数据库等一切信息掌握在自己手里,适合团队内部协作开发。
2.2Gitlab安装
- 安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
- 启动ssh服务&设置为开机启动
systemctl enable sshd && sudo systemctl start sshd
- 设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
- 开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
如果关闭防火墙就不需要做以上配置
5. 下载gitlab包,并且安装
在线下载安装包:
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
安装:
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
- 修改gitlab配置
vi /etc/gitlab/gitlab.rb
修改gitlab访问地址和端口,默认为80,我们改为83
external_url 'http://服务器ip:83'
nginx['listen_port'] = 83
- 重载配置及启动gitlab
#这两个命令执行时间都有点长,2~5分钟
gitlab-ctl reconfigure
gitlab-ctl restart #重启gitlab
sudo gitlab-ctl stop #停止gitlab
- 把端口添加到防火墙
firewall-cmd --zone=public --add-port=83/tcp --permanent
firewall-cmd --reload
9.阿里云开放83端口安全组
启动成功和配置安全组之后,看到以下修改管理员root密码的页面,修改密码后,然后登录即可
2.3Gitlab添加组,创建用户,创建项目
1)创建组
使用管理员 root 创建组,一个组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,
不同的组就是公司不同的开发项目或者服务模块,不同的组添加不同的开发即可实现对开发设置权限的管理
- 在组里可以直接创建项目
3)创建用户
创建用户的时候,可以选择Regular或Admin类型
注:为创建的用户创建密码
4)将用户添加到组中
选择某个用户组,进行Members管理组的成员
Gitlab用户在组里面有5种不同权限:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM
可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限
5)创建了该组的用户后,就可以 git clone 改组的项目了
git clone http://服务器ip:82/hc_study_group/hc_study.git
2.4jenkins安装
下载网:https://www.jenkins.io/zh/download/
1.0 docker 方式
#下载
docker pull jenkins/jenkins:lts
#创建一个jenkins_home
mkdir -p /docker-data/jenkins_home
#给宿主机/docker-data/jenkins_home/授权
chmod -R 1000 /docker-data/jenkins_home/
#运行
docker run -di -p 8888:8080 -u root --name=docker-jenkins -p 50000:50000 -v /docker-data/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
2.0 验证jenkins 是否安装成功
防火墙 和阿里云安全组开放8888端口。登录 服务器ip:8888
3.0 jenkins 管理员密码获取
可以去jenkins 容器内部/var/jenkins_home/secrets/initialAdminPassword 目录获取,也可以通过挂载 出来的数据卷对应位置获取,也可以通过docker 运行容器获取
docker logs jenkins容器id/容器名
docker logs docker-jenkins
4.0 输入管理员密码后,点击安装推荐的插件即可。
5.0 创建管理员用户
6.0插件安装
6.1 SSH插件安装
6.2 SSH配置
6.2.1 添加凭证
6.2.2 配置SSH
7.0 配置jdk 和maven
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/65777.html