搬砖小抄

在Ubuntu上安装GitLab

字数统计: 1.2k阅读时长: 4 min
2018/04/24 Share

如果你想拥有一个的私有GIT服务器,那么gitlab可能就是你唯一的选择了,正好我就有这样一个需求,我花了一些时间了解了一下它,然后真的感觉”它就是我的菜!”,并且有很多因素会使我难以拒绝:

  • 稳定,功能强大: 我要的不仅仅是一个代码仓库,那样的话SVN也能将就用了.我需要的一个能够帮助我围绕代码来展开工作的全栈方案.
  • 活跃: 开源的软件最怕就是作者丢个代码上去然后就跑了.有些新功能你可能现在用不上,但是在你需要的时候,你直接就用上成熟方案了,比如对kubernetes的支持.
  • 一站式解决方案: 它不仅可以做问题跟踪,还可以做项目管理,并且它有自己的CI插件,从开发到部署都可以打通.
  • 其他: 比如囊中羞涩,又比如老板信不过云服务托管商…

安装环境:
ubuntu 16.04 desktop (x64)

要流畅运行gitlab,需要2G以上物理内存

操作系统安装

此过程略过,系统语言建议选则默认的英文版

安装常用软件

1
2
3
4
5
6
7
# 更新安装源缓存
sudo apt-get update
# 因为是虚拟机,所以安装open-vm-tools-desktop
# 如果是server版ubuntu 则安装 open-vm-tools
sudo apt-get install open-vm-tools-desktop
# 安装一些常用软件
sudo apt-get install vim git openssh-server vsftpd make cmake ncurses-dev

注意:

  • 安装vm-tools 需要重启
  • 有的软件有的也不是必须的.我经常需要用这些软件,因此就弄了上面那个一键式apt install.

安装gitlab(开源版)

使用清华大学软件镜像站

首先信任 GitLab 的 GPG 公钥

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

创建 /etc/apt/sources.list.d/gitlab-ce.list 文件,并且写入安装源信息

1
2
3
4
5
sudo -i
cd /etc/apt/sources.list.d/
echo "deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main">gitlab-ce.list
cat gitlab-ce.list
logout

安装 gitlab

1
2
3
4
sudo apt-get update
sudo apt-get install gitlab-ce
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status

安装完成后,在浏览器输入服务器IP地址,应该可以看见gitlab的web页面
首次使用gitlab,系统会让你修改默认用户(root)的口令.

配置gitlab

允许从第三方源代码服务器导入项目

为了节约你的阅读时间,我的使用经验是:这个功能用得很少,建议先不折腾这个.

这个功能需要先配置了OmniAuth.OmniAuth 配置分两个部分:OmniAuth使用方和OmniAuth提供方,前者就是我们安装的gitlab服务器,后者就是支持OAuth的网站(如github,gitlab.com等).

假设你希望支持重gitlab.com导入项目,那么你需要有一个gitlab.com账号,并且在自己的账号页面分配OAuth授权(访问ID和密钥).不同的提供方操作界面和方法不一样,详细可参考https://docs.gitlab.com/ce/integration/omniauth.html

假设你已经在授权提供方配置好了,需要修改/etc/gitlab/gitlab.rb文件

  1. 先确保OmniAuth全局配置参数已经正确配置

    1
    2
    3
    gitlab_rails['omniauth_enabled'] = true
    gitlab_rails['omniauth_allow_single_sign_on'] = false
    gitlab_rails['omniauth_block_auto_created_users'] = true
  2. 添加OmniAuth授权凭据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    gitlab_rails['omniauth_providers'] = [
    {
    "name" => "gitlab",
    "app_id" => "你的appid",
    "app_secret" => "你的访问密钥",
    "args" => { "scope" => "api" }
    },
    {
    第二个
    }
    ]
  3. 刷新gitlab 配置信息

    1
    sudo gitlab-ctl reconfigure

持续构建配置

CI是很重的的一个功能点,建议用上.

CI配置的分两个部分:

  • Server 端: 也就是gitlab服务器,负责管理接入的CI客户端
  • Client 端: 即CI软件/系统,比如gitlab自家的GitLab Runner,又或者第三方CI工具(如:jenkins,Hudson)

这部分内容有点多,需要抽时间整理一下再发出来.

常用命令

刷新配置以及服务启停

1
2
3
4
5
6
7
8
#重新配置
sudo gitlab-ctl reconfigure
#重启(包含所有模块)
sudo gitlab-ctl restart
#重启某一个模块(如nginx)
sudo gitlab-ctl restart nginx
#查看状态
sudo gitlab-ctl status

控制台模式修改用户口令

1
2
3
4
5
6
gitlab-rails console production
# 也可以 user = User.where(id: 1).first
user = User.find_by(email: 'admin@local.host')
user.password = 'secret_pass'
user.password_confirmation = 'secret_pass'
user.save!

参考资料

CATALOG
  1. 1. 操作系统安装
  2. 2. 安装常用软件
  3. 3. 安装gitlab(开源版)
    1. 3.1. 使用清华大学软件镜像站
    2. 3.2. 安装 gitlab
  4. 4. 配置gitlab
    1. 4.1. 允许从第三方源代码服务器导入项目
    2. 4.2. 持续构建配置
  5. 5. 常用命令
    1. 5.1. 刷新配置以及服务启停
    2. 5.2. 控制台模式修改用户口令
  6. 6. 参考资料