环境:

内存必须5G以上

centos7.5

服务端:192.168.0.74

客户端:192.168.0.73


GitLab的安装

1、在CentOS系统上,下面的命令将会打开系统防火墙HTTP和SSH访问。

yum install curl policycoreutils openssh-server openssh-clients -y
systemctl enable sshd
systemctl start sshd
yum install postfix -y
systemctl enable postfix
systemctl start postfix
firewall-cmd --permanent --add-service=http
systemctl reload firewalld 


2、添加GitLab镜像源并安装

curl -sS http://packages.gitlab.com.cn/install/gitlab-ce/script.rpm.sh | sudo bash

这是官方的yum源,安装速度会比较慢,可以使用国内源,修改如下文件即可:

cat>>/etc/yum.repos.d/gitlab_gitlab-ce.repo<<EOF
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
EOF


然后执行:

yum install gitlab-ce -y



4、修改gitlab配置文件指定服务器ip和自定义端口:

vi /etc/gitlab/gitlab.rb

external_url 'http://192.168.0.94:8081'       #本地ip+端口

注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口



5、重置GitLab

gitlab-ctl reconfigure   #需要很长时间不要按ctrl+c  每次修改配置文件都需要重置,否则不生效

出现如下结果表明重置成功

Running handlers:
Running handlers complete
Chef Client finished, 454/655 resources updated in 04 minutes 29 seconds
gitlab Reconfigured!


6、启动GitLab

gitlab-ctl start

ok: run: gitlab-git-http-server: (pid 3922) 1s
ok: run: logrotate: (pid 3929) 0s
ok: run: nginx: (pid 3936) 1s
ok: run: postgresql: (pid 3941) 0s
ok: run: redis: (pid 3950) 0s
ok: run: sidekiq: (pid 3955) 0s
ok: run: unicorn: (pid 3961) 1s

提示“ok: run:”表示启动成功


停止gilab

gitlab-ctl stop


重启

gitlab-ctl restart



7、访问 GitLab页面

http://192.168.0.94:8081

初始账户: root 密码: 5iveL!fe

第一次登录需要修改密码

修改密码为:

jenkins@123

重新登录

root/jenkins@123


如果没有域名,直接输入服务器ip和指定端口进行访问

第一次访问GitLab,系统会重定向页面到重定向到重置密码页面,你需要输入初始化管理员账号的密码,管理员的用户名为root,初始密码为5iveL!fe。重置密码后,新密码即为刚输入的密码。



8、客户端下载、推送代码


安装git

yum install -y git


配置ssh密钥

ssh-keygen -t rsa -f /root/.ssh/id_rsa -P ""


添加ssh-key公钥到gitlab, 哪台需要连接gitlab服务器,哪台就需要把他的公钥添加到gitlab服务器上

cat ~/.ssh/id_rsa.pub

[root@test3 ~]# cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCxiS/XYe2x+iwhU6PuiV8XTmNgQ9w3FMgC4JuPkyHwIhHxh+1M/Evj7AqGJIURcrl1CHqJKng8d/M8WT+NoqwlA524hKpjv4RgEW2dl1kLfQLVVJmoB9NOvr5+cdmQ1V8xuhhxtcLw7JhigXu7HNCEs6bJ+MVwD83oc9jV7HVB3mgmZrk2+Ntxz8cr/W9MoLmkqEQJ3JYmsXmJsofcMPOQJNpmIScAu7kWJ4tIJAN5SuhNjQTw+v5HgLJT/LTdf/0DUCP55ulsDWP03ilIsEMT1FX1mz2tkQsopim2Z/Tqtk96OTNYB5svNb+nJXkRUskbQ+pYjU3hr0kxkAr/NEzX root@test3

登录gitlab,在右上角设置中找到SSH密钥

将刚才生成的公钥内容复制到密钥中,标题名字随意


创建项目

创建一个hello项目

点击小扳手(管理区域),新建项目

Project name为项目的名称

Import project from从其他代码仓库导入代码

Project description项目说明

Visibility Level项目等级

private只有你自己跟你指定的人能看

internal只有拥有gitlab账号的用户可以查看与拉取

public该项目能被所有人访问到并clone



从gitlab远程主机克隆一个版本库

mkdir /root/test/

cd /root/test/

git clone git@192.168.0.94:root/hello.git

这里有个警告,因为刚才创建的版本库是空的,所以这里提醒,克隆了一个空库



推送代码到gitlab

创建一个文件

cd /root/test/hello/

touch read.txt

echo "Hello world" >> read.txt 


将文件添加到仓库

git add read.txt


配置用户名和邮箱,tell me who you are

git config --global user.email "15613691030@163.com"

git config --global user.name "zhuzihao"


提交文件到仓库

git commit -m "2nd Commit"    #2nd Commit是本次提交的说明

创建tag版本

git tag 1.0.2

查看git版本号

git tag


最后推送到gitlab上

git push origin master

在gitlab上看到,已经推送成功了



9、GitLab的汉化

mkdir /home/local/gitlab
cd /home/local/gitlab

如没安装git,需提前安装:

yum install -y git

下载最新的汉化包:

git clone https://gitlab.com/xhang/gitlab.git

如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句:

git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh

停止GitLab并执行如下语句:

gitlab-ctl stop
cp /home/local/gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ -rf


复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改~/.bashrc,在“alias cp=’cp-i’”前加#注释即可。

复制可能出现如下提示,可以不用理会。


注释后记得执行:

source ~/.bashrc

或者重启即可。

接下来可以重新配置和启动:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart 



10、GitLab常用命令

#启动所有服务

[root@gitlab ~]# gitlab-ctl start

#启动单独一个服务

[root@gitlab ~]# gitlab-ctl start nginx

#查看日志,查看所有日志

[root@gitlab ~]# gitlab-ctl tail

#查看具体一个日志,类似tail -f
[root@gitlab ~]# gitlab-ctl tail nginx