Gitlab 是一个自己搭建的仓库 可以设置私有和公开,可以给权限
Gitiee 是一个国内的开源仓库,可以设置私有和公开
Github 是国外的开源仓库 ,外网的网速慢
会一个 其他俩个全部操作都是一样的
准备环境: 关闭防火墙和selinux
192.168.246.214 #gitlab服务器
1.配置yum源
[root@git-server ~]# cd /etc/yum.repos.d/
[root@git-server yum.repos.d]# vi gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever
gpgcheck=0
enabled=1
安装相关依赖
邮箱设置就下载 不设置就可以不用下载
yum install -y postfix curl policycoreutils-python openssh-server
[root@git-server yum.repos.d]# yum install -y postfix curl policycoreutils-python openssh-server
[root@git-server yum.repos.d]# systemctl enable sshd
[root@git-server yum.repos.d]# systemctl start sshd
安装postfix
[root@git-server yum.repos.d]# yum install postfix -y #安装邮箱
[root@git-server yum.repos.d]# systemctl enable postfix
[root@git-server yum.repos.d]# systemctl start postfix
[root@git-server yum.repos.d]# yum install -y gitlab-ce #将会安装gitlab最新版本
配置gitlab登录链接
[root@git-server ~]# vim /etc/gitlab/gitlab.rb
1.# 添加对外的域名(gitlab.papamk.com请添加A记录指向本服务器的公网IP):将原来的修改为
external_url 'http://192.168.246.214'
2.设置地区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
将数据路径的注释去掉,可以更改
备份文件注释打开
开启ssh服务:
初始化Gitlab:
[root@git-server ~]# gitlab-ctl reconfigure #重新加载,需要等很长时间
[root@git-server ~]# gitlab-ctl start #启动
如果想要以上的 https 方式正常生效使用,则需要把 letsencrypt 自动生成证书的配置打开,这样在执行重
新让配置生效命令 (gitlab-ctl reconfigure) 的时候会自动给域名生成免费的证书并自动在 gitlab 自带的
nginx 中加上相关的跳转配置,都是全自动的,非常方便。
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['[email protected]'] # 这应该是一组要添加为联系人的电子邮件地址
测试访问:http://192.168.246.214
用户为:root
进行克隆文件,需要配置公钥
需要创建秘钥,在任何一个服务器上都可以生成秘钥
配置公钥 ,哪一个服务器想要拉取代码,就先生成一个秘钥,把公钥复制然后粘贴上来
客户端操作
[root@client ~]# ssh-keygen
[root@client ~]# cd .ssh/
[root@client .ssh]# ls
[root@client .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0HeO8gaua13h9HCJK5RXVc/cjet9DpLYq2dqmQ0LXfP0Vwj6YjKxu7lE1i/4Y2cmu5lDe8bG22aikyaW38Fnz0bkGfEurdVZii/KCiHBz2lXS1ocuAdloJT4wnc2MUjh/gwc4FuNkWdYvpbMLXSSHIVjv8vB9YbHlPMTMy5N89kMwMmta5C87/8fBO5VtGijgGOueywM+xAzovlfoJbprV/ZBKkhiskSKz4fHyoGFGwllX3kMkNR/soGF5XXA+/99iO3UqSaloF0UzfUCgqfMfMVB5zDHGIB6uTrMe6ccfKp9gnVyD7m4Zmk7MwouBwAfMLIiHmvekBGXqb1YCTgJ root@client
[root@git-server ~]# yum install -y git
准备:
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。
# git config --global user.email "[email protected]" ----设置邮箱
# git config --global user.name "soho" ----加添用户
# cat /root/.gitconfig
# git config --global color.ui true #语法高亮
# git config --list #查看全局配置
git clone [email protected]:root/ming.git
git clone http://196.196.196.66/root/ming.git
创建一个文件上传远程仓库
[root@ming-5 ming]# echo "测试创建文件" > b.txt
[root@ming-5 ming]# ls
a.txt b.txt edg linux命令大全.txt
[root@ming-5 ming]# git add *
[root@ming-5 ming]# git commit -m "描述信息"
[root@ming-5 ming]# git push origin master
在任何一台客户端都可以操作
[root@ming-5 ming]# git add *
[root@ming-5 ming]# git commit -m "v2.0"
[root@ming-5 ming]# git tag -a "v2.0" -m "v2.0"
[root@ming-5 ming]# git checkout v2.0
[root@ming-5 ming]# git push origin v2.0
[root@ming-5 ming]# git checkuot master
主仓库上面查看 一下有没有标签
其他人拉取代码正常拉取
只是拉取完没有显示标签的内容 需要切换到标签分支
1、查看系统版本和软件版本
[root@git-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@git-server ~]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
8.15.4
打开/etc/gitlab/gitlab.rb配置文件,查看一个和备份相关的配置项:
[root@git-server backups]# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" #备份的路径
gitlab_rails['backup_archive_permissions'] = 0644 #备份文件的默认权限
gitlab_rails['backup_keep_time'] = 604800 #保留时长,秒为单位
设置备份保留时常,防止每天执行备份,肯定有目录被爆满的风险,打开/etc/gitlab/gitlab.rb配置文件,找到如下配置
该项定义了默认备份出文件的路径,可以通过修改该配置,并执行 gitlab-ctl reconfigure 或者 gitlab-ctl restart 重启服务生效。
[root@git-server backups]# gitlab-ctl reconfigure
或者 最常用的就是第一个
[root@git-server backups]# gitlab-ctl restart
执行备份命令进行备份
备份命令 gitlab:backup:create
[root@git-server backups]# /opt/gitlab/bin/gitlab-rake gitlab:backup:create
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
可以到/var/opt/gitlab/backups找到备份包,解压查看,会发现备份的还是比较全面的,数据库、repositories、build、upload等分类还是比较清晰的。
备份完成,会在备份目录中生成一个当天日期的tar包。
[root@git-server ~]# ll /var/opt/gitlab/backups/
特别注意:
**在恢复之前,可以删除一个文件,以便查看效果
执行恢复操作:
恢复backup:restore BACKUP=
[root@git-server ~]# cd /var/opt/gitlab/backups
[root@git-server backups]# gitlab-rake gitlab:backup:restore BACKUP=1588700546_2020_05_06_12.6.3
注意恢复文件的名称,不要全部复制
恢复完成后,启动刚刚的两个服务,或者重启所有服务,再打开浏览器进行访问,发现数据和之前的一致:
注意:通过备份文件恢复gitlab必须保证两台主机的gitlab版本一致,否则会提示版本不匹配