Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)
一、 安装并配置必要的依赖关系
在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。
注意:用户不是管理员权限,出现如下警告
用户不在sudoers文件中此事将被报告
可以使用 su root 切换root权限
1.安装ssh
sudo yum install -y curl policycoreutils-python openssh-server

若出现以下图片的信息则表示成功

2.将SSH服务设置成开机自启动,安装命令:sudo systemctl enable sshd
3.启动SSH服务,安装命令:sudo systemctl start sshd

4。安装防火墙(如果已经安装了防火墙并且已经在运行状态,则可直接进行第6步)
yum install firewalld systemd -y

若出现“完毕!”的字样,则表示安装成功

5.开启防火墙,安装命令:service firewalld start

6.添加http服务到firewalld,pemmanent表示永久生效,若不加--permanent系统下次启动后就会失效。
sudo firewall-cmd --permanent --add-service=http

7.重启防火墙,安装命令:sudo systemctl reload firewalld

8.接下来,安装Postfix以发送通知邮件,安装命令:sudo yum install postfix

9.将postfix服务设置成开机自启动,安装命令:sudo systemctl enable postfix
10.启动postfix,安装命令:sudo systemctl start postfix

在安装Postfix期间,可能会出现配置屏幕。选择“Internet Site”并按enter键。使用您的服务器的外部DNS以“mail name”并按enter。如果出现额外的屏幕,继续按enter键接受默认值。
11.wget 用于从外网上下载插件
检查系统中是否已经安装wget,使用命令若出现下图wget相关版本描述则说明系统中已经安装wget 若报系统找不到命令说明wget未安装

若wget未安装则进行安装,安装命令:yum -y install wget

12.安装vim编辑器 安装命令:yum install vim -y
二、添加GitLab镜像源并安装gitlab服务器
1.添加gitlab镜像
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm

2.安装gitlab 安装命令:rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
安装过程需要些时间,如果出现下图,则说明安装成功。(个人在安装时并未出现,但是也是成功的)

4.修改gitlab配置文件指定服务器ip和自定义端口:
vim /etc/gitlab/gitlab.rb

进入编辑器后按“i”键进入编辑状态,修改完毕后,按ESC键退出编辑状态
然后退出并保存,命令输入“:wq”
ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
5.重置并启动GitLab
执行:
gitlab-ctl reconfigure
gitlab-ctl restart
提示 "ok: run:"表示启动成功

6.访问 GitLab页面
如果没有域名,直接输入服务器ip和指定端口进行访问
初始账户: root 密码:5iveL!fe
第一次登录修改密码

7、为了安全性考虑,需要创建public key
创建key


[root@git-node1 demo]# ssh-keygen #一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
48:94:9a:65:cd:0f:f3:17:c6:dc:3c:28:0a:bb:47:98 root@git-node1
The key's randomart image is:
+--[ RSA 2048]----+
| .+ o + |
| .= = . * + |
| =.= * o . . |
| o.E.o o . |
| .oS . |
| . . |
| . |
| |
| |


8.复制id_rsa.pub公钥
| 
 1 
2 
 | 
[root@git-node1 demo]# cat ~/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyVSAhs+ZBTEwv5nMwyoordV4VBy+DoCyGBJcjqkcfagRyyGUZvS57T4rhgSpz2csMTtxBXAyo0vJltxPr8McsZmcDZ8+t5qr22h9wHULFs5uB5/uZ6CDomm<br>/rVtJjiT2l1Uzh14De1CJDbNRPTCbxvcD5Mi7Ko29epymdt8agYqV2+ROynYaSjqcKxuo6pXD/cGskO7JTOkek2wxmTFOxFQR/Ec1LtVk8ilcesENzMdeU4Nwr2lec6Lr++qKXQuO7a3vB4958Hfhh1JlRI<br>ShDuHBOsFChG+vJim6tl123k7jjePHxJhUORhVMpmD4pMNwN+NYv1ta3J3ZSW6v5uWxw== root@git-node1 | 
7.添加公钥至gitlab,如图1-6-1

图1-6-1添加服务器公钥
三 、添加远程仓库
1.gitlab创建仓库,进行远程同步,如图1-6-2 
图1-6-2gitlab创建远程仓库
2.使用git remote 添加远程仓库地址,选择SSH方式克隆。
[root@git-node1 ~]# cd demo/ //必须是git init 初始化仓库目录[root@git-node1 demo]# git remote add origin git@git-node1:root/git_demo.gitxxx
四 、修改远程仓库
由于刚开始添加的远程仓库写错了url,现在通过如下命令进行url修改
[root@git-node1 demo]# git remote set-url origin git@git-node1:root/git_demo.git
五、查看远程仓库
如果已经配置了远程仓库服务器,可以运行 git remote命令。它会列出你指定每一个远程服务器的简写。
[root@git-node1 demo]# git remoteorigin
也可以指定-v选项,会显示需要读写远程仓库git保存简写名称以及对应的URL地址。
[root@git-node1 demo]# git remote -vorigin git@git-node1:root/git_demo.git (fetch)origin git@git-node1:root/git_demo.git (push)
六、推送远程仓库
将本地库更新内容推送至远程,用git push命令,实际上是将当前分支推送至远程仓库。 
由于远程库是新建立空的,我们在第一次推送时候,git默认是不会把本地master关联至远端的master,所以我们需要加上-u参数,这样git不但会把本地的master分支内容推送至远程仓库的master分支,并且还会将本地的master分支和远程master分支关联起来。在以后推送或者拉取时就可以简化命令。
[root@git-node1 demo]# git push -u origin masterCounting objects: 5, done.Compressing objects: 100% (2/2), done.Writing objects: 100% (5/5), 432 bytes | 0 bytes/s, done.Total 5 (delta 0), reused 0 (delta 0)To git@git-node1:root/git_demo.git* [new branch] master -> master分支 master 设置为跟踪来自 origin 的远程分支 master。
如果推送冲突可以选择--force强行推送
[root@git-node1 xuliangwei]# git push origin --force如果一次都没有推送数据,可以选择—all一次全部推送至远程服务器[root@git-node1 xuliangwei]# git push origin --all
七、克隆远程仓库
如果现在仓库已经有开发好的项目,需要加入进来开发,可以先clone整个项目。
[root@git-node1 tmp]# git clone git@git-node1:root/git_demo.git正克隆到 'git_demo'...remote: Counting objects: 5, done.remote: Compressing objects: 100% (2/2), done.remote: Total 5 (delta 0), reused 0 (delta 0)接收对象中: 100% (5/5), done.
八、拉取远程仓库
简单的说,这个命令会访问远程仓库,从中取出你还没有的数据,或者git pull之后还是没有的数据。 
此前在添加的远程仓库的时候指定了仓库名origin,命令会自动将其添加为远程仓库并默认以origin为简写。 
所以,git fetch origin相当于从远程获取最新版本到本地,然后比较本地master分支和远程master分支差别最后进行合并。
[root@git-node1 demo]# git fetch origin //拉取主分支最新版本(可以拉取其他分支)[root@git-node1 demo]# git fetch origin dev //获取dev分支最新数据
拉取数据,在生产环境中见到比较多的还是git pull相当于是从远程获取最新版本并merge到本地
[root@git-node1 xuliangwei]# git pull origin master #拉取主分支最新版本(可以拉取其他分支)[root@git-node1 xuliangwei]# git pull origin dev //获取dev分支最新数据
上述命令其实相当于git fetch 和 git merge在实际使用中,git fetch更安全一些,因为在merge前,我们可以查看更新情况,然后再决定是否合并 
1.6.8更改远程仓库
如果想重新命名一个远程仓库名称。将test重命名为rainbow,可以通过git remote rename进行修改。 
注意:这同时会修改你的远程分支名字。之前引用test/master的现在会引用rainbow/master 
1.添加新远程分支,并赋予test为远程仓库名称
[root@git-node1 git_demo]# git remote add test git@git-node1:root/git_demo.git[root@git-node1 git_demo]# git remote -vorigin git@git-node1:root/git_demo.git (fetch)origin git@git-node1:root/git_demo.git (push)test git@git-node1:root/git_demo.git (fetch)test git@git-node1:root/git_demo.git (push)
2.修改test名称为rainbow名称
[root@git-node1 git_demo]# git remote rename test rainbow[root@git-node1 git_demo]# git remote -vorigin git@git-node1:root/git_demo.git (fetch)origin git@git-node1:root/git_demo.git (push)rainbow git@git-node1:root/git_demo.git (fetch)rainbow git@git-node1:root/git_demo.git (push)
九、移除远程仓库
因为一些变动不再使用一些特定的镜像,可以通过git remote remove 远程仓库名称,移除远程仓库 
1.查看远程仓库
[root@git-node1 git_demo]# git remote -vorigin git@git-node1:root/git_demo.git (fetch)origin git@git-node1:root/git_demo.git (push)rainbow git@git-node1:root/git_demo.git (fetch)rainbow git@git-node1:root/git_demo.git (push)
2.移除不再使用的rainbow远程仓库
[root@git-node1 git_demo]# git remote remove rainbow[root@git-node1 git_demo]# git remote -vorigin git@git-node1:root/git_demo.git (fetch)origin git@git-node1:root/git_demo.git (push)
十、Git远程仓库小结
要添加一个仓库,首先必须知道仓库的地址,然后使用git remote add 命令添加远程仓库,也可使用git clone命令克隆。(Git支持多种协议,包括http、https,但通过ssh支持的原生git协议速度最佳。)
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git,关联后,使用命令git push -u origin master第一次推送master分支的所有内容,此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改
# git remote add [remote] [url]#添加(关联)远程库# git remote set-url [remote] [url] #修改远程仓库# git clone [url] #克隆远程仓库项目# git remote #查看指定远程仓库命名简写# git remote –v #查看远程仓库详细信息以及名称对应URL# git push -u remote master #第一次推送master分支的所有内容# git fetch remote [branch/tag] #下载远程仓库的所有变动# git pull remote [branch/tag] #拉取主分支最新版本(可以拉取其他分支)# git push remote [branch/tag] --force #强行推送当前分支至远程分支,及时冲突# git push remote [branch/tag] --all #推送所有分支到远程仓库# git remote rename [oldname] [newname] #修改远程仓库名称# git remote remove [name] #删除远程仓库名称以及URL地址
十一、安装过程遇见的那些坑
一、在CentOS里面安装软件,提示软件已安装,但是rpm -q和-e都是提示包没有安装
查看与rpm包相关的文件和其他信息 rpm -qa | grep 包名

查询包是否被安装,命令:rpm -q 包名

删除软件包,命令:rpm -e 包名

运行以上三步,把原来的包删除掉重新下载和安装
服务管理:
查看服务状态:gitlab-ctl status
开启服务: gitlab-ctl start
关闭服务:gitlab-ctl stop
关闭gitlab的自动启动 :systemctl disable gitlab-runsvdir.service
开启gitlab的自动启动:
- systemctl enable gitlab-runsvdir.service
 - systemctl start gitlab-runsvdir.service
 - gitlab-cmd start
 
Centos 7搭建Gitlab服务器超详细Centos 7搭建Gitlab服务器超详细(搭建成功)的更多相关文章
- 版本控制-svn服务器搭建和常用命令(centos 6.3)
		
Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...
 - 版本控制-https svn服务器搭建和常用命令(centos 6.3)
		
Svn是比较优秀的版本控制工具,虽然功能和性能上无法和Git媲美,但由于其容易搭建和使用的特性,所以在各个小公司还是很受欢迎的.使用Git可参考<版本控制-Git服务器搭建和常用命令使用> ...
 - 使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)
		
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.NTP服务器介绍 网络时间协议(Network Time Protocol,NTP)服务器,也就是日常所说的NTP服务器,用来提供同步时间服务 ...
 - 亚马逊云服务器AWS安装CentOS
		
亚马逊云服务器默认创建的实例,在停止之后再启动的情况下,IP会发生改变.所以我们最好先创建一个弹性IP,即EIP,不过我也不清楚这个费用. 1.按如图操作创建一个弹性IP,弹性IP创建之后可以随便绑定 ...
 - centos的用户、组权限、添加删除用户等操作的详细操作命令
		
1.Linux操作系统是多用户多任务操作系统,包括用户账户和组账户两种 细分用户账户(普通用户账户,超级用户账户)除了用户账户以为还 有组账户所谓组账户就是用户账户的集合,centos组中有两种类型, ...
 - 在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
		
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境 项目运行环境 阿里云(单核CPU, 1G内存, Ubuntu 14.04 x64 带宽1Mbps), 具体购买和ssh连接阿 ...
 - 在云服务器 ECS Linux CentOS 7 下重启服务不再通过 service  操作,而是通过 systemctl 操作
		
在云服务器 ECS Linux CentOS 7 下重启服务不再通过 service 操作,而是通过 systemctl 操作. 操作说明如下: 1. 查看 sshd 服务是否启动: 看到上述信息就 ...
 - 在阿里云服务器上(centos 8) 安装自己的MQTT服务器 (mosquitto)
		
layout: post title: 在阿里云服务器上(centos 8) 安装自己的MQTT服务器 (mosquitto) subtitle: date: 2020-3-2 author: Dap ...
 - 云服务器 ECS Linux CentOS 修改内核引导顺序
		
由于 CentOS 7 使用 grub2 作为引导程序,所以和 CentOS 6 有所不同,并不是修改 /etc/grub.conf 来修改启动项,需要如下操作: 1. 查看系统内部有多少个内核: c ...
 
随机推荐
- elasticsearch bulk
			
情景介绍 公司2000W的数据从mysql 迁移至elasticsearch,以提供微服务.本文基于elasticsearch-py bulk操作实现数据迁移.相比于elasticsearch-dum ...
 - Unity导出Gradle工程给Android Studio使用
			
1 Unity导出Gradle项目 Unity打包时Build System选择Gradle,勾选Export Project 2 Android Studio导入Unity导出的Gradle项目 打 ...
 - X264-应用工程
			
接下来的几篇博客中,具体学习下X264的实现过程. 源代码的分析参考了雷神的博客,感谢雷神!博客链接:https://blog.csdn.net/leixiaohua1020/article/deta ...
 - ES项目实战
			
前置 ES: Java Spark/Flink Stack + Spring Boot + ES Scala/Java + Java/Scala + Java ==> 用API的方式来掌握ES的 ...
 - java多线程执行时主线程的等待
			
1.通过thread.join()方式,注意:如果有多个子线程,需要将全部的线程先start,然后再join.代码示例如下: public class Main { public static ...
 - Nginx03(实现负载均衡)
			
一.负载均衡的作用 1.转发功能 按照一定的算法[权重.轮询.Ip_Hash],将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量. 2.故障移除 通过心跳检测的方式,判断应用服务 ...
 - [TCP/IP] TCP的报文头
			
1.源端口和目的端口:各占2个字节,分别写入源端口和目的端口: 2.序列号:占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号.例如,一段报文的序号字段值是 301 ,而携带的数据共有100 ...
 - Linux命令——ethtool
			
转自:https://www.cnblogs.com/kelamoyujuzhen/p/10116423.html 参考:9 Linux ethtool Examples to Manipulate ...
 - time,datetime,random,os,sys,hashlib,logging,configparser,re模块
			
#-----time模块----- print(help(time)) #打印time帮助文档 print(time.time()) #打印时间戳 1569824501.6265268 time.sl ...
 - Qt 之 qwt 和 qwtpolar 的编译配置
			
1 Qwt Qwt 全称为 Qt Widgets for Technical Applications,用于专业技术领域的可视化显示,如下所示: 左图为二阶系统的频率响应:中图为德国小城 Fried ...