Git系列②之部署企业级开源仓库gitlab服务器
Git系列②之部署企业级开源仓库gitlab服务器
上一篇我们介绍了github的常见使用方法,下面开始部署本地开源仓库gitlab
GitLab 是一个用于仓库管理系统的开源项目。
1.安装配置gitlab依赖项
如想使用Postfix来发送邮件,在安装期间请选择'Internet Site'. 您也可以用sendmai或者 配置SMTP服务并使用SMTP发送邮件在 Centos7系统上, 下面的命令会在系统防火墙里面开放HTTP和SSH端口.
安装相关依赖,并设置开机自启动
# yum install -y curl policycoreutils openssh-server openssh-clients postfix
# systemctl enable sshd postfix
# systemctl start sshd postfix
# firewall-cmd --permanent --add-service=http
# systemctl reload firewalld
2.添加GitLab仓库,并安装到服务器
# yum方式安装
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
yum install gitlab-ce -y
也可以直接下载gitlab-ce-8.10.5-ce.0.el7.x86_64.rpm后本地安装(推荐)
注意:
经测试最新版本的 gitlab-ce-9.3.0-ce.0.el7.x86_64.rpm 无法进行ssh-key的认证,所以本次使用gitlab-ce-8.10.5版本
下载地址:https://packages.gitlab.com/gitlab/gitlab-ce
[root@web01 ~]# yum localinstall -y gitlab-ce-8.10.-ce..el7.x86_64.rpm
3.配置并启动github服务,如果配置文件发生更改需要重新执行此命令:
# gitlab-ctl reconfigure

查看状态
[root@web01 ~]# gitlab-ctl status
run: gitlab-workhorse: (pid ) 73s; run: log: (pid ) 86s
run: logrotate: (pid ) 84s; run: log: (pid ) 84s
run: nginx: (pid ) 85s; run: log: (pid ) 85s
run: postgresql: (pid ) 125s; run: log: (pid ) 125s
run: redis: (pid ) 136s; run: log: (pid ) 136s
run: sidekiq: (pid ) 92s; run: log: (pid ) 92s
run: unicorn: (pid ) 60s; run: log: (pid ) 94s
查看nginx日志:
[root@web01 ~]# gitlab-ctl tail nginx
==> /var/log/gitlab/nginx/current <== ==> /var/log/gitlab/nginx/error.log <== ==> /var/log/gitlab/nginx/gitlab_access.log <== ==> /var/log/gitlab/nginx/gitlab_error.log <== ==> /var/log/gitlab/nginx/gitlab_access.log <==
192.168.3.12 - - [/Jun/::: +] "GET / HTTP/1.1" "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
4.访问web界面:

# 如打开以后是502的界面,需要检查80和8080端口是否被占用,另外增加内存,然后重新执行3步骤
4.1关闭登录页面的注册功能,否则可能导致信息泄露
最后点下方的save
退出登录,验证是否还有注册的功能:


可以看到注册功能已经关闭了

4.2添加用户,一个用户可以说就是一个开发人员,配置好用户名,邮箱后
重新选择创建的用户点击Edit设置密码
4.3使用新账户登录,首次登录要设置密码,创建组,组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是公司不同的开发项目或者业务模块,不同的组添加不同的开发即可实现对开发设置权限的管理
4.4创建项目:
将用户添加到组:
Admin area–组名:
为项目创建一个web页面:
Project–组名/项目名–add a README—
测试客户端更新名提交代码,安装git客户端:
# yum install git -y
5.使用git更新及提交代码:
5.1 克隆代码:
# mkdir /source
# cd /source/
①http方式克隆
# git clone http://192.168.3.198/myweb/web-demo.git
Cloning into 'web-demo'...
Username for 'http://192.168.3.198': reblue520
Password for 'http://reblue520@192.168.3.198':
remote: Counting objects: , done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Unpacking objects: % (/), done.
[root@master source]# ll
total
drwxr-xr-x root root Jun : web-demo
[root@master source]# cat web-demo/
.git/ index.html README.md
[root@master source]# cat web-demo/index.html
<h1>my first web project</h1>
克隆报错,是因为centos6.5默认的git客户端版本太低,centos7没有该问题
[www@master source]$ git clone http://192.168.3.198/myweb/web-demo.git
Initialized empty Git repository in /source/web-demo/.git/
error: The requested URL returned error: Unauthorized while accessing http://192.168.3.198/myweb/web-demo.git/info/refs fatal: HTTP request failed
解决办法:
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel
cd /usr/local/src
wget https://www.kernel.org/pub/software/scm/git/git-1.8.3.1.tar.gz
tar xzf git-1.8.3.1.tar.gz
cd git-1.8.3.1
./configure
make
make prefix=/usr/local install
[root@master git-1.8.3.1]# git --version
git version 1.8.3.1
②通过ssh-key方式克隆
将客户端www用户的公钥拷贝到gitlab服务器的web端项目ssh-key中
[www@master source]$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArALvWj9fYnDtZxOue7OXvznI02QAyQgeR1SkjnlE3YwZIfjOJU1x2n7jPUxRuPR+wQPRZ9/AQUD5mNzYGLGxXY0Tpjw7zRQ8HFEmZSm4NgMNfYedyHpWbbJLrYTR4vg5pNFtJm7vmZdaV6JP6WLtyDkC83pKK8oOOha8PhNwXKcMMUMjS9NGhbaR0I8cDsgOOo0wAZl8oNGD/6FWc4XsDAfvWLac4a9BUtisn14YZcTqjEwkEv0DxnXZ2yVtGwPNmiPEhdfvyDM6kPtBL0BptWEVWvqD0bBS31Ro8FH3BPWunrgDQA/XAkjhHChF+A0mU+lVYncqjtSG9HsKvMUU1Q== www@master

克隆代码
[www@master source]$ git clone git@192.168.3.198:myweb/web-demo.git
Cloning into 'web-demo'...
remote: Counting objects: , done.
remote: Compressing objects: % (/), done.
remote: Total (delta ), reused (delta )
Receiving objects: % (/), done.
5.2添加分支,非组的属主是不能直接将代码提交到master分支的,需要建一个另外的分支,代码提交之后测试无误后再进行合并:
# cd /source/web-demo
# git branch dev #本地创建一个分支
# git checkout dev #切换本地分支
# git push origin dev #将本地分支发布到github
# vim index.html #更新一下代码
<h1>my first web project</h1>
# season spring
summer
autumn
winter
# git add index.html #提交更改到本地版本库
# git commit -m "second commit" #提交到git仓库
# git push -u origin dev #提交到一个分支
# 提交成功信息如下:
# 如果提交代码报错,提示没有权限提交,请检查提交的用户是否有对组的提交权限:
二:git常用命令汇总:
命令 git config --global user.name "name" #配置git使用用户
# git config --global user.email "mail" #配置git使用邮箱
# git config --global color.ui true #配置颜色
# git config --list #查看当前配置
# git init #初始为git工作目录
# git status #查看git状态
# git reflog #查看未来历史更新点
# git reset --hard 4bf5b29 #找到历史还原点的SHA-1值,就可以还原(值不写全,系统会自动匹配)
# git checkout -- file #恢复暂存区至上一版本
# git add [file1] [file2] ... #添加指定文件至暂存区
# git add [dir] #添加指定目录至暂存区,包括子目录(递归添加)
# git add . #添加当前目录所有文件至暂存区
# git rm [file1] [file2] ... #删除工作区文件,并将这次删除放入暂存区
# git rm –cached [file] #停止追踪指定文件,但该文件会保留在工作区
# git mv [file-old] [file-new] #重命名文件,修改后放入暂存区
配置gitlab为http方式:
将http://web01/web/web-demo.git 改为http://192.168.3.198/web/web-demo.git
步骤:
# vim /etc/gitlab/gitlab.rb
external_url 'http://web01'
改为
external_url 'http://192.168.3.198'
重新配置服务生效
# gitlab-ctl reconfigure
新建项目和历史项目都会变成IP了http://192.168.3.198


Git系列②之部署企业级开源仓库gitlab服务器的更多相关文章
- git操作:在CentOS7上面搭建GitLab服务器
在这篇文章中将要讲解如何在CentOS7上面搭建本地的GitLab服务器. 一.安装并配置必要的依赖关系 首先要在CentOS系统上面安装所需的依赖:ssh.防火墙.postfix(用于邮件通知).w ...
- <五>企业级开源仓库nexus3实战应用–使用nexus3配置npm私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...
- <六>企业级开源仓库nexus3实战应用–使用nexus3配置yum私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...
- <三>企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库
一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...
- <一>企业级开源仓库nexus实战应用–nexus的安装
1,Nexus 介绍. Nexus是什么? Nexus 是一个强大的maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问. 不仅如此,他还可以用来创建yum.pypi.npm.doc ...
- <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库
1,安装nexus3. 这个地方略了,安装部署可以参考:nexus3安装配置. 2,配置走起. 1,创建blob存储. 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全 ...
- Git 系列教程(10)- 仓库别名
Git 别名 前言 Git 并不会在你输入部分命令时自动推断出你想要的命令 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名 $ git c ...
- Git系列四之在本地服务器搭建gitlab仓库管理
1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...
- Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)
1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...
随机推荐
- AJAX工作原理与缺点
1.概念:什么是AJAXAJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的网页开发技术.2.为什么要使用他 ...
- sqlalchemy数据库分层操作
在学习sqlalchemy操作中,最常见的就是如下的示例,一个文件基本上包含了数据库的增删改查.sqlalchemy的具体操作我就不再详细说明了.流程大概是: 定义表 创建数据库引擎 创建表 插入数据 ...
- 042、用volume container 共享数据 (2019-03-05 周二)
参考https://www.cnblogs.com/CloudMan6/p/7188479.html volume container 是专门为其他容器提供 volume 的容器,他提供的卷也可以 ...
- 【noip 2011】提高组Day1T3.Mayan游戏
Description Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是 ...
- spring cloud心跳检测自我保护(EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.)
EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER ...
- Java Map在遍历过程中删除元素
Java中的Map如果在遍历过程中要删除元素,除非通过迭代器自己的remove()方法,否则就会导致抛出ConcurrentModificationException异常.JDK文档中是这么描述的: ...
- 读书笔记 Facebook在移动端都干了啥,居然让用户爱上广告
文章来源:http://news.cnblogs.com/n/513297/ Facebook武器: Facebook 的武器只有一个:让广告主基于目标用户群投放个性化的精准广告.基于高质量的广告内容 ...
- svn 的truck、tag、 merge
参考文章 : https://blog.csdn.net/keda8997110/article/details/21813035
- 在Github和oschina上搭建自己的博客网站
在Github上搭建 - 参考链接 搭建一个免费的,无限流量的Blog----github Pages和Jekyll入门 GitHub + Jekyll 搭建并美化个人网站 用Jekyll搭建的Git ...
- H - Rescue the Princess ZOJ - 4097 (tarjan缩点+倍增lca)
题目链接: H - Rescue the Princess ZOJ - 4097 学习链接: zoj4097 Rescue the Princess无向图缩点有重边+lca - lhc..._博客园 ...