22.13 搭建git服务器
22.14/22.15 安装gitlab
22.16 使用gitlab
22.17 gitlab备份和恢复
22.13 搭建git服务器
github毕竟是公开的,而私有仓库又得花钱买。所以我们可以想办法搭建一个私有的,只自己公司使用的。可以使用Gitlab,也可以自己搭建一个命令行的git服务器。
步骤
在服务端上
1.yum安装git
1 | [root@kun03 ~]# yum install -y git |
2.创建git用户
1 | [root@kun03 ~]# useradd -s /usr/bin/git-shell git |
设置/usr/bin/git-shell
,目的是为了不让git用户远程登陆
3.进入git用户目录中创建存放公钥的目录和文件并设置权限
1 | [root@kun03 ~]# cd /home/git/ |
4.把客户端的公钥存放在服务端的/authorized_keys上
1 | [root@kun02 ~]# ssh git@192.168.80.102 ##远程登录服务端,显示不允许登录,但实际上已经可以和服务端通讯 |
5.创建存储git的仓库
1 | [root@kun03 git]# mkdir /data/gitroot |
6.在该仓库下创建裸仓库
1 | [root@kun03 gitroot]# git init --bare sample.git ##创建裸仓库sample 仓库一般用.git结尾 |
7.更改裸仓库的属组
1 | [root@kun03 gitroot]# chown -R git:git sample.git/ |
在客户端上
平时git服务器是不需要开发人员登录修改代码的,它仅仅是充当着一个服务器的角色,就像github一样,平时操作都是在我们自己的pc上做的
1.克隆服务端的仓库到本地
1 | [root@kun02 ~]# git clone git@192.168.80.102:/data/gitroot/sample.git |
2.新建文件并推送到远程服务端
1 | [root@kun02 sample]# echo "aaa" > 1.txt |
22.14/22.15 安装gitlab
一般公司都是使用gitlab来托管代码的。官网 https://about.gitlab.com/
我们可以把代码托管在他的平台上,也可以在服务器上使用gitlab搭建自己平台
官网要求服务器内存不少于4G
官网安装方法 https://about.gitlab.com/installation/#centos-7
国内镜像安装方法 https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/
步骤
使用国内镜像安装
1.创建gitlab-ce.repo
1 | [root@kun09 ~]# vim /etc/yum.repos.d/gitlab-ce.repo |
添加下面代码1
2
3
4
5[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
2.安装makecache和gitlab-ce
1 | [root@kun09 ~]# yum makecache |
3.自动加载配置
1 | [root@kun09 ~]# gitlab-ctl reconfigure |
gitlab服务操作
格式:gitlab-ctl stop/restart/start/status
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[root@kun09 ~]# gitlab-ctl status
run: alertmanager: (pid 31211) 39s; run: log: (pid 23701) 3848s
run: gitaly: (pid 31219) 39s; run: log: (pid 23647) 3851s
run: gitlab-monitor: (pid 31229) 39s; run: log: (pid 23666) 3850s
run: gitlab-workhorse: (pid 31232) 38s; run: log: (pid 23628) 3851s
run: logrotate: (pid 31238) 38s; run: log: (pid 23670) 3850s
run: nginx: (pid 31244) 37s; run: log: (pid 23627) 3851s
run: node-exporter: (pid 31248) 37s; run: log: (pid 23646) 3851s
run: postgres-exporter: (pid 31255) 36s; run: log: (pid 23714) 3848s
run: postgresql: (pid 31260) 36s; run: log: (pid 23608) 3852s
run: prometheus: (pid 31270) 35s; run: log: (pid 23680) 3850s
run: redis: (pid 31275) 35s; run: log: (pid 23609) 3852s
run: redis-exporter: (pid 31280) 34s; run: log: (pid 23665) 3850s
run: sidekiq: (pid 31282) 34s; run: log: (pid 23607) 3852s
run: unicorn: (pid 31290) 34s; run: log: (pid 23606) 3852s
浏览器上访问192.168.80.108来访问gitlab,管理员用户root ,第一次登录需要我们填写密码
输入root 新密码后就可以进入gitlab页面
gitlab命令 https://www.cnyunwei.cc/archives/1204
22.16 使用gitlab
一般公司都是使用域名来登录gitlab,可以使用带公网ip的Nginx来代理内网的gitlab服务器。因为安装gitlab的时候就已经自动安装了Nginx,Nginx的配置路径在/var/opt/gitlab/nginx/conf/
1
2[root@kun09 ~]# ls /var/opt/gitlab/nginx/conf/
gitlab-http.conf nginx.conf nginx-status.conf
nginx.conf
是主配置文件 gitlab-http.conf
是gitlab的配置文件,可以更改监听端口和域名
添加密钥
点击头像
—- Settings
—- SSH Kyes
添加组
点击小扳手
—- New group
添加用户
点击小扳手
—- New user
这里会有连接给你输入的邮箱,但邮箱暂时不能使用 等创建完用户后点击 Edit
来修改密码
当新用户第一次登录时候会提示要你重新修改密码
添加仓库
点击小扳手
—- New project
22.17 gitlab备份和恢复
gitlab的备份是在线备份的,不需要停止服务。gitlab的备份是不能跨版本的,例如9的备份数据不能恢复到10版本上。
gitlab备份
格式:gitlab-rake gitlab:backup:create
1
[root@localhost ~]# gitlab-rake gitlab:backup:create
备份的文件默认在/var/opt/gitlab/backups/
1
2[root@localhost ~]# ls /var/opt/gitlab/backups/
1535869554_2018_09_02_11.2.3_gitlab_backup.tar
gitlab恢复
格式:gitlab-rake gitlab:backup:restore BACKUP=备份数据的前缀(日期版本)
1.停止unicorn服务和sidekiq服务
1 | [root@localhost ~]# gitlab-ctl stop unicorn |
2.恢复数据
1 | [root@localhost ~]# gitlab-rake gitlab:backup:restore BACKUP=1535869554_2018_09_02_11.2.3 |
3.重启gitlab
1 | [root@localhost ~]# gitlab-ctl start |