设为首页 收藏本站
查看: 1115|回复: 0

[经验分享] Git系列②之部署企业级开源仓库gitlab服务器

[复制链接]

尚未签到

发表于 2018-1-11 19:49:05 | 显示全部楼层 |阅读模式
  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>  

  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
  

[iyunv@web01 ~]# yum localinstall -y gitlab-ce-8.10.5-ce.0.el7.x86_64.rpm  

  3.配置并启动github服务,如果配置文件发生更改需要重新执行此命令:
  

# gitlab-ctl reconfigure  


  查看状态
  

[iyunv@web01 ~]# gitlab-ctl status  
run: gitlab
-workhorse: (pid 12247) 73s; run: log: (pid 12148) 86s  
run: logrotate: (pid
12172) 84s; run: log: (pid 12171) 84s  
run: nginx: (pid
12157) 85s; run: log: (pid 12156) 85s  
run: postgresql: (pid
12002) 125s; run: log: (pid 12001) 125s  
run: redis: (pid
11919) 136s; run: log: (pid 11918) 136s  
run: sidekiq: (pid
12138) 92s; run: log: (pid 12137) 92s  
run: unicorn: (pid
12277) 60s; run: log: (pid 12105) 94s  

  查看nginx日志:
  

[iyunv@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 - - [29/Jun/2017:14:17:44 +0800] "GET / HTTP/1.1" 302 100 "-" "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: 6, done.
  
remote: Compressing objects: 100% (4/4), done.
  
remote: Total 6 (delta 0), reused 0 (delta 0)
  
Unpacking objects: 100% (6/6), done.
  
[iyunv@master source]# ll
  
total 4
  
drwxr-xr-x 3 root root 4096 Jun 26 18:00 web-demo
  
[iyunv@master source]# cat web-demo/
  
.git/ index.html README.md
  
[iyunv@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: 401 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
  
[iyunv@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:
9, done.  
remote: Compressing objects:
100% (7/7), done.  
remote: Total
9 (delta 0), reused 0 (delta 0)  
Receiving objects:
100% (9/9), 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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434050-1-1.html 上篇帖子: Git~GitLab当它是一个源代码管理工具时 下篇帖子: ubuntu16.04 装了一天的gitlab
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表