zoukankan      html  css  js  c++  java
  • 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.5-ce.0.el7.x86_64.rpm

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

    # gitlab-ctl reconfigure

     

    查看状态

    [root@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日志:

    [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 - - [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.
    [root@master source]# ll
    total 4
    drwxr-xr-x 3 root root 4096 Jun 26 18:00 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: 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 
    [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: 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

  • 相关阅读:
    linux运维之分析系统负载及运行状况
    linux运维之分析日志相关命令(1)
    centos7修改网卡名称为eth0
    LANMP环境编译参数查看方法
    自动化部署之搭建yum仓
    浙大 PAT 乙级 1001-1075 目录索引
    更改docker服务网段分配地址
    MySQL主从复制(Replication for Backup)
    MySQL读写分离-简单思考
    NGINX负载均衡缓存配置
  • 原文地址:https://www.cnblogs.com/reblue520/p/7109900.html
Copyright © 2011-2022 走看看