在ECS服务器上部署GITLAB,有很多文章,但是一路走下来,还是很多坑坑洼洼的经历,因此把大的工作流程记录下来。如果里面的细节不清楚,随便在论坛上都能找到对应部分的帖子。
一、LINUX Ubuntu非docker安装
1.ECS上安装Ubuntu
因为比较吃内存,选了2vCPU/4GB/40GB,另外加了一个云盘放仓库数据
2.安装 apt 和邮件发送服务 postfix
sudo apt update
sudo apt install ca-certificates curl openssh-server postfix
3.下载及安装gitlab-ce
3.1 在线下载安装方法
sudo apt install gitlab-ce
3.2 离线下载安装方法
apt install wget
sudo wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/focal/main/g/gitlab-ce/gitlab-ce_14.9.4-ce.0_amd64.deb
apt -i gitlab-ce_14.9.4-ce.0_amd64.deb
#写文章时最新是gitlab-ce 14.9,反正在合适的仓库里找合适的版本即可
4. 修改gitlab.rb配置
4.1 修改网址
external_url 'https://ip.ip.ip.ip'
gitlab_rails['gitlab_ssh_host'] = 'ip.ip.ip.ip'
注意,这里如果改成https,就是要调整下面的nginx,否则默认使用http亦可
4.2 调整邮件设置,激活相关语句
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "*****@qq.com" #发件的邮箱账号
gitlab_rails['smtp_password'] = "@#¥@!%#@¥!%¥!" #从qq邮箱拿到的smtpSSL发信授权码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true
###! **Can be: 'none', 'peer', 'client_once', 'fail_if_no_peer_cert'**
###! Docs: http://api.rubyonrails.org/classes/ActionMailer/Base.html
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
#这个一定要打开,不允许使用25端口了,必须通过SSL验证,互联网业务的进步
#gitlab_rails['smtp_ca_path'] = "/etc/ssl/certs"
#gitlab_rails['smtp_ca_file'] = "/etc/ssl/certs/ca-certificates.crt"
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
##! If your SMTP server does not like the default 'From: gitlab@gitlab.example.com'
##! can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = '*****@qq.com' #这个要求和前面的账号一样
gitlab_rails['gitlab_email_display_name'] = 'Gitlab Administor'
gitlab_rails['gitlab_email_reply_to'] = '*****@qq.com' #这个也是
4.3 调整默认仓库路径:
git_data_dirs({
"default" => {
"path" => "/datadisk/gitrepo"
}
})
4.4 如果要启动https,修改:
nginx['redirect_http_to_https'] = true
附件相关几句也要去掉注释,激活运行
5. 重配置,重启
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restar
6. 初次登录
第一次重配置、重启以后,初次登录,获取root密码。
cat /etc/gitlab/initial_root_password #查看root密码,用它登录
7. 配置服务器虚拟内存文件交换区
#使用dd命令创建一个swap交换文件,4G大小为例,命名为swap。
dd if=/dev/zero of=/mnt/swap bs=1M count=4096
#制作为swap格式文件
mkswap /mnt/swap
#用swapon命令将该文件挂载swap分区
swapon /mnt/swap
为了防止重启后,swap分区变成0, 需要修改/etc/fstab文件
vim /etc/fstab
在文件最后一行加上
/mnt/swap swap swap default 0 0
8. 外部内存交换激活配置
swapness设置swap起作用的阈值,例如内存低于30%
echo "vm.swappiness=70" >> /etc/sysctl.conf
二、docker安装
docker安装网上讨论非常多,这里不赘述。主要是gitlab的路径,需要把三个主要的目录,尤其是放数据的/var/opt/gitlab映射出来。
export GITLAB_HOME=/datadisk/docker/gitlab
docker run -d -p 9443:443 -p 9080:80 -p 9022:22 --name gitlab --restart always -v $GITLAB_HOME/config:/etc/gitlab -v $GITLAB_HOME/log:/var/log/gitlab -v $GITLAB_HOME/data:/var/opt/gitlab gitlab/gitlab-ce
其它关于gitlab.rb的设置问题,和前文类似。