一、gitlab简介
Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不能把团队内部的智慧总放在别人的服务器上吧?简单来说可把Gitlab看作个人版的Github。
二、GitLab安装部署
方式1:二进制包安装
-
安装相关依赖项
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 # 如果关闭防火墙了就不需要做以上配置
-
下载gitlab包,并且安装
# 在线下载安装包 wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-13.6.4-ce.0.el6.x86_64.rpm # 安装 rpm -i gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm
-
修改gitlab配置
vi /etc/gitlab/gitlab.rb
修改gitlab访问地址和端口,默认为80,我们改为88
external_url 'http://192.168.66.100:88'
nginx['listen_port'] = 88
-
重新配置及启动gitlab
gitlab-ctl reconfigure gitlab-ctl restart
-
把端口添加到防火墙(如果已经关闭防火墙,此处可忽略)
firewall-cmd --zone=public --add-port=88/tcp --permanent firewall-cmd --reload
启动成功后,看到以下修改管理员root密码的页面,修改密码后,然后登录即可
注意:
-
1、执行
gitlab-ctl start
来启动gitlab的服务 -
2、首次登录Gitlab需要重置密码,用户是root,设置密码后,就可以登录成功,(密码:shizhenxing)
-
3、gitlab会有很多的组件,如nginx等,所以就涉及到如何查看日志信息,如果是查询所有的log信息,执行的命令是:
gitlab-ctl tail
;
假设查询nginx的log,执行的命令为:gitlab-ctl tail ${nginx}
方式2:Docker快速部署GitLab
sudo docker run --detach \
--hostname gitlab.szx.top \
--publish 443:443 --publish 80:80 --publish 222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
detach:后台运行、hostname:域名
publish:容器端口号与宿主机端口号映射关系 。 宿主机端口:容器端口
name:启动镜像的名称
restart always:重启方式、遇见服务器宕机、停电等会自动重启
volume:加载数据卷,目录映射。 服务器本地目录:镜像内目录
三、GitLab完全卸载
1、停止gitlab
gitlab-ctl stop
2、卸载gitlab(注意这里写的是gitlab-ce)
rpm -e gitlab-ce
3、查看gitlab进程
ps aux | grep gitlab
4、杀掉第一个进程(就是带有好多.............的进程)
杀掉后,在ps aux | grep gitlab确认一遍,还有没有gitlab的进程
5、删除所有包含gitlab文件
find / -name gitlab | xargs rm -rf