1. GitLab
环境说明
系统版本 CentOS 7.2 x86_64
软件版本 gitlab-ce-10.8.4
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。
1.1 Gitlab安装
Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4
通过x-shell连接云服务器,在x-shell中进行操作,新建一个tools文件,并且进入到这个文件中去
[root@gitlab ~]# mkdir -p /service/tools
[root@gitlab ~]# cd /service/tools/
将本地的gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm拖到在云服务器上新建的文件夹里面去
#安装下载好的rpm包
[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm
#或者执行rpm -ivh 在线安装
[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm
安装成功,但是需要配置,安装完成后出现上面的提示,按照提示修改配置文件中的url地址为本地服务器的地址
这一步必须要做,不然后续可能导致出问题
firewall-cmd --state 检查防火墙状态
systemctl stop firewalld.service 停止防火墙
修改配置文件
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
将这里的ip地址修改为自己的服务器的ip地址()
external_url 'http://192.168.0.108'
重新加载配置,查看版本,确保没问题
[root@gitlab tools]# gitlab-ctl reconfigure #重新加载配置
[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.8.4
或者使用下面这个命令查看版本
[root@gitlab tools]# rpm -qa gitlab-ce
gitlab-ce-10.8.4-ce.0.el7.x86_64
查看相关目录
[root@gitlab tools]# ls /opt/gitlab/
查看相关目录
[root@gitlab tools]# ll /var/opt/gitlab
1.2 汉化(可忽略)
默认的全英文界面对于英文水平低的来讲当然用着很不舒服,于是便需要来一波操作进行汉化,英文好的请自觉忽略
GitLab中文社区的项目,v7-v8.8是由Larry Li发起的"GitLab中文社区版项目"(https://gitlab.com/larryli/gitlab),从v8.9之后由@xhang开始继续汉化项目(https://gitlab.com/xhang/gitlab)
[root@gitlab tools]# pwd
/service/tools
[root@gitlab tools]# mkdir /backup
[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup #防止汉化失败,备份原文件
[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git #下载最新的汉化包
汉化包的版本更新速度不得而知,所以尽量不要安装最新版本的gitlab。如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句
[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git -b v10.0.2-zh
[root@gitlab tools]# ls #git下来的文件为gitlab
gitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm
[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/ #拷贝文件
检验汉化
[root@gitlab tools]# gitlab-ctl reconfigure #加载配置(第一次执行此命令会启动,若只启动执行start)
启动时查看控制台输出,需要等待一段时间,无输出后启动完成,执行free -m命令查看到当前的内存使用情况为
[root@gitlab tools]# free -m
total used free shared buff/cache available
Mem: 2993 2123 156 62 713 597
Swap: 2047 0 2047
[root@gitlab tools]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exporter
tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhor
tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/ruby
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: master
tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5
tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitaly
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshd
tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: master
tcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanager
tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exporter
tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheus
tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_expor
tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanager
tcp6 0 0 ::1:9168 :::* LISTEN 4659/ruby
tcp6 0 0 :::22 :::* LISTEN 1439/sshd
1.3 Gitlab使用
1.3.1 登录基本操作
GitLab终端常用命令
gitlab-ctl start #启动所有 gitlab 组件;
gitlab-ctl stop #停止所有 gitlab 组件;
gitlab-ctl restart #重启所有 gitlab 组件;
gitlab-ctl status #查看服务状态;
gitlab-ctl reconfigure #启动服务;
vim /etc/gitlab/gitlab.rb #修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace #检查gitlab;
gitlab-ctl tail #查看日志;
因为我们修改了配置文件,首先,我们需要查看服务状态
gitlab-ctl status
然后我们重启所有 gitlab 组件
gitlab-ctl restart
验证是否配置成功,这里简单叙述一下,下面会有详细介绍
在浏览器直接访问我们的ip地址,例如xx.xxx.xx.xx/,注意这里一定要加一个/,不然可能会报错502
他会跳转到修改密码页面,修改密码为最少八位数,然后进行登录,登录的用户名为root,输入你刚修改的密码即可登录
1.3.2 使用前可选操作
修改web端口
如果80和8080端口被占用可以修改
[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
listen "127.0.0.1:8080", :tcp_nopush => true
修改nginx端口
[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf
server {
listen *:80;
修改Prometheus端口
[root@gitlab tools]# vim /etc/gitlab/gitlab.rb
external_url 'http://10.0.0.5:port'
根据需要修改端口
修改后需要重新加载配置并启动
1.3.3 使用方法
访问:http://192.168.0.108/
重置密码
登录:默认用户名是root,密码使用刚刚重置过的。
创建空白项目
选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的),
我们能看到Gitlab给我们的使用当前项目的教程。学过git和GitHub,想必我这些已经都会了。
我们发现上面有一行黄色的提示,要求我们配置ssh
首先生成公钥:
[root@gitlab-client ~]# ssh-keygen
[root@gitlab-client ~]# cat .ssh/id_rsa.pub #查看公钥
将上面的公钥文件复制到gitlab中
我们在远程机器生成私钥
生成新的SSH密钥: ssh-keygen -t rsa -C “your_email@address”
此命令将提示您用于存储密钥对和密码的位置和文件名。当提示输入位置和文件名时,只需按Enter键即可使用默认值。如果使用其他名称,则不会自动使用该密钥。
在C盘下 .ssh 文件夹中会生成 id_rsa 和 id_rsa.pub 两个文件,其中 id_rsa.pub 里面是以ssh-rsa开头并以您的用户名和主机结尾的完整密钥。将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。
步骤:
在window系统打开命令行输入
ssh-keygen -t rsa -C "renliangjava@163.com"
打开id_rsa.pub,把所有内容复制
到Gitlab中将密钥复制粘贴到 profile settings中 SSH keys 选项卡下,add an ssh key ,保存。跟添加公钥的步骤完全一致
随机我们配置本地用户信息和本地库创建本地git库
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3
$ git init
Initialized empty Git repository in D:/testGit3/.git/
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.name 'zhangsan'
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git config --local user.mail 'zhangsan@126.com'
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git remote add origin git@192.168.0.108:root/spring_src.git
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ echo 'test' > test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
test.txt
nothing added to commit but untracked files present (use "git add" to track)
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git add .
warning: LF will be replaced by CRLF in test.txt.
The file will have its original line endings in your working directory.
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git commit -m 'add a test file'
[master (root-commit) 666da41] add a test file
1 file changed, 1 insertion(+)
create mode 100644 test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit3 (master)
$ git push -u origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.git
* [new branch] master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
此刻我们可以看到远程仓库里面文件以及推送。
随机我们将Spring源代码上传Gitlab
此时我可以通过另一个git本地库克隆
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ git clone git@192.168.0.108:root/spring_src.git
Cloning into 'spring_src'...
remote: Counting objects: 9622, done.
remote: Compressing objects: 100% (6230/6230), done.
remote: Total 9622 (delta 2851), reused 9619 (delta 2851)
Receiving objects: 100% (9622/9622), 13.57 MiB | 14.34 MiB/s, done.
Resolving deltas: 100% (2851/2851), done.
Checking out files: 100% (7948/7948), done.
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ ll
total 12
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring_src/
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4
$ cd spring_src/
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.name 'lisi'
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local user.mail 'lisi@126.com'
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git config --local -l
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=git@192.168.0.108:root/spring_src.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
user.name=lisi
user.mail=lisi@126.com
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ ll
total 70
-rw-r--r-- 1 rlsl180506 197121 11118 2月 19 11:26 build.gradle
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 buildSrc/
-rw-r--r-- 1 rlsl180506 197121 2395 2月 19 11:26 CODE_OF_CONDUCT.adoc
-rw-r--r-- 1 rlsl180506 197121 6308 2月 19 11:26 CONTRIBUTING.md
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 gradle/
-rw-r--r-- 1 rlsl180506 197121 23 2月 19 11:26 gradle.properties
-rwxr-xr-x 1 rlsl180506 197121 5533 2月 19 11:26 gradlew*
-rw-r--r-- 1 rlsl180506 197121 2349 2月 19 11:26 gradlew.bat
-rw-r--r-- 1 rlsl180506 197121 4529 2月 19 11:26 import-into-eclipse.bat
-rw-r--r-- 1 rlsl180506 197121 4078 2月 19 11:26 import-into-eclipse.sh
-rw-r--r-- 1 rlsl180506 197121 1868 2月 19 11:26 import-into-idea.md
-rw-r--r-- 1 rlsl180506 197121 2290 2月 19 11:26 README.md
-rw-r--r-- 1 rlsl180506 197121 1154 2月 19 11:26 settings.gradle
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aop/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-aspects/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-beans/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-indexer/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-context-support/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-core/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-expression/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-framework-bom/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-instrument/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jcl/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jdbc/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-jms/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-messaging/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-orm/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-oxm/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-test/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-tx/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-web/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webflux/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-webmvc/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 spring-websocket/
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 src/
-rw-r--r-- 1 rlsl180506 197121 6 2月 19 11:26 test.txt
drwxr-xr-x 1 rlsl180506 197121 0 2月 19 11:26 tx-spring-teach/
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ vi test.txt
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git add .
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git commit -m 'aa'
[master 1c8f28d] aa
1 file changed, 1 insertion(+)
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 250 bytes | 250.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To 192.168.0.108:root/spring_src.git
bf028b3..1c8f28d master -> master
rlsl180506@MACHENI-B936LIA MINGW64 /d/testGit4/spring_src (master)
$
刷新Gitlab我们可以看到变化。
https://blog.csdn.net/justlpf/article/details/80681853