草庐IT

如何在CentOS7上搭建自己的GitLab仓库

会编程的蜗牛 2023-03-28 原文
序言
各位好啊,我是会编程的蜗牛,作为java开发者,在团队开发中,一般都是需要使用git及git仓库来管理我们的代码的,这非常方便。我以前在小公司的时候,基本都是一个人开发一个项目,所以也没有怎么接触过git,后来去了大一点的公司,才第一次接触。这其中使用的比较多的仓库就是gitlab,但之前都是别人帮我搭好的,最近为了研究下jenkins自动化部署,所以得先安装下git仓库,这里首选gitlab,当然在这之前,我们可能还需要安装一个centos系统,这个可以参考我之前的文章:如何用VMWARE创建一个Linux虚拟机
话不多说,直接开始安装吧。
 
安装sshd
首选,先安装下sshd依赖,执行如下命令:
yum install -y curl policycoreutils-python openssh-server
按照正常的设想,应该是等待安装完成,但却报错了,如图:
 
看样子,是centos7里面默认的yum源镜像有点问题,网上查了一下,找到了解决方法,大致的原因是yum配置文件里指向的域名识别不了;需要重新设置下DNS指向。具体可以参考下这篇文章。https://blog.csdn.net/linhua_111/article/details/103522748
解决之后,再次执行上面的命令,就可以成功安装了。
 
安装好之后,需要启用和启动sshd服务,执行命令:
 
systemctl enable sshdsystemctl start sshd
设置防火墙
打开 /etc/sysctl.conf 文件,在文件最后添加新的一行。
 
输入如下文本:
 
net.ipv4.ip_forward = 1
这样,就配置好了防火墙。这样设置的作用是,当linux主机有多个网卡时,一个网卡收到的信息就可以传递给其他网卡了,就是数据可以进行转发。
 
然后,启动防火墙:
 
systemctl enable firewalldsystemctl start firewalld
最后,将防火墙重启,使防火墙设置生效。
systemctl reload firewalld
安装postfix
由于gitlab是需要使用postfix来作为邮件发送服务的,所以,还得安装下这个服务。
直接输入命令即可安装,在确认安装环节,输入【y】即可:
yum install postfix
 
安装完成之后,打开/etc/postfix/main.cf 文件,找到inet_protocols = all,将 all 改为 ipv4。
然后,启动postfix,输入命令:
systemctl enable postfix systemctl start postfix
安装gitlab
终于到了安装gitlab的时刻了。
首先,由于网络原因,我们需要更改下镜像源地址。在/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
 
然后保存文件,这样把该镜像源的地址设置成了清华大学的,下载的时候会比较快。
 
保存好之后,需要重新生成环境,执行如下命令:
yum makecache
 
但是,这里,我又遇到了一个问题,如图:
 
发生这个问题的原因比较明显,就是我的系统上,/var这个挂载点空间不足,本身是由于我这个挂载点空间就不大,然后安装gitlab又比较耗费空间,所以,就报错了。无奈,又网上搜了一圈。
最终找到了将根目录下的空间分配一部分给其他挂载点的方法,成功解决这个问题。大家如果也遇到这个问题,可以参考这篇文章,写得比较详细了。https://www.linuxidc.com/Linux/2019-04/158346.htm
 
然后,我们就可以正式安装gitlab了,执行如下命令:
yum install -y gitlab-ce
 
 
这个安装起来时间较长,需要耐心等待一下,大概10分钟左右。
当看到这个画面的时候,就说明gitlab已经基本安装好了。
 
运行gitlab
 
首先,我们需要配置一下GitLab的域名,当然这个不是必须的,但建议配置下,不然到时候访问gitlab的时候,名字不太好记。
打开/etc/gitlab/gitlab.rb文件,找到external_url 这个选项,改成改机器的ip或者域名,如图:
 
 
然后,就是初始化gitlab,这是必须的,时间也比较长,耐心等待下吧。
输入命令:
 
gitlab-ctl reconfigure
当出现如图的画面时,就已经配置完成了。
 
这里说明下常用的命令:
 
sudo gitlab-ctl reconfiguresudo gitlab-ctl stopsudo gitlab-ctl start
分别是初始化gitlab,关闭gitlab,启动gitlab。现在我们启动下gitlab。但这时,问题又出现了。出现了502界面,并不是我们想要的登录界面。
 
我网上又找了很多种解决办法,有说8080端口被占用的,但我这边是用80端口的,所以不是这个问题。也有说可能启动较慢,需要等待一段时间,可是我大概等了10几分钟了,也还是502,所以也不是这个问题。
最后,看到说可能是内存不够,这个倒是有可能的,我在设置虚拟机的时候,把内存好像只设置成了1GB,网上说最好大于2GB,所以又将虚拟机的内存改大了,改成了4GB。我这里用的是VMWare虚拟机,这个更改的操作,也可以参考我上面讲的我之前的那篇文章,这里就不展开讲了。
登录gitlab
千呼万唤始出来了。终于到了登录的时刻了,但是问题来了,账号是root,那么密码是多少呢?
 
有同学可能会说,直接注册一个账号不就得了,这样应该也可以,就是点击界面下面的注册选项。
不过我这里还是希望先用root账号登录,毕竟可能能看到的比较全面。密码的话,后面找了下,是在我们的某个文件里面了。而且是有时间限制的,到了时间,这个密码就被抹去了。我是在日志信息里找到的这个文件,如图
 
然后,我们打开这个文件,直接取出密码即可,也没有什么加密解密的操作。
 
最后,终于可以使用root和这个密码去登录了,看看登录后的效果。
 
 
总结
今天安装这个gitlab,虽然中间遇到了很多问题,但好在最后都一一解决了,有问题就得多查查别人怎么解决的,当然也需要我们自己的细致观察和严谨思考。后面有时间再写下如何使用gitlab创建一个仓库及一些常用配置吧。
推荐阅读 点击标题可跳转
 
Tabby,一款老外都在用的 SSH工具,竟然还支持网页操作
如何用Virtualbox搭建一个虚拟机
java程序员在交接别人的工作时如何保证顺利交接?
JetBrains Fleet初体验,如何运行一个java项目
IDEA 调试起来太费劲?你需要了解这几招!

有关如何在CentOS7上搭建自己的GitLab仓库的更多相关文章

  1. ruby - 如何在 Ruby 中顺序创建 PI - 2

    出于纯粹的兴趣,我很好奇如何按顺序创建PI,而不是在过程结果之后生成数字,而是让数字在过程本身生成时显示。如果是这种情况,那么数字可以自行产生,我可以对以前看到的数字实现垃圾收集,从而创建一个无限系列。结果只是在Pi系列之后每秒生成一个数字。这是我通过互联网筛选的结果:这是流行的计算机友好算法,类机器算法:defarccot(x,unity)xpow=unity/xn=1sign=1sum=0loopdoterm=xpow/nbreakifterm==0sum+=sign*(xpow/n)xpow/=x*xn+=2sign=-signendsumenddefcalc_pi(digits

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  4. ruby-on-rails - 如何在 ruby​​ 中使用两个参数异步运行 exe? - 2

    exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby​​中使用两个参数异步运行exe吗?我已经尝试过ruby​​命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何ruby​​gems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除

  5. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 如何在 Ruby 中拆分参数字符串 Bash 样式? - 2

    我正在为一个项目制作一个简单的shell,我希望像在Bash中一样解析参数字符串。foobar"helloworld"fooz应该变成:["foo","bar","helloworld","fooz"]等等。到目前为止,我一直在使用CSV::parse_line,将列分隔符设置为""和.compact输出。问题是我现在必须选择是要支持单引号还是双引号。CSV不支持超过一个分隔符。Python有一个名为shlex的模块:>>>shlex.split("Test'helloworld'foo")['Test','helloworld','foo']>>>shlex.split('Test"

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby-on-rails - 如何在 ruby​​ 交互式 shell 中有多行? - 2

    这可能是个愚蠢的问题。但是,我是一个新手......你怎么能在交互式ruby​​shell中有多行代码?好像你只能有一条长线。按回车键运行代码。无论如何我可以在不运行代码的情况下跳到下一行吗?再次抱歉,如果这是一个愚蠢的问题。谢谢。 最佳答案 这是一个例子:2.1.2:053>a=1=>12.1.2:054>b=2=>22.1.2:055>a+b=>32.1.2:056>ifa>b#Thecode‘if..."startsthedefinitionoftheconditionalstatement.2.1.2:057?>puts"f

  10. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

随机推荐