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

云服务器搭建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'] = "[email protected]"
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'] = "[email protected]"
user["git_user_email"] = "[email protected]"

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

使用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'] = "[email protected]"  #用自己的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'] = '[email protected]'
          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关了不就完了,然后问题解决。?,感觉自己就是个沙雕。。

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

你可能感兴趣的:(运维,搭建GitLab,GitLab导致服务器卡顿,GitLab发送邮件问题)