最近买了一台服务器,纯属个人爱折腾的性格加上最近工作不忙,断断续续折腾了个把月的时间,已经记不清把服务器初始化几次了,今天终于把gitlab给跑通了。所以来记录一下安装的过程,也给其他同学在安装的时候减少一些不必要的问题。
下面的安装顺序跟我实现的顺序不一样,我是觉得这样从基本开始就不需要像我一样遇到问题再去百度找解决办法了,一步一步来哈。
1.服务器的配置
我是买的阿里云最低配的1核2G加40G硬盘的服务器,系统是centOs8。在今天安装第一次成功后才发现服务器直接卡爆了,没法操作其他,最后又重新初始化服务器了。其他同学如果预算足够的话,可以直接买2核4G的配置,因为这是gitlab要求的最低配置。不然就得像我一样修改gitlab的配置文件和添加swap分区的方式来让gitlab跑起来的情况。
首先是添加swap分区,保证能跑起来
使用dd命令创建名为swapfile 的swap交换文件(文件名和目录任意)dd if=/dev/zero of=/var/swapfile bs=1024 count=2097152 或者dd if=/dev/zero of=/var/swapfile bs=1024 count=2048k知识点:if(即输入文件,input file),of(即输出文件,output file)。dev/zero是Linux的一种特殊字符设备(输入设备),可以用来创建一个指定长度用于初始化的空文件,如临时交换文件,该设备无穷尽地提供0,可以提供任何你需要的数目。bs=1024 :单位数据块(block)同时读入/输出的块字节大小为1024 个字节即1KB,bs(即block size)。count=2048000 :数据块(block)数量为2048000 ,即2048000个1KB。可以计算swap分区的容量为:1KB 2097152=1KB 1024(k)10242=2097152=2G。dd命令里的单位M表示1024*1024,k表示1024。
执行完毕后,对交换文件格式化并转换为swap分区
mkswap /var/swapfile
挂载分区并激活分区
swapon /var/swapfile 此处的话会提示:“不安全权限0644,建议使用0600”。不用紧张,实际上已经激活过了不过也可以修改权限,看个人选择(反正我是修改了~)。chmod -R 0600 /var/swapfile
执行完后就可以查看swap分区是否添加并激活使用了
free –h
能看到swap的使用情况,我这个是已经运行了gitlab以后的使用情况,能看出来还是占用了不少使用空间的。
修改fstab文件,给末尾追加就行
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
修改服务器ssh的配置文件,因为在运行gitlab-ctl reconfigure后发现占用服务器默认的ssh端口现象,也可能是其他原因导致无法通过ssh连接服务器,所以先把ssh配置文件进行了修改,避免装上以后没法通过ssh连接服务器进行其他操作。
修改ssh配置文件sshd_configvim /etc/ssh/sshd_config
设置防火墙firewall-cmd --zone=public --add-port=端口号/tcp --permanentfirewall-cmd --reload先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步)yum provides semanage
查询当前ssh服务端口
semanage port -l | grep ssh
向 SELinux 中添加 ssh 端口
semanage port -a -t ssh_port_t -p tcp 配置文件里的端口号
重启 ssh 服务
systemctl restart sshd.service
服务器的配置基本上就是这些,算是准备工作,也是记录了一下步骤和遇到的问题。另外在最后一步我的服务器保留了两个ssh的端口号,不知道会有什么影响,有看到资料说在配置完新的端口号以后可以把原来默认的端口给注释掉,我没这样操作,可能会存在一些不安全的问题,这个问题有待以后进一步学习服务器相关的知识来把坑填上,此处只是对我个人配置的一些记录哈。
2.gitlab的安装
服务器的准备工作完成以后,进行gitlab的安装和启用policycoreutils、openssh-server和openssh-clients组件
dnf install -y curl policycoreutils openssh-server openssh-clientssystemctl enable sshdsystemctl start sshdfirewall-cmd --permanent --add-service=httpfirewall-cmd --permanent --add-service=httpssystemctl reload firewalld
使用清华大学镜像安装gitlab
使用vim新建并编辑源配置文件vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]name=Gitlab CE Repositorybaseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/gpgcheck=0enabled=1
保存退出源设置文件后就可以安装gitlab了
yum makecacheyum -y install gitlab-ce
安装完成以后,进入/etc/gitlab文件,修改gitlab.rb配置文件,因为我的服务器配置低的原因,要修改很多地方
先停止gitlabgitlab-ctl stop然后对gitlab降低配置要求vim /etc/gitlab/gitlab.rb这几个配置的话要把#去掉,并适当改小减少数据库缓存postgresql['shared_buffers'] = "256MB" 我修改成了128减少数据库并发数postgresql['max_worker_processes'] = 8 我改成了4减少sidekiq并发数sidekiq['concurrency'] = 25 这个的话我的gitlab配置文件显示的是sidekiq['max_concurrency'] = 50 不确定是不是版本的问题,所以我没修改这个
最关键的问题是修改external_url
external_url = '服务器地址或域名+端口号external_url这里后面一定要加 = 号,不然会报错unicorn['prot'] = 配置的端口号这一步可能不需要,如果访问不到gitlab的话可以试试这个解决办法gitlab_rails['gitlab_shell_ssh_port'] = 配置的端口号
然后就可以gitlab-ctl reconfigure等待配置生效了。因为修改了gitlab的最低配置要求和添加了swap分区,很快就好了,之前失败的几次,装了半个多小时还是失败,导致不断重置服务器。
配置生效以后,就可以通过域名或者域名加端口号进行访问,如果出现502的问题,建议先重启一下服务器,可能是配置没立即生效的原因,如果还不行,可以试试上面我说的那个方法,还不行,大家就只能自己解决了。
最后这就是我在服务器安装gitlab的过程。希望可以帮助到大家,另外安利一些服务器上的基本命令,避免各位小伙伴像我一样在修改文件的时候一行一行找对应的配置
,因为真的很痛苦,不多说了,show code!
以下命令都是在vim编辑模式下按下"/" 输入关键字查找对应的内容,n向下查找 N向上查找ESC之后:w 保存文件不退出vim:w file 将修改另外保存到file中不退出vim:w! 强制保存不退出vim:wq 保存文件退出vim:wq! 强制保存文件,退出wim:q 不保存文件退出vim:q! 不保存文件强制退出:e 放弃所有修改,从上次保存文件开始再编辑
基本就是这些了,感谢大家~