从安装Centos8 到搭建 git 和 gitlab 服务器
安装Centos8
下载安装包
先去官网下载镜像文件
https://www.centos.org/
选择
最新版
这些都是下载地址,随意选择一个即可。
有很多版本,我选择了最大的完全体。
这里建议下载torrent(BT)文件,因为这个服务器在国外,直接下载非常慢。
制作安装U盘
- 下载的是镜像,iso文件。用UltraISO软碟通 等软件可以讲文件写入U盘,制作成带有引导功能的U盘。
开始安装
三个选项
- 安装
- 试用
- 故障排除
先进入编辑引导界面,因为这个时候默认的安装路径是错误的,所以直接安装会无法正确引导进入安装界面。我们需要先更改安装路径。
根据下方提示,点击对应按键
先改成 linux dd nomodeset,按Ctrl+X启动,查看U盘挂载到哪个目录
再次重启,进入引导界面。
改为对应挂在的目录,然后按Ctrl+X启动
成功进入安装界面
安装界面说明
根据需求选择安装语言,往下拉有中文。
- 日期和时间:选择自己所在地即可。
- 键盘和语言:支持没什么说的。
- 安装源:暂时不用管。
- 软件选择:根据自己的需要选。默认右侧功能都可以不选择。
- 安装目的:比较重要,下面单独讲
安装目的地
- 自动
- 自定义
自动,比较傻瓜,会自动分配分区,新手建议自动,不容易出问题。然后点击左上角完成即可。
自定义:
选择后 然后单击左上角”完成”就会弹出自定义的配置界面。
自动创建,会帮你自己创建好分区,这个时候可以根据自己的需要进行调整
-------------------------------------------------分区方案描述------------------------------------------------------------
必须的分区
boot分区:
作用:引导分区,包含了系统启动的必要内核文件,即使根分区顺坏也能正常引导启动 一般这些文件所占空间在200M以下,
分区建议:分区的时候可选100M-500M之间,如果空间足够用,建议分300-500M。避免由于长期使用的冗余文件塞满这个分区。
分区格式:建议ext4,按需求更改
/分区(根分区):
作用:所有的文件都从这里开始,你可以比喻为Windows的C盘,但其实有区别。如果你有大量的数据在根目录下(比如FTP等)可以划分大一点的空间
分区建议:建议15G以上。看需求,根分区和home分区的大小就类似C盘和D盘的空间分布一样,主要占空间在哪儿就在那里分大容量
分区格式:建议ext4,按需求更改
swap分区:
作用:类似于Windows的虚拟内存,在内存不够用时占用硬盘的虚拟内存来进行临时数据的存放,而对于linux就是swap分区
分区建议:建议是物理内存大小的2倍,比如你电脑是4G的物理内存,swap分区可以是8G
分区格式:swap格式
可选的分区
home分区
作用:存放用户数据,HOME的结构一般是 HOME/userName/userFile,如果不分则默认在/目录下
分区建议:如果用户数据多可以将此分区适当增大,请参考“根分区”分区建议;一般硬盘的主要容量几乎都在Home分区和根分区下
分区格式:建议ext4,按需求更改
var分区
作用:用于log日志的文件的存放,如果不分则默认在/目录下
分区建议:如果你安装的linux是用于服务器或者经常做日志分析,请划分var分区,避免日志文件不断膨胀塞满导致根分区而引发问题。
分区格式:建议ext4,按需求更改
点击完成,开始安装。
安装过程中,可以设定root账户密码
重启完成安装
安装git
如果只是想做git仓库,上传代码资料。
安装时选择的是完全安装后,默认有git 不用在安装git 直接安装 gitlab 即可。
验证是否已经安装了git 已经版本
git --version
一、编译方式安装
- 下载最新版本源码
查看:https://mirrors.edge.kernel.org/pub/software/scm/git/
安装wget命令
yum install -y wget
卸载git命令
yum remove git
下载Git
wget -O /tmp/git-2.21.0.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.21.0.tar.gz
- 解压编译
# 安装编译依赖
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 解压
tar -zxf /tmp/git-2.21.0.tar.gz -C /tmp/
cd /tmp/git-2.21.0
# 检验相关依赖,设置安装路径
./configure --prefix=/usr/local/git
# 编译安装
make && make install
- 配置全局环境变量
# 删除已有的 git
yum remove git
# 配置环境变量
vim /etc/profile
# GIT_HOME
GIT_HOME=/usr/local/git
export PATH=$PATH:$GIT_HOME/bin
# 刷新
source /etc/profile
源码安装
- 安装前要手动安装下依赖包(可使用rpm -qa | grep wget命令查看是否有安装包)
sudo yum install -y wget
sudo yum install -y gcc-c++
sudo yum install -y zlib-devel perl-ExtUtils-MakeMaker
- 去官网下载最新版本的git源码包
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz
- 接下来就是解压,配置,安装
tar -zxvf git-2.9.0.tar.gz
cd git-2.9.0
./configure --prefix=/usr/local
make
sudo make install
./configure后面的–prefix=/usr/local,指定安装路径为usr/local
- 查看git版本
git --version
二、yum 命令安装
此方法简单,并且会自动安装依赖的包,而且会从源里安装最新的版本(不过不一定是最新的git)
sudo yum install -y git
安装gitlab
几个注意的点
1、gitlab默认指向 ssh 的 22 端口
2、修改 ssh 默认端口后,gitlab 配置需要同步修改
3、防火墙需要开启修改后的对应端口才生效
- 安装依赖
yum install -y curl policycoreutils-python openssh-server
- 启动ssh 并设置为开机启动
systemctl enable sshd
systemctl start sshd
- 添加http服务到firewalld,pemmanent表示永久生效,若不加–permanent系统下次启动后就会失效
systemctl start firewalld
firewall-cmd --permanent --add-service=http
systemctl reload firewalld
- 启动postfix
systemctl enable postfix
systemctl start postfix
- 下载gitlab
因为gitlab服务器在国外,下载很慢这里用国内的镜像网站
清华大学开源软件
https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/
可以在上面网站看你想要下载的版本。
注意:如果你是 centos7 上面网址的 “el8” 改为 7
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm
- 安装
rpm -i gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
成功如图:
- 编译ip和端口
vim /etc/gitlab/gitlab.rb
加入用户组
user['username'] = "gitlab"
user['group'] = "gitlab"
重启
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl restart
防火墙开启端口
查看防火墙端口
firewall-cmd --list-all
增加目标端口,重启防火墙
sudo firewall-cmd --add-port=38520/tcp --permanent
sudo firewall-cmd --reload
更改gitlab上传文件大小
设置 - Account and limit
更改默认的仓库路径
一开始没有考虑到把gitlab划分好存储目录,占用系统磁盘,由于gitlab是默认安装的,随着公司代码越来越多,导致gitlab数据目录空间不足
磁盘空间:
[root@gitlab ~]# df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/vda1 ext4 40G 25G 13G 67% /
设置存储仓库数据
默认情况下omnibus-gitlab 将仓库数据存储在 /var/opt/gitlab/git-data目录下,仓库存放在子目录 repositories里面。 以可以通过修改/etc/gitlab/gitlab.rb 的这一行来自定义 git-data 的父目录
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb
# 打开文件加入下列
git_data_dirs({ "default" => { "path" => "/home/gitlab-data" } })
/home/gitlab-data 是我新挂载的目录,
注意 :目标路径和其子路径必须不能为软链接。
设置生效
- 在没有数据的情况下
[root@gitlab ~]# gitlab-ctl stop
[root@gitlab ~]# gitlab-ctl reconfigure //使修改生效
- 如果 /var/opt/gitlab/git-data 目录已经存在Git仓库数据, 你可以用下面的命令把数据迁移到新的位置:
# 准备迁移之前要停止GitLab服务,防止用户写入数据。
[root@gitlab ~]# gitlab-ctl stop
# 注意 'repositories'后面不带斜杠,而
# '/home/gitlab-data'后面是有斜杠的。
[root@gitlab ~]# rsync -av /var/opt/gitlab/git-data/repositories /home/gitlab-data/
# 如果需要修复权限设置,
# 可运行下面的命令进行修复。
[root@gitlab ~]# gitlab-ctl reconfigure
# 再次检查下 /home/gitlab-data 的目录. 正常情况应该有下面这个子目录:
# repositories
[root@gitlab ~]# ls /home/gitlab-data/
repositories
# 完工! 启动GitLab,验证下是否能
# 通过web访问Git仓库。
[root@gitlab ~]# gitlab-ctl start
设置存储仓库数据的备用目录
注意的是:自GitLab 8.10开始,可以通过在/etc/gitlab/gitlab.rb文件中添加下面的几行配置, 来增加多个 git 数据存储目录。
git_data_dirs({
“default” => { “path” => “/var/opt/gitlab/git-data” }, //默认存储目录
“alternative” => { “path” => " /home/gitlab-data" } //备用存储目录
})
更改ssh端口
例如:修改ssh端口号为38521
(为了以防万一先保留22端口,防止出现无法远程连接的情况,用3359端口登录成功后,再删除22端口即可)
# vim /etc/ssh/sshd_config
查看端口是否占用
netstat -anp | grep 38521
重启sshd服务
systemctl restart sshd
** gitlab默认对接SSH端口号同步修改**
vim /etc/gitlab/gitlab.rb
gitlab_rails[‘gitlab_shell_ssh_port’] = 38521
重新编译
gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start
防火墙再次开启端口
安装花生壳
http://service.oray.com/question/4287.html
安装好后,在centos下进行登录。
配置好映射的内网ip和端口号即可。