云服务器搭建GitLab以及解决搭建完成后的卡顿问题

  • Post author:
  • Post category:其他




云服务器搭建GitLab

因为暑期项目需要,Gitee,GitHub等多人协作的名额又少,所以选择了在自己的服务器上搭建了一个Gitlab。期间遇到了很多坑,在这里都记录下来。这里要特别感谢两篇博客,起到了极大的帮助。这里给出链接



1. Ubuntu搭建GitLab笔记



2. 阿里云,腾讯云搭建 gitlab 服务器卡顿问题解决方法



搭建环境



服务器

ESC:阿里云学生机,1核,2G。

操作系统:Ubuntu 16.04 64位



需要工具

SSH工具



操作



安装

其实一开始照着给的第一篇博得那么做就可以了,这里简单给出命令,详情参考链接:

1. 安装一些依赖:
sudo apt-get install curl openssh-server ca-certificates postfix

2.安装GitLab
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

sudo apt-get install gitlab-ce


3.更改配置
vim /etc/gitlab/gitlab.rb
将external_url = 'http://git.example.com'修改为自己的域名地址:http://example.com,默认为80端口,如要使用其他端口后面加上端口号,如:http://127.0.0.1:8080

4.重置,过程可能会非常慢长,请静心等待。
sudo gitlab-ctl reconfigure



运行相关命令

  1. 启动:

    sudo gitlab-ctl start
  2. 停止:

    sudo gitlab-ctl stop
  3. 重启:

    sudo gitlab-ctl restart



后记

安装之后,傻眼了。爆出了

502错误

,一般是因为GitLab运行需要消耗大量的内存。而我这可怜的小小的学生机架不住造,于是就出现了502。查看CPU占用100%,然后 for a long time。然后ssh也无法连接,我的博客也打不开了,我直接重启了。如果你要重启的话,要温柔。强制重启可能数据会丢失。

重启之后,阴差阳错的可以访问了,但是巨卡啊,过一会又502了,这可不行,然后就有下一步的操作:



解决GitLab搭建后卡顿的问题

这里就用到了开头给出的第二个链接,我也就列举一下命令吧,直接照做就可以。

+. 查看 swap 分区
cat /proc/swaps

如果只有标题栏,而查不出来数据,那就是没有swap分区。下面是解决方法:

1. 创建swap分区(有的同学可能是 /data/swap ,但我是/mnt/swap)
dd if=/dev/zero of=/mnt/swap bs=512 count=8388616
    
2. 通过mkswap命令将上面新建出的文件做成swap分区
mkswap /mnt/swap

3. 查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
 -. 查看参数
cat /proc/sys/vm/swappiness
 -. 若是0设置参数
sysctl -w vm.swappiness=60
    
4. 启用分区
swapon /mnt/swap
echo “/mnt/swap swap swap defaults 0 0>> /etc/fstab

5. 再次查看swap分区是否启动,有数据则说明设置成功了
cat /proc/swaps



邮件发送不成功

部署完了,嘚瑟嘚瑟。然后赶忙邀请成员,啧啧啧,群消息@了一堆人,然后都说邮箱并没有收到消息。哎,哎,哎。继续整。? ? ?



端口设置

这里给个链接吧,介绍邮件服务的端口:

邮件服务端口介绍



配置文件修改

在 /etc/gitlab/gitlab.rb中添加如下内容

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_user_name'] = "xxx@163.com"
gitlab_rails['smtp_password'] = "xxx"
gitlab_rails['smtp_domain'] = "smtp.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true

### 修改gitlab配置的发信人
gitlab_rails['gitlab_email_from'] = "xxx@163.com"
user["git_user_email"] = "xxx@163.com"

注意要查看安全组对应端口号是否打开。还有就是我这是照着网上搜到的进行配置,但是我自身配置过后更新重启并没有生效。然后添加过成员后,成员只要用相应的邮箱进行注册就会自动在组内。所以暂时没有管这些了。如果有知道的,还请指点。



使用DockerCompose搭建GitLab



环境准备

/usr/local下新建docker/目录,docker下新建gitlab目录。进入 gitlab目录,新建 docker-compose.yml文件。文件内容如下:

docker.compose.yml文件

version: '3'
services:
    gitlab:
      image: 'twang2218/gitlab-ce-zh'
      restart: always
      hostname: '用自己主机的ip'
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://用自己主机的ip:8099'
          gitlab_rails['time_zone'] = 'Asia/Shanghai'
          gitlab_rails['smtp_enable'] = true
          gitlab_rails['smtp_address'] = "smtp.aliyun.com"
          gitlab_rails['smtp_port'] = 465
          gitlab_rails['smtp_user_name'] = "example@163.com"  #用自己的aliyun邮箱
          gitlab_rails['smtp_password'] = "这是密码"
          gitlab_rails['smtp_domain'] = "aliyun.com"
          gitlab_rails['smtp_authentication'] = "login"
          gitlab_rails['smtp_enable_starttls_auto'] = true
          gitlab_rails['smtp_tls'] = true
          gitlab_rails['gitlab_email_from'] = 'example@163.com'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8099
          nginx['listen_port'] = 8099
      ports:
        - '8099:8099'
        - '443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/data:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab



启动

docker-compose up -d



最后

我服务器在重启之后,应该是没有启动指定位置下的nginx.conf 文件,所以造成了有的代理转发失效。等到重启的时候,报错,显示端口被占用。然后,丧心病狂,进程杀不死,就是GitLab的进程,就是杀不死啊。。。。然后,找了好多种方法,最后想到,把GitLab关了不就完了,然后问题解决。?,感觉自己就是个沙雕。。

最后祝愿各位同学一步到位,不折腾。也再次感谢其他博客的帮助!!!



版权声明:本文为weixin_43815050原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。