写在上面的话
好多IT人从业多年似乎都还没有亲自搭过一次Gitlab服务器,我就是其中之一!一般都是入职后,领到前面给的Git地址把项目clone出来!之后日复一日的crud搬砖,直至辞职。其实用了几百年Git了,而且从来没有亲自布署过Gitlab服务器!即使现今社会分工越来越细,布署Gitlab服务器一般都是运维的兄弟去做了,但假如你去一家创业公司,很可能就要你来布署的!所以该走的路我们还是得走一下!
现今来即将从“零”开始搭建Gitlab服务器:首先来瞧瞧Gitlab和Github的区别,一句话来概括就是:
Gitlab是给企业私有化布署的Git服务器;Github是互联网在线版的Git服务器!
Github对于开源项目买入是免费使用的,这么Gitlab收不收费呢?分布式版本控制方面的功能Gitlab也是免费使用的,提供了社区版(GitlabCE)给你们!Gitlab现今可强悍了,早已有自己成套的DevOps落地解决方案(提升生产力的神器),并且这部份功能是在收费的旗舰版/企业版(GitlabEE)上提供的!如同Github建私有化库房的功能也是收费的一样,很正常!
不啰嗦了,快速开始吧:步入官网如右图,按箭头依次点击:官方建议使用起码4GB的可用显存来运行Gitlab,我们选用服务器时就要注意了,起码要4GB以上。点击CentOS8仍然往下降
在安装步骤的最后,有一个短短的链接centos 安装owncloud,写着”CEorEE”,虽然有个CE版的入口,点进去如右图:新页面后面的好几段仍然在讲使用旗舰版(企业版GitlabEE)有多少用处….直至最后才放了一个免费社区版(GitlabCE)的链接“InstallGitLabCommunityEdition”,藏得那么深,这是怕他人晓得啊!续继点进去:继续点:服务器打算好后,按着官方GitlabCE版的安装说明进行安装即可,虽然很简单,认真算上去只有三步(因为我是root身分,所以不用sudo):
第一步
安装和启用policycoreutils、openssh-server和openssh-clients组件,并将它们开放防火墙(不要忘了reload防火墙):
dnfinstall-ycurlpolicycoreutilsopenssh-serveropenssh-clients#EnableOpenSSHserverdaemonifnotenabled:sudosystemctlstatussshdsystemctlenablesshdsystemctlstartsshd#Checkifopeningthefirewallisneededwith:sudosystemctlstatusfirewalldfirewall-cmd--permanent--add-service=httpfirewall-cmd--permanent--add-service=httpssystemctlreloadfirewal
与电邮通知相关的Postfix组件虽然可以暂时不用安装和配置,这个可以放在前面再来配置一个外部的SMTP服务器:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix第二步
使用curl工具下载并配置GitlabCE版RPM安装包的库房配置脚本(请确认你的服务器网路通畅,注意这只是RPM安装包的库房配置脚本,并不是真正的安装包)
curl-sS|sudobash第三步
安装GitlabCE版并指定外部访问的URL地址,这儿注意一下:外部访问URL地址使用一个自定义的域名,虽然该域名实际上没有也没关系!另外假如你的服务器没有https相关的证书,那就不要用https,直接用http合同!顾客端使用时你可以在HOST里做一下映射的,其实,有真实可以的域名就最好了!为何要用域名来指定外部访问URL地址呢?由于前面你使用Gitlab时会发觉这是一个明智的选择!
EXTERNAL_URL=””dnfinstall-ygitlab-ce
到这儿你会发觉要从第二步中配置的美国站下载多达700M的gitlab-ce包是有多么的艰辛,预计历时恐怕要10几个钟,假如没有科学上网的话还是要采用别的方式!
蜗牛速率是难以忍受的centos 安装owncloud,Ctrl+C斩断下载过程吧,换其它方式:
自己先从其他地方下载到gitlab-ce的rmp包,再上传到服务器进行安装;
使用一个国外镜像地址进行在线安装;
这儿我们讲一下第二种办法,使用国外镜像地址进行在线安装,这儿我们选择复旦学院提供的镜像服务器,由于它提供了比较全面的使用说明(),如今我们按说明来安装一下GitlabCE版(以下步骤是从承接里面的第二步开始的):
新的第二步
使用vi或vim新建并编辑yum源配置文件/etc/yum.repos.d/gitlab-ce.repo
#vim/etc/yum.repos.d/gitlab-ce.repo
填入以下yum源配置信息:
gitlab-ce
name=GitlabCERepositorybaseurl=$releasever/gpgcheck=0enabled=1新的第三步
使用yum包管理器安装GitlabCE版
#yummakecache#yum-yinstallgitlab-ce
在“新的第三步”里比原先的第三步少了个东西,啥东西呢?悉心的朋友肯定发觉了,没有配置Gitlab服务器的外部访问地址(EXTERNAL_URL)!不要急,等待Gitlab装完后我们再去配一下就好了!国外镜像还是比较快的,几分钟就下载并装好!
好了,如今该来补上“新的第三步”里缺位的Gitlab服务器的外部访问地址(EXTERNAL_URL),在那里配置呢?熟悉Linux服务器各目录作的人应当都能猜到:Gitlab如此全球通用的版本控制软件中国linux,配置文件应当会也根据Linux约定置于/etc目录中吧!使用cd到/etc目录看一看或用ls/etc/gitl再tab一下就晓得了!
#ls/etc/gitlab/gitlab.rb
果然是有一个Gitlab的配置文件!使用cat命令查看一下发觉内容不是通常的多linux系统iso下载,耳朵就会看瞎!这么我们用grep命令先过滤出包含外部访问地址(EXTERNAL_URL)配置内容先:
#grep-i’EXTERNAL_URL’/etc/gitlab/gitlab.rb##!Formoredetailsonconfiguringexternal_urlsee:##!EXTERNAL_URLwillbeusedtopopulate/replacethisvalue.external_url”#registry_external_url”#pages_external_url””#gitlab_pages
‘artifacts_server_url’
=nil#Defaultstoexternal_url+’/api/v4’#gitlab_pages
‘auth_redirect_uri’
=nil#Defaultstoprojectssubdomainofpages_external_urland+’/auth’#gitlab_pages
‘gitlab_server’
=nil#Defaultstoexternal_url#mattermost_external_url”#Whentheregistryisautomaticallyenabledusingthesamedomainas`external_url`,#Forexample,ifexternal_urlisthesamefortwosecondaries,youmustspecify#Ifitisblank,itdefaultstoexternal_url.
如今确认与外部访问地址(EXTERNAL_URL)相关的内容就如此多,动手前先用cp命令备份一下/etc/gitlab/gitlab.rb文件,由于前面我们要做字符串直接替换这些高险操作!有备无患!
#cp/etc/gitlab/gitlab.rb/etc/gitlab/gitlab.rb.bak#ls/etc/gitlab/gitlab.rbgitlab.rb.bak
现今使用sed命令替换/etc/gitlab/gitlab.rb文件中的为?,xxxxx为你的域名。
sed命令字符串替换格式:sed-i”s$要查找的数组$替换成的数组&g”文件名,-i表示是inplaceedit的意思,即就地编辑修改;参数里开头的s是search的意思,可以换成d表示delete,最后的g是globa的意思,即全文搜索;
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix0
完了后,我们再用grep命令先筛选一下与外部访问地址(EXTERNAL_URL)相关的内容:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix1
使用gitlab-ctl工具按照更改后的配置文件重新配置gitlab服务实例使配置生效:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix2还有其他一些常用命令如下
查看状态:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix3
启动服务:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix4
重启服务:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix5
停止服务:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix6
列举所有服务:
dnfinstallpostfixsystemctlenablepostfixsystemctlstartpostfix7
最后从虚拟机的宿主机浏览器上用IP地址或域名(用域名的话须要先在宿主机的/etc/hosts配置域名与IP地址映射,所以实际上还是IP)访问一下gitlab服务:访问成功如右图,密码在/etc/gitlab/initial_root_password文件中,登录后可更改:
附加