企业级devops自动化部署学习 (1)gitlab安装与使用
持续集成流程说明
1、首先,开发人员每天进行代码提交,提交到Git仓库
2、然后,Jenkins从Gitlab中拉取项目源码,编译并打成jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库。
3、Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器。
4、最后,用户可以访问到容器
服务器准备:准备4台服务器,可以使用VMWare建4台虚拟机
虚拟机安装配置指引可以参考:
cnblogs.com/lrc123/p/16095016.html
本次按照上述流程图介绍服务器说明:
1、服务器1只装gitlab,专门用于存放代码
2、服务器2主要是使用jenkins进行持续集成,而向gitlab拉取代码,需要装git,向docker推送镜像,需要装docker
3、服务器3主要是用来存镜像,需要安装docker和harbor
4、服务器4主要是部署应用,由于需要向docker仓库服务器拉取镜像,所以需要装docker
配置如下:
名称 | IP地址 | 安装的软件 |
代码托管服务器(CentOS7-test001) | 192.168.80.133 | gitlab |
持续集成服务器(CentOS7-test002) | 192.168.80.134 | jenkins,jdk,maven,git,docker |
docker仓库部署服务器(CentOS7-test003) | 192.168.80.135 | docker,harbor |
生产部署服务器(CentOS7-test004) | 192.168.80.136 | docker |
一:安装gitlab
1、安装相关依赖:
yum -y install policycoreutils openssh-server openssh-clients postfix
2、设置postfix开机自启,并启动,postfix支持gitlab发信功能:
systemctl enable postfix && systemctl start postfix
3、 开放ssh以及http服务,然后重新加载防火墙列表 :
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
如果服务器关闭防火墙就不需要做以上配置
4、下载gitlab包并安装,此处我放在opt目录下
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm
5、安装gitlab
rpm -ivh gitlab-ce-14.1.0-ce.0.el7.x86_64.rpm
6、修改gitlab配置,gitlab访问地址和端口,默认为80,这里改为82
vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.80.133:82'
nginx['listen_port'] = 82
7、重载配置及启动gitlab
gitlab-ctl reconfigure #此命令花时几分钟
gitlab-ctl restart
8、把端口添加到防火墙
firewall-cmd --zone=public --add-port=82/tcp --permanent
firewall-cmd --reload
9、等待gitlab启动完成后即可完成安装,输入地址:192.168.80.133:82
二:gitlab的基本使用
1、更改密码。gitlab14安装好后,默认账户名是root,密码存放在配置文件:/etc/gitlab/initial_root_password下,这个文件将在首次执行reconfigure后24小时自动删除,此时我们拿到密码登录后修改密码
修改完密码后,就可以正常使用gitlab了。
2、创建用户组
3、创建用户并修改密码
为用户修改密码:
4、将用户添加到组:
Gitlab用户在组里面有5种不同权限:
Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交
Developer:可以克隆代码、开发、提交、push
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目
Owner:可以设置项目访问权限 - Visibility Level、删除项目、迁移项目、管理组成员
5、在用户组里创建项目
6、本地简单建一个hello_world的SpringBoot项目并上传到gitlab
1)将项目设置为受git管控
2)将项目添加到git
3)将项目提交到本地
4)配置远程仓库
该处的url目前我拿gitlab上的Http地址:
此处输入前面我们注册的用户账户和密码
5)将本地项目推送到远程仓库
在这里发现,使用我们创建的用户推送不了代码,原因是因为,我们gitlab的这个项目仓库地址没有默认的master分支,此时我们将推送用户改成admin即可
可以看到,代码已经推送到远程仓库成功,下面我们到gitlab查看:
本地项目成功推送到了gitlab仓库