美文网首页
在Ubuntu中搭建Gitlab环境

在Ubuntu中搭建Gitlab环境

作者: 骑着马编程 | 来源:发表于2018-03-27 22:31 被阅读0次

· 起因

    项目的版本库要从 SVN 迁移到 Git 上,考虑到团队管理方便,Gitlab 提供了比控制台更直观的管理项目、组的管理,因此搭建了一个Gitlab的版本控制环境,过程中遇到一些问题,记录下来。

· Ubuntu

    为什么要用Ubuntu呢,一是Gitlab对Ubuntu支持较好,二是Ubuntu安装软件也方便快捷,其安装过程就不讲了,都是图形化的操作,安装完后设置好IP地址就好,Ubuntu的下载地址 https://www.ubuntu.com/download

· 安装SSH

    访问Git还是要安装ssh,Ubuntu 默认没有安装,使用下面的命令来安装 ssh:

sudo apt-get update

    输入密码后,更新系统

更新系统

    安装ssh :

sudo apt-get install openssh-server

安装 ssh 

    查看ssh服务是否启动

sudo ps -e |grep ssh #有显示ssh服务代表已启动

sudo service ssh start   #启动ssh服务

启动 ssh 服务 服务已启动

· 安装 ca-certificates 和 postfix

    Gitlab 使用 https 时需要配置 ca,postfix 是作为Gitlab的默认邮件发送工具的,我们在实际工作中没有使用邮件服务器,因此psotfix 只是简单配置了一下,但并没有起作用,想要配置postfix 的童鞋参考 http://wiki.ubuntu.org.cn/Postfix_%E5%9F%BA%E6%9C%AC%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97

#安装 ca 和 postfix

sudo apt-get install ca-certificates postfix  

    

配置 postfix ,选择Internet,简单输入一个email地址就ok

· 解决Ubuntu中,vim 在编辑模式下键盘位置不准的问题

    在 MAC 系统下,vim 编辑模式的键盘位置有误,这个问题在windows上没有发现(PS:我是在虚拟机中安装的Ubuntu),解决这个问题的办法是重新安装 vim:

#卸载vim

$sudo apt-get remove vim-common

#安装vim

$sudo apt-get install vim

·  安装 Gitlab

    Gitlab 的安装文件还比较大,如果有官方的源,怕是还没有下载下来就挂了,所以要使用国内的镜像来安装,过程如下:

#信任 Gitlab 的 GPG 公钥

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

    编辑 /etc/apt/sources.list.d/gitlab-ce.list 文件,这个根据不同的服务器,会有所不同,具体参考 清华大学镜像站使用帮助。Ubuntu 16.04LTS的内容如下:

deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main

    设置好后,就可以安装了

sudo apt-get update

sudo apt-get install gitlab-ce

    如果一切顺利,Gitlab 就安装完毕了。

·  Gitlab 配置

    首先,你要配置你的域名,gitlab的所有配置都可以在 /etc/gitlab/gitlab.rb 文件中配置,这个是我见过的最大的配置文件了,配置非常 ”豪华“。

sudo vim /etc/gitlab/gitlab.rb

    配置 “external_url” 这个参数为你的域名地址,然后执行:

sudo gitlab-ctl reconfigure

    重新启动 Gitlab,你就可以登录Gitlab了:

首次登录需要修改root 用户的密码

    进去之后就可以创建 Group,创建 project,然后为用户设置 ssh 的 key,就可以作为中央仓库使用了,这个本文不做详细说明了,后面另些一篇文章详细说明吧。

·  配置 Https 

    如果想用 Https 来访问 Gitlab,还需要生成自己的证书,Ubuntu默认安装了openssl,可以直接使用: 

#建立 ssl 目录

mkdir -p /home/michael/work/openssl

# 将原openssl目录下的ssl/misc/CA.sh拷贝到自己创建的测试目录下

cp /usr/lib/ssl/misc/CA.sh /home/michael/work/openssl

# 创建主证书,按照提示输入信息

./CA.sh -newca

# 拷贝成ca.crt

cp demoCA/cacert.pem ca.crt

#生成服务器私钥

openssl genrsa -des3 -out server.key 1024

#生成csr文件

openssl req -new -key server.key -out server.csr

# 签名并生成证书

openssl ca -in server.csr -out server.crt

# 下面是生成客户端证书,我们这个场景没有用到,感兴趣的童鞋可以试下

# 生成客户端私钥

openssl genrsa -des3 -out client.key 1024

# 生成csr文件

openssl req -new -key client.key -out client.csr

# 签名并生成证书

openssl ca -in client.csr -out client.crt

    我们用到的是 server.key 和 server.crt 文件,这两个文件要复制到 /etc/gitlab/ssl 路径下,然后修改配置

sudo vim /etc/gitlab/gitlab.rb

    修改url

# note the 'https' below

external_url "https://gitlab.example.com"

    http 请求转 https

nginx['redirect_http_to_https'] = true

    证书文件的路径:

nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"

nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"

    此处有个问题一定要注意,如果在创建server.key 时,输入了密码,那么一定要回到我们openssl的目录,也就是上文中的 /home/michael/work/openssl,执行一条命令,重新生成一下server.key:

openssl rsa -in server_before.key -out server_after.key

    这样就把密码去掉了,因为如果server.key 中有密码,那么https 模式下,gitlab 启动后不会提供服务,但也不会有任何提示,此处参考 官方文档

至此就大功告成了。

相关文章

网友评论

      本文标题:在Ubuntu中搭建Gitlab环境

      本文链接:https://www.haomeiwen.com/subject/dvqecftx.html