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服务器的更多相关文章

  1. git操作:在CentOS7上面搭建GitLab服务器

    在这篇文章中将要讲解如何在CentOS7上面搭建本地的GitLab服务器. 一.安装并配置必要的依赖关系 首先要在CentOS系统上面安装所需的依赖:ssh.防火墙.postfix(用于邮件通知).w ...

  2. <五>企业级开源仓库nexus3实战应用–使用nexus3配置npm私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  3. <六>企业级开源仓库nexus3实战应用–使用nexus3配置yum私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  4. <三>企业级开源仓库nexus3实战应用–使用nexus3配置maven私有仓库

    一两个星期之前,你如果在我跟前说起私服的事情,我大概会绕着你走,因为我对这个东西真的一窍不通.事实上也正如此,开发同学曾不止一次的跟我说公司的私服版本太旧了,许多新的依赖编译之后不会从远程仓库自动缓存 ...

  5. <一>企业级开源仓库nexus实战应用–nexus的安装

    1,Nexus 介绍. Nexus是什么? Nexus 是一个强大的maven仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问. 不仅如此,他还可以用来创建yum.pypi.npm.doc ...

  6. <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库

    1,安装nexus3. 这个地方略了,安装部署可以参考:nexus3安装配置. 2,配置走起. 1,创建blob存储. 登陆之后,先创建一个用于存储镜像的空间. 定义一个name,下边的内容会自动补全 ...

  7. Git 系列教程(10)- 仓库别名

    Git 别名 前言 Git 并不会在你输入部分命令时自动推断出你想要的命令 如果不想每次都输入完整的 Git 命令,可以通过 git config 文件来轻松地为每一个命令设置一个别名 $ git c ...

  8. Git系列四之在本地服务器搭建gitlab仓库管理

    1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...

  9. Git系列四之在本地服务器搭建gitlab仓库管理(centeros环境下)

    1.Git仓库管理 现在本地已经创建了git仓库,又在gitlab上创建了一个git仓库,并且让这两个仓库进行远程同步,这样gitlab仓库既可以备份也可以与他人协作管理远程仓库以及根据需要推送或拉取 ...

随机推荐

  1. spring+springmvc+ibatis整合注解方式实例【转】

    源自-----> http://shaohan126448.iteye.com/blog/2033563 (1)web.xml文件(Tomcat使用) 服务器根据配置内容初始化spring框架, ...

  2. scoketserver模块(TCP协议 与 udp 协议)

    socketserver模块 ( 基于 TCP 协议 ) import socketserver # 自定义类用来处理通信循环 class MyTCPhanler(socketserver.BaseR ...

  3. Vertica系列:性能优化

    Vertica 性能非常好, 平时基本不会碰到性能问题, 即使碰到, 优化也很容易, 而且效果往往会很好. ======================优化工具==================== ...

  4. 【六】Hystrix Dashboard

    除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard) , Hystrix会持续地记录所有通过 Hystrix发起的请求的执行信息,并以统计报表和图形 ...

  5. nginx + iis 使用介绍

    1.下载 nginx 2.配置nginx 文件 1)配置该目录下E:\nginx\nginx-1.9.3\conf: #user nobody; worker_processes ; #error_l ...

  6. c# 适配器批量修改

    DataTable dt; //在方法外部申明数据表SqlDataAdapter adapter; //在方法外部申明数据适配器 查询方法adapter = new SqlDataAdapter(Sq ...

  7. Coursera Deep Learning 2 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization - week1, Assignment(Initialization)

    声明:所有内容来自coursera,作为个人学习笔记记录在这里. Initialization Welcome to the first assignment of "Improving D ...

  8. linux随机生成密码

    1.mkpassword工具 # 使用最多的密码生成工具 yum -y install expect #需要安装expect工具 mkpasswd -l -d -c -C -s #直接在命令行进行随机 ...

  9. 帝国cms建站方法和知识点

    帝国cms建站方法和知识点 1.  首先在帝国cms网站上下载模板系统.根据模板系统上的提示,将指定的目录文件放在指定的位置.然后进行安装.后台管理系统的命名设置.数据库的设置等等. 2.  安装完成 ...

  10. hibernate(一) 第一个hibernate工程

    序言 其实hibernate已经学过一遍,不过因为太糊弄,急于求成,导致现在需要重新来学习,通过亲自去敲每一行代码,来去理解每一个知识点. ---WH 一.什么是Hibernate? 轻量级JavaE ...