服务器搭建 Gitlab
创作于 2018 年左右,最初创建时间已丢失
环境
- ubuntu16.04
安装 gitlab-ee 步骤(无特殊说明,安装过程中采用默认配置项)
- 安装和配置必要依赖
sudo apt-get update
sudo apt-get install -y curl openssh-server ca-certificates
- 安装邮件服务器
sudo apt-get install -y postfix
- 下载 gitlab 安装包并安装
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
- 设置访问路径(此处有坑)
sudo EXTERNAL_URL="http://gitlab.example.com" apt-get install gitlab-ee
这里的方式是在安装 gitlab 企业版的命令上通过参数的方式指定访问地址,官网示例中直接给的是一个域名地址,此操作其实会在 gitlab 安装后的/etc/gitlab/gitlab.rb
文件里有个EXTERNAL_URL
的配置项(整个 gitlab 的所有配置都在此)
所以当然这里也就可以只进行安装,即
sudo apt-get install gitlab-ee
然后再修改默认的配置文件,把EXTERNAL_URL
改成 gitlab 的访问地址
vi /etc/gitlab/gitlab.rb
重新加载配置文件
sudo gitlab-ctl reconfigure
重启 gitlab 服务
sudo gitlab-ctl restart
问题来了,如果你这里EXTERNAL_URL
配置为机器的 IP,即
EXTERNAL_URL="http://xx.xx.xx.xx"
那么默认访问的是http://xx.xx.xx.xx
的 80 端口,而 80 端口可能被占用,或受 ECS 限制,需要单独配置 80 端口的访问权限,所以这里可以自定义访问的端口,方法也很简单,就是在 IP 地址后面加上端口,例如:
EXTERNAL_URL="http://xx.xx.xx.xx:8800"
然后还有关键的一步,就是开放端口对外的访问权限,这里以 ubuntu16.04 为例
安装 iptables
sudo apt-get install iptables
添加规则
iptables -I INPUT -p tcp --dport 8800 -j ACCEPT
保存规则
iptables-save
这样操作后,服务器重启后会失效,需要持久化规则
安装 iptables-persistent
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload
- 初始化账号
访问配置好的 gitlab 地址,例如http://xx.xx.xx.xx:8800
,会提示设置密码,这里设置的即是管理员 root 的密码,重设后使用如下账号登录管理员账号
用户名:root
密码:重设后的密码
- 初始化组、用户、项目
创建一个 group,点击顶部扳手图标(admin area),添加用户,添加用户后保存,然后再通过 Edit 修改可设置初始密码(用户使用该账号登录后会提示修改密码)
将用户添加进组,创建项目
用户初始操作
登录 gitlab 地址,点击 Setting,添加本地已有的或生成的 SSH-KEY
- 完成
卸载 gitlab-ee
这才是个大坑,比安装麻烦(卸载干净不容易),官网也没找到官方的卸载步骤
还好*nix 系统秉承一切皆文件,并且提供了一系列强大工具,比如 ls、find、grep,可以全局查找进行手动清理
- 停服务
sudo gitlab-ctl stop
- 进程操作(可选)
查看进程
ps -ef|grep gitlab
找到守护进程runsvdir -P /opt/gitlab/service log
的 PID 并停掉
kill -9 端口号
- 删除 gitlab 相关文件
find / -name gitlab |xargs rm -rf
- 删除包含 gitlab 的相关目录和文件
find / -name *gitlab*|xargs rm -rf
- 删除 uninstall 时生成的备份文件(可选)
ls /root/gitlab*
rm -rf /root/gitlab*
- Done
安装 gitlab-ce
1、2 步同企业版(简略如下)
sudo apt-get install curl openssh-server ca-certificates postfix
- 下载 gitlab-ce 包
curl -O https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.4.2-omnibus-1_amd64.deb
- 或者直接下载安装脚本
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
- 上面的脚本执行后会添加 gitlab 服务器配置到
/etc/apt/sources.list.d
目录,并且添加配置文件gitlab_gitlab-ce.list
到/etc/apt/sources.list.d
目录,内容如下
# this file was generated by packages.gitlab.com for
# the repository at https://packages.gitlab.com/gitlab/gitlab-ce
deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ xenial main
deb-src https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu/ xenial main
可通过more /etc/apt/sources.list.d/gitlab_gitlab-ce.list
查看
后缀为 deb 的为包,使用 curl -O 下载到本地当前文件夹,名称为 deb 包的文件名,使用
-o
参数可以自定义下载到本地的文件名,例如curl -o mygettext.html http://www.gnu.org/software/gettext/manual/gettext.html
,后缀为 deb.sh 的为安装脚本,需要通过管道调用 bash 来运行安装脚本,例如curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
- 安装 gitlab-ce
sudo apt-get install gitlab-ce
- 修改配置文件,把
EXTERNAL_URL
改成 gitlab 的访问地址
vi /etc/gitlab/gitlab.rb
- 重新加载配置文件
sudo gitlab-ctl reconfigure
- 重启 gitlab 服务
sudo gitlab-ctl restart
其他操作见企业版安装(比如开放外部访问端口等)
访问配置好的地址
账号初始化