gitlab安装和使用

gitlab安装和使用

gitlab是私有仓库,而github则经常被用作公有仓库。都是用来存放代码的地方

开源软件三部曲:安装、配置、启动

gitlab安装

方法一:官网下载安装

官网:gitlab.com
选择安装gitlab

即可

根据上面方法安装

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld 

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

方法二:使用清华镜像安装

清华镜像网站:https://mirrors.tuna.tsinghua.edu.cn/
gitlab-ce:社区版
gitlab-ee:企业版
下载社区版即可
进入这个目录:/gitlab-ce/yum/el7/
e17:centos7版
e16:centos6版
点击下载即可

下载后使用rpm命令安装
rpm -ivh gitlab-ce-10.2.5-ce.0.el7.x86_64.rpm

配置gitlab

gitlab的配置文件在/etc/gitlab/gitlab.rb
vim /etc/gitlab/gitlab.rb
我们可以修改gitlab的默认访问地址
external_url "http://10.0.0.11"

更改配置后,需要重启配置,使其生效
gitlab-ctl reconfigure

启动gitlab

gitlab是通过gitlab-ctl管理服务的

gitlab-ctl status  查看gitlab状态  
gitlab-ctl restart 重启服务  
同理stop为关闭,start为开启 

gitlab服务介绍

我们使用gitlab-ctl status查看gitlab状态

nginx:用于静态页面内容发布
logrotate:用于日志服务
postpresql:数据库服务
redis:缓存服务
sidekip:后台任务队列
unicorn:应用托管
gitlab-workhorse:反向代理

gitlab工作流程


http内容:ngixn-》gitlab-workhorse
git命令:gitlab-shell-》gitlab-workhorse
gitlab-workhorse会直接处理文件上传、文件下载、git push、git pull、git包下载;其他请求会反向代理给后端unicorn处理

gitlab 常见命令

gitlab-ctl stop 关闭整体  
gitlab-ctl start nginx 启动单个服务nginx
gitlab-ctl tail 查看日志,总体日志

gitlab 相关目录

/etc/gitlab/gitlab.rb gitlab主要配置文件
/var/log/gitlab 日志地址
/var/opt/gitlab gitlab数据
/var/opt/gitlab/git-data gitlab仓库
/var/opt/gitlab/backups gitlab备份目录
/opt/gitlab gitlab程序代码目录

gitlab设置

我们可以进入网页设置gitlab
进入设置网络http://10.0.0.11 (因为之前在配置文件中已经修改了gitlab的默认访问地址)

取消注册入口

当我们不想要注册入口时,可以取消登录页面的注册入口

定制管理页面

仓库管理


我们可以建立组,人,仓库

建立组


私有、公开、内部区别
私有:组里面的人能看到
内部:能登录gitlab就能看到
公开:不用登录就能看到

同理建立用户,仓库也类似,和github操作方法一样

上传项目到gitlab上

使用ssh认证

ssh-keygegn -t rsa  
cat .ssh/id_rsa.pub

创建ssh认证,中间交互只需要敲回车,默认配置即可
创建的文件会在家目录下生成.ssh文件夹,id_rsa.pub为公钥,复制下来填写到gitlab上即可
进入gitlab的设置页面-》SSH Keys

注意:一个key只能对应一个gitlab用户,一个用户可以有多个key

推送项目到远程仓库

git remote   查看远程分支  
git remote add origin gitlab项目地址

origin为远程分支名,绑定gitlab项目地址
mygitlab为仓库名,可以自定义
远程分支用于连接远程仓库,一个远程分支连接一个远程项目

git add .    将文件加入暂存区
git commit -m "commit"  将暂存区所有文件提交到本地仓库
git push -u  origin master  将本地仓库中的内容提交到远程仓库

master为该本地仓库的主分支

如果想推送其他分支

git branch dev  创建新分支
git checkout dev  切换分支到dev
touch  dev       创建文件
git add .        提交到暂存区
git commit -m "commit dev on dev branch"  提交到本地仓库
git push -u origin dev   提交到远程仓库

将远程仓库的内容复制下来

git clone 远程仓库地址
默认创建一个远程分支origin

gitlab权限控制

我们可以设置保护分支,在一个项目中,只允许管理员以上级别的成员push代码到master分支上
一般情况master为稳定分支,用于版本发布
dev为研发分支,研发权限只在dev上

设置保护分支




即可,master分支被保护了,只有高于或等于master的成员才能merge,push分支

用户提出申请合并分支

当用户想要将其他分支合并到主分支master上面时,必须提出申请

即可
管理员可以处理相关请求

gitlab备份和恢复

修改gitlab配置文件

进入gitlab的配置文件,配置备份信息
vi /etc/gitlab/gitlab.rb
在末尾加上配置信息

gitlab_rails['backup_path'] = '/data/backup/gitlab'
gitlab_rails['backup_keep_time'] = 604800

添加备份路径和多久备份一次(单位s)
修改完配置信息后,重启配置文件
gitlab-ctl reconfigure

创建备份文件的目录

mkdir /data/backup/gitlab
chown -R git.git /data/backup/gitlab

创建备份目录同时,也要确保对备份目录有权限,所以递归的将该备份目录的所有者和所属组都这是为git用户和用户组

执行备份

/usr/bin/gitlab-rake gitlab:backup:create

设置定时备份

编辑定时任务
crontab -e
会弹出一个文件,在其中添加
0 2 * * * /usr/bin/gitlsb-rake gitlab:backup:create
分钟 小时 天 月 周 用户名 命令
*代表都满足,都会执行
这段代码意思是只在每天2点时候执行备份命令

恢复库

恢复库时要关闭相关写入服务

#停止数据写入服务  
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
#执行要恢复的备份文件
gitlab-rake gitlab:back:restore BACKUP=1512811475_2019_1_1_1.2.2  
#重启服务  
gitlab-ctl restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值