前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu19.1 中 GitLab 的安装配置与卸载

Ubuntu19.1 中 GitLab 的安装配置与卸载

作者头像
wsuo
发布2020-07-31 16:02:56
2.5K0
发布2020-07-31 16:02:56
举报
文章被收录于专栏:技术进阶之路技术进阶之路

文章目录

代码语言:txt
复制
- 一、概述
- 二、搭建环境
    - 1、虚拟机配置
    - 2、开启防火墙
    - 3、安装依赖项
- 三、安装GitLab
- 四、配置GitLab
    - 1、配置域名地址
    - 2、配置 postfix
    - 3、配置SMTP服务
- 五、卸载GitLab
    - 1、停止运行
    - 2、执行卸载命令
    - 3、查看 gitlab 进程
    - 4、删除 gitlab 文件
- 六、遇到的问题
    - 1、gitlab安装报错
    - 2、启动502

一、概述

代码语言:javascript
复制
gitlab 是一个开源的托管 Git 的存储库。

git相关概念: git 是一种版本控制系统,是一个命令,是一种工具 gitlib 是用于实现git功能的开发库 github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放 gitlab 是一个基于git实现的在线代码仓库托管软件,一般用于在企业内网搭建git私服 注:gitlab-ce 社区版 ;gitlab-ee是企业版,收费

二、搭建环境

1、虚拟机配置

由于 gitlab 比较吃资源,所以你要保证虚拟机给的配置应该至少是这样:

而且安装完之后就不要再打开浏览器等其他应用程序了,不然的话就会这样:

可以看到,CPU 和 RAM 全部爆红。

我当时心态崩了。

2、开启防火墙

由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw

代码语言:javascript
复制
sudo  ufw enable|disable

查看防火墙的状态:

代码语言:javascript
复制
sudo ufw status

打开或关闭某个端口,例如:

代码语言:javascript
复制
//允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow smtp
//禁止外部访问smtp服务
sudo ufw deny smtp
//删除上面建立的某条规则
sudo ufw delete allow smtp

对于我们此次安装 gitlab 只需要保证这3个,请依次执行:

代码语言:javascript
复制
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

3、安装依赖项

在我们自己安装GitLab之前,安装一些在安装过程中持续使用的软件非常重要。可以从Ubuntu的默认包存储库轻松安装所有必需的软件。

分别输入:

代码语言:javascript
复制
//刷新本地包索引
sudo apt update
//安装依赖项
sudo apt install ca-certificates curl openssh-server postfix

如果你安装的时候遇到了如下图的问题:

请参考我的这篇文章换源:换源,完了回来再继续下面的操作:

  • 安装过程会有图形界面选项,一直回车就行了

可能会让你设置一个邮箱:

代码语言:javascript
复制
//我设置成了这个,随便设置的,后面可以改,可以选择回车跳过
 wsuo@ubuntu-gitlab.com

打开HTTP和SSH端口:

代码语言:javascript
复制
 iptables -I INPUT -m tcp -p tcp --dport 22 -j ACCEPT
 iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT
 //如果提示你 Permission Denied 就是说权限不足,解决办法就是在前面加上 sudo
 //或者切换到管理员 : sudo su
  • 如果要卸载的话执行:
代码语言:javascript
复制
apt-get --purge remove postfix

三、安装GitLab

官方下载地址太慢了,这里我们换源:

1、首先信任 GitLab 的 GPG 公钥:

代码语言:javascript
复制
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null

2、然后用root账户,打开vi:

代码语言:javascript
复制
sudo su
vi /etc/apt/sources.list.d/gitlab-ce.list

3、将下面的内容粘贴进去

代码语言:javascript
复制
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu xenial main
//粘贴至文本中,按Esc键,键入:,最后输入wq保存并退出。

4、安装 gitlab-ce:

代码语言:javascript
复制
sudo apt-get update
sudo apt-get install gitlab-ce

5、打开 sshd 和 postfix 服务

代码语言:javascript
复制
service sshd start
service postfix start

6、安装完成之后启动gitlab

初次启动会比较漫长,如果电脑配置低会卡成狗。

补充:时间是超级无敌长,由你的电脑配置决定。

代码语言:javascript
复制
sudo gitlab-ctl reconfigure

7、在浏览器中打开:http://127.0.0.1。

但是不建议在虚拟机中这么做,建议先获取虚拟机的 ip 地址,然后在自己的电脑上访问,比如我的 ip 地址为 192.168.2.105 ,可以这样访问:

代码语言:javascript
复制
http://192.168.2.105

获取 ip 地址的方法:

代码语言:javascript
复制
ifconfig
//如果没有net-tools,按照他的提示安装.
//好像是这个命令
apt install net-tools

首次使用时,GitLab会提示设置密码,默认配置的是root用户的密码,设置后就可以正常使用了。

四、配置GitLab

1、配置域名地址

1、敲入vim /etc/gitlab/gitlab.rb打开文件,将external_url = 'http://git.example.com'修改成自己的 IP 或者 HostName,比如:

代码语言:javascript
复制
external_url = 'http://192.168.2.105'

以下为高级操作,小白请无视

2、配置 postfix

配置 GitLab 的发件邮箱,我们可以使用下面命令,测试发布发送邮件:

执行下面的进行命令测试发送邮件:

代码语言:javascript
复制
sudo apt-get install mailutils
代码语言:javascript
复制
echo "Test mail from postfix" ws2821@yeah.net

要等很久才能收到邮件,建议先去干别的事情。

然后过一会他会莫名其妙的有个提示:

我当时很害怕,但是又很好奇,于是我就进去看看:

代码语言:javascript
复制
vim /var/mail/root

打开之后:

把系统发件邮箱地址记下来:

我是这个:

代码语言:javascript
复制
"MAILER-DAEMON@wsuo"@ubuntu-gitlab.com

然后再打开vim /etc/gitlab/gitlab.rb文件,将gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'修改为系统发件邮箱地址:

代码语言:javascript
复制
gitlab_rails['gitlab_email_from'] = '"MAILER-DAEMON@wsuo"@ubuntu-gitlab.com'

上面这些配置好之后,就可以启动 GitLab 了:

代码语言:javascript
复制
sudo gitlab-ctl reconfigure

3、配置SMTP服务

如果你觉得这样太繁琐了,可以不设置,对你的操作没有任何影响,只是接收不到邮件消息,也可以使用腾讯的邮件系统:

修改GitLab邮件服务配置(gitlab.rb文件),使用腾讯企业邮箱的SMTP服务器,填写账号和密码

代码语言:javascript
复制
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxx"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = 'plain'
gitlab_rails['smtp_enable_starttls_auto'] = true

使配置生效:

代码语言:javascript
复制
gitlab-ctl reconfigure
gitlab-rake cache:clear RAILS_ENV=production      # 清除缓存

附上常用命令:

代码语言:javascript
复制
//查看版本信息
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

//12.8.1

五、卸载GitLab

装完就后悔了,卡的都不能动,因为装完之后它默认开机自启动。好好的虚拟机被败坏成什么样了?

于是我觉得还我的 Ubuntu 一个青春亮丽的形象,把可恶的 gitlab 卸载掉:

卸载之前我们先看一下它安装到哪个位置了,因为我们是通过 apt 命令安装的,所以他会安装在 /opt 目录下,我们来看一下是不是这样子的:

我们发现这小子果然在这里,那他就死定了。

下面执行我们的灭绝计划:

1、停止运行

代码语言:javascript
复制
sudo gitlab-ctl stop

2、执行卸载命令

执行下面的命令,后重启系统

这块注意了,看看是 gitlab-ce 版本还是 gitlab-ee 版本,别写错误了

代码语言:javascript
复制
//因为我们是使用 新立得 安装的所以直接执行命令
sudo apt-get remove gitlab-ce    等价于这条命令:  sudo apt-get --purge remove gitlab-ce
//执行完这个命令就可以了,你的电脑上就卸载了这个软件,如果你想更彻底的删除,可以继续执行下面的命令
# 删除暂存的软件安装包
sudo apt-get clean gitlab-ce

删除过程中会让你输入一次 y

执行完之后再去看一看,发现原来的文件里只有 2M 了:

3、查看 gitlab 进程

代码语言:javascript
复制
ps -ef|grep gitlab

杀死第一个进程:

代码语言:javascript
复制
kill -9 8922

然后在查看就没有了。

4、删除 gitlab 文件

代码语言:javascript
复制
//删除所有包含gitlab的文件及目录
find / -name gitlab|xargs rm -rf 

删除gitlab-ctl uninstall时自动在root下备份的配置文件:

代码语言:javascript
复制
cd /root
rm -rf /root/gitlab然后按tab自动补全

比如我的是:

代码语言:javascript
复制
root@ubuntu:~# rm -rf gitlab-cleanse-2020-02-29T08\:43/

六、遇到的问题

1、gitlab安装报错

执行sudo apt-get install gitlab-ce时报错:

文字信息如下:

代码语言:javascript
复制
There was an error running gitlab-ctl reconfigure:

gitlab_sysctl[kernel.shmmax] (postgresql::enable line 67) had an error: Mixlib::ShellOut::ShellCommandFailed: execute[load sysctl conf kernel.shmmax] (/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/resources/gitlab_sysctl.rb line 46) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '255'
---- Begin output of sysctl -e --system ----
STDOUT: * Applying /etc/sysctl.d/10-console-messages.conf ...
kernel.printk = 4 4 1 7
* Applying /etc/sysctl.d/10-ipv6-privacy.conf ...
net.ipv6.conf.all.use_tempaddr = 2
net.ipv6.conf.default.use_tempaddr = 2
* Applying /etc/sysctl.d/10-kernel-hardening.conf ...
kernel.kptr_restrict = 1
* Applying /etc/sysctl.d/10-link-restrictions.conf ...
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.d/10-magic-sysrq.conf ...
kernel.sysrq = 176
* Applying /etc/sysctl.d/10-network-security.conf ...
net.ipv4.conf.default.rp_filter = 2
net.ipv4.conf.all.rp_filter = 2
* Applying /etc/sysctl.d/10-ptrace.conf ...
kernel.yama.ptrace_scope = 1
* Applying /etc/sysctl.d/10-zeropage.conf ...
vm.mmap_min_addr = 65536
* Applying /usr/lib/sysctl.d/30-tracker.conf ...
fs.inotify.max_user_watches = 65536
* Applying /usr/lib/sysctl.d/50-default.conf ...
net.ipv4.conf.all.promote_secondaries = 1
net.core.default_qdisc = fq_codel
* Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.sem.conf ...
* Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.shmall.conf ...
* Applying /etc/sysctl.d/90-omnibus-gitlab-kernel.shmmax.conf ...
kernel.shmmax = 17179869184
* Applying /etc/sysctl.d/90-omnibus-gitlab-net.core.somaxconn.conf ...
* Applying /etc/sysctl.d/99-sysctl.conf ...
* Applying /etc/sysctl.d/protect-links.conf ...
fs.protected_hardlinks = 1
fs.protected_symlinks = 1
* Applying /etc/sysctl.conf ...
STDERR: sysctl: cannot open "/etc/sysctl.d/90-omnibus-gitlab-kernel.sem.conf": 没有那个文件或目录
sysctl: cannot open "/etc/sysctl.d/90-omnibus-gitlab-kernel.shmall.conf": 没有那个文件或目录
sysctl: cannot open "/etc/sysctl.d/90-omnibus-gitlab-net.core.somaxconn.conf": 没有那个文件或目录
---- End output of sysctl -e --system ----
Ran sysctl -e --system returned 255

全是红色的,我当时吓坏了。

去GitLab论坛找到了解决方案:

代码语言:javascript
复制
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.sem.conf
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-net.core.somaxconn.conf

2、启动502

我服了,本来好好的,突然莫名其妙就502了,我猜想是 timeout 的问题,去配置文件里找到它设置时间长一点应该就好了:

1、打开文件:

代码语言:javascript
复制
vim /etc/gitlab/gitlab.rb

2、修改时间

找到这两个地方:

gitlab_rails‘webhook_timeout’ = 90 gitlab_rails‘git_timeout’=90

3、更新配置文件

代码语言:javascript
复制
sudo gitlab-ctl reconfigure

然后我修改完上述文件就好了,如果你还不行?

试试修改端口:

代码语言:javascript
复制
unicorn['port'] = 8888

gitlab_workhorse['auth_backend'] = "http://localhost:8888" 

注意:unicorn['port']与gitlab_workhorse['auth_backend']的端口必须相同

如果你还不行,请回去执行第五步-卸载-重装。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、概述
  • 二、搭建环境
    • 1、虚拟机配置
      • 2、开启防火墙
        • 3、安装依赖项
        • 三、安装GitLab
        • 四、配置GitLab
          • 1、配置域名地址
            • 2、配置 postfix
              • 3、配置SMTP服务
              • 五、卸载GitLab
                • 1、停止运行
                  • 2、执行卸载命令
                    • 3、查看 gitlab 进程
                      • 4、删除 gitlab 文件
                      • 六、遇到的问题
                        • 1、gitlab安装报错
                          • 2、启动502
                          相关产品与服务
                          代码托管
                          CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档