如果你想拥有一个的私有GIT服务器,那么gitlab可能就是你唯一的选择了,正好我就有这样一个需求,我花了一些时间了解了一下它,然后真的感觉”它就是我的菜!”,并且有很多因素会使我难以拒绝:
- 稳定,功能强大: 我要的不仅仅是一个代码仓库,那样的话SVN也能将就用了.我需要的一个能够帮助我围绕代码来展开工作的全栈方案.
- 活跃: 开源的软件最怕就是作者丢个代码上去然后就跑了.有些新功能你可能现在用不上,但是在你需要的时候,你直接就用上成熟方案了,比如对
kubernetes
的支持. - 一站式解决方案: 它不仅可以做问题跟踪,还可以做项目管理,并且它有自己的CI插件,从开发到部署都可以打通.
- 其他: 比如囊中羞涩,又比如老板信不过云服务托管商…
安装环境:
ubuntu 16.04 desktop (x64)
要流畅运行gitlab,需要2G以上物理内存
操作系统安装
此过程略过,系统语言建议选则默认的英文版
安装常用软件
1 | # 更新安装源缓存 |
注意:
- 安装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 | sudo -i |
安装 gitlab
1 | sudo apt-get update |
安装完成后,在浏览器输入服务器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
文件
先确保OmniAuth全局配置参数已经正确配置
1
2
3gitlab_rails['omniauth_enabled'] = true
gitlab_rails['omniauth_allow_single_sign_on'] = false
gitlab_rails['omniauth_block_auto_created_users'] = true添加OmniAuth授权凭据
1
2
3
4
5
6
7
8
9
10
11gitlab_rails['omniauth_providers'] = [
{
"name" => "gitlab",
"app_id" => "你的appid",
"app_secret" => "你的访问密钥",
"args" => { "scope" => "api" }
},
{
第二个
}
]刷新gitlab 配置信息
1
sudo gitlab-ctl reconfigure
持续构建配置
CI是很重的的一个功能点,建议用上.
CI配置的分两个部分:
- Server 端: 也就是gitlab服务器,负责管理接入的CI客户端
- Client 端: 即CI软件/系统,比如gitlab自家的
GitLab Runner
,又或者第三方CI工具(如:jenkins
,Hudson
)
这部分内容有点多,需要抽时间整理一下再发出来.
常用命令
刷新配置以及服务启停
1 | #重新配置 |
控制台模式修改用户口令
1 | gitlab-rails console production |
参考资料
gitlab安装文档
:https://about.gitlab.com/downloads/#ubuntu1604gitlab 清华大学镜像站使用帮助
:https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/