当前位置: 首页 > 运维技术 > 正文

gitlab之远程仓库

Mr.linus 发表于2017年10月27日 15:09

一、gitlab简介

      GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

依赖组件:ruby 1.9.3+,nginx、MySQL,git,redis, Sidekiq。 

gitlab组件详解:

        nginx:静态web服务器

        gitlab-shell:用于处理git命令和修改authorized keys列表

        git-workhorse:轻量级反向代理服务器

        logrotate:日志文件管理工具

        postgresql:数据库

        redis:缓存数据库

        sidekiq:用于在后台执行队列任务(异步执行)

        unicorn:gitlab rails应用是托管在这个服务器上面的

最低配置内存2G

相关目录:

/var/opt/gitlab/git-data/repositories/rot:库默认存储目录

/opt/gitlab:应用代码和相应的依赖程序

/var/opt/gitlab:gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改

/etc/gitlab:配置文件目录

/var/log/gitlab:此目录存放gitlab各个组件产生的日志

/var/opt/gitlab/backups:备份文件生成目录

特点:

1. Web框架使用Ruby on Rails。

2. 基于MIT代码发布协议。

3. 需要gitolite协同工作。

二、安装gitlab

官网:https://about.gitlab.com/downloads/

清华镜像:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

安装依赖:

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

RPM安装

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm

注意:如果安装不了,请修改yum源

#vim /etc/yum.repos.d/gitlab-ce.repo[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=

# 再执行
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm
rpm -ivh gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm

修改配置文件:

#vim /etc/gitlab/gitlab.rb
external_url 'http://your_ip_address'

配置:

gitlab-ctl reconfigure

相关命令:

gitlab-ctl status       查看状态

gitlab-ctl start          启动

gitlab-ctl stop          关闭

gitlab-ctl restart       重启

gitlab-ctl tail nginx   查看nginx日志

gitlab-ctl show-config   验证配置

访问:

http://your_ip_address

远程仓库之gitlab 环境部署 第1张

默认用户:root

默认密码:5iveL!fe

登录后修改密码!!!!

远程仓库之gitlab 环境部署 第2张

新密码登录:

远程仓库之gitlab 环境部署 第3张

项目管理案例:

加入你们公司有一个项目组,包含pm dev1 dev2,一天pm有一个需求需要dev1 dev2完成,那么我们应该怎么去创建组和用户呢?

创建项目:

远程仓库之gitlab 环境部署 第4张Create a new repository and  ssh-key

远程仓库之gitlab 环境部署 第5张

远程仓库之gitlab 环境部署 第6张

git clone git@192.168.56.11:root/car2share.git
cd car2share
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

远程仓库之gitlab 环境部署 第7张

创建组

远程仓库之gitlab 环境部署 第8张远程仓库之gitlab 环境部署 第9张

创建pm dev1 dev2用户

远程仓库之gitlab 环境部署 第10张远程仓库之gitlab 环境部署 第11张

设置密码

远程仓库之gitlab 环境部署 第12张远程仓库之gitlab 环境部署 第13张同理,创建dev1 dev2

远程仓库之gitlab 环境部署 第14张

增加用户角色到组

远程仓库之gitlab 环境部署 第15张远程仓库之gitlab 环境部署 第16张

远程仓库之gitlab 环境部署 第17张

远程仓库之gitlab 环境部署 第18张

现在pm有一个car2share项目开发计划需要定时由dev1 dev2完成,下面是需求

远程仓库之gitlab 环境部署 第19张

那么,pm需要创建lssue管理

创建项目:

远程仓库之gitlab 环境部署 第20张

git clone http://192.168.56.11/pm/car2share.gitcd car2share
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master


远程仓库之gitlab 环境部署 第21张

远程仓库之gitlab 环境部署 第22张远程仓库之gitlab 环境部署 第23张

远程仓库之gitlab 环境部署 第24张远程仓库之gitlab 环境部署 第25张



远程仓库之gitlab 环境部署 第26张

远程仓库之gitlab 环境部署 第27张

远程仓库之gitlab 环境部署 第28张现在dev1 看到issue开始开发car2share home

远程仓库之gitlab 环境部署 第29张

dev1在linux开发环境

[root@linux-node1 ~]# git clone git@192.168.56.11:root/car2share.git
正克隆到 'car2share'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
接收对象中: 100% (3/3), 完成.
检查连接... 完成。
[root@linux-node1 ~]# cd car2share/
[root@linux-node1 car2share]# ll
总用量 0
-rw-r--r-- 1 root root 0 5月   7 19:06 README.md
[root@linux-node1 car2share]# echo "<h1>car2share home</h1>" >> car2share_home.html
[root@linux-node1 car2share]# echo "<h1>car2share news</h1>" >> car2share_news.html
[root@linux-node1 car2share]# git add . 
[root@linux-node1 car2share]# git commit car2share_home.html -m "car2share home v1.0 commit"
[master 050a66f] car2share home v1.0 commit
 1 file changed, 1 insertion(+)
 create mode 100644 car2share_home.html
[root@linux-node1 car2share]# git commit car2share_news.html -m "car2share news v1.0 commit"
[master 3431927] car2share news v1.0 commit
 1 file changed, 1 insertion(+)
 create mode 100644 car2share_news.html
[root@linux-node1 car2share]# git push origin car2share
对象计数中: 6, 完成.
Delta compression using up to 2 threads.
压缩对象中: 100% (4/4), 完成.
写入对象中: 100% (6/6), 557 bytes | 0 bytes/s, 完成.
Total 6 (delta 1), reused 0 (delta 0)
To git@192.168.56.11:root/car2share.git
 * [new branch]      car2share -> car2share
[root@linux-node1 car2share]# git checkout master
切换到分支 'master'
您的分支与上游分支 'origin/master' 一致。
[root@linux-node1 car2share]# git merge car2share
更新 7865ee3..a974425
Fast-forward
 car2share_home.html | 1 +
 car2share_news.html | 1 +
 2 files changed, 2 insertions(+)
 create mode 100644 car2share_home.html
 create mode 100644 car2share_news.html

远程仓库之gitlab 环境部署 第30张



远程仓库之gitlab 环境部署 第31张

远程仓库之gitlab 环境部署 第32张

远程仓库之gitlab 环境部署 第33张

注意:由于测试就没有单独为某个任务创建分支

dev2接到项目后在windows操作

远程仓库之gitlab 环境部署 第34张

windows操作(略)

gitlab 备份管理:

配置文件加入:

gitlab_rails['backup_path'] = "/data/backups/gitlab"
gitlab_rails['backup_keep_time'] = 604800

创建目录:

mkdir  /data/backups/gitlab -p
chown -R git.git /data/backups/gitlab

定时任务:

0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

恢复:

停止数据库写入服务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

恢复数据:

date -d @1494142177
gitlab-rake gitlab:backup:restore BACKUP=1494142177

邮件配置:

gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'emailvip888888@163.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "emailvip888888@163.com"
gitlab_rails['smtp_password'] = "xxxx."
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
全文完
本文标签: gitlab远程仓库
本文标题: gitlab之远程仓库
本文链接: http://www.90qj.com/m/?post=448

〓 随机文章推荐

共有5662阅 / 1我要评论
  1. 文章不错支持一下吧

发表你的评论吧返回顶部

!评论内容需包含中文


请勾选本项再提交评论