CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)

大家好,我是SuieKa,本博文以学习笔记为主,若有瑕疵,请多多指教!!!

目录

  • 什么是Gitlab?
  • GitLab和GitHub的区别
    • 一、安装gitlab-ce-12.10.1
    • 二、gitlab日常使用
    • 三、安装git客户端使用gitlab

什么是Gitlab?

是一个利用Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。Ruby on Rails 是一个可以使你开发、部署、维护web应用程序变得简单的框架。
GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

GitLab和GitHub的区别

GitLab中文网:https://about.gitlab.com/
GitHub网站: https://github.com/

首先我们看看他们的网页区别
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第1张图片
GitHub:
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第2张图片
GitLab:
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第3张图片
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第4张图片
相同点:
二者都是基于web的Git仓库,在很大程度上GitLab是仿照GitHub来做的,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化于存储的场所。

不同点:
1、GitHub:如果要使用私有仓库,是需要付费的。GitLab可以在上面创建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比亍GitHub,它有不少的特色:允许免费设置仓库权限;允许用户选择分享一个project的部分代码;允许用户设置project的获取权限,迚一步的提升安全性;可以设置获取到团队整体的改迚迚度;通过innersourcing让不在权限范围内的人访问不到该资源。
总结:从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择。但对于开源项目而言,GitHub依然是代码托管的首选。

安装Gitlab之前先讨论git相关概念:

git 是一种版本控制系统,是一个命令,是一种工具。 gitlib 是用于实现git功能的开发库 。
github是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放 。
gitlab是一个基于git实现的在线代码仓库托管软件,一般用于在企业内部网络搭建git私服务器。

一、安装gitlab-ce-12.10.1

(最好使用稳定的版本,注重稳定为主)

下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el8/

实验环境:CentOS8.1虚拟机内存调至6G以上(运行Gitlab+Jenkins很是吃内存)

[21:06:30 root@wang-tuxing ~]#cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core)

1、安装Gitlab需要的组件

yum -y install curl policycoreutils openssh-server openssh-clients postfix policycoreutils-python-utils
###########在centos8一下下载的为policycoreutils-python,其余不变

2、gitlab-ce-12.10.1的安装

[21:24:49 root@wang-tuxing software]#rpm -ivh gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm 
警告:gitlab-ce-12.10.1-ce.0.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID f27eab47: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:gitlab-ce-12.10.1-ce.0.el8       ################################# [100%]
It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

由于是rpm方式安装,安装的包的位置默认是在/opt/下

[21:31:20 root@wang-tuxing software]#rpm -ql gitlab-ce | more
/opt
/opt/gitlab		####这个包是安装在opt上的,不是在以前源码安装的路径:/usr/local
...........................
[21:32:41 root@wang-tuxing software]#ls /opt/gitlab/
bin                       embedded  init     LICENSES  sv                     version-manifest.txt
dependency_licenses.json  etc       LICENSE  service   version-manifest.json

3、配置gitlab域名

[21:33:58 root@wang-tuxing software]#vi /etc/gitlab/gitlab.rb
改:external_url 'http://gitlab.example.com'
改为:external_url 'http://192.168.1.107' 	###########本机centos8的IP地址

注意:这里必须修改,不然后后期访问时,用户到地址是:http://gitlab.example.com/xxxx ,根本不能访问。 修改后获得是: http://你的IP地址/xxxx

应用重新配好的配置并重启GitLab

[21:41:39 root@wang-tuxing software]#gitlab-ctl reconfigure	
#####重新配置应用程序

重新配置应用程序。修改了gitlab服务配置文件后,都需要执行一下这个命令。让各个服务的配置文件,重新加载一下配置文件。这里等个2分钟左右。

使用gitlab-ctl查看gitlab状态

[21:47:58 root@wang-tuxing ~]#gitlab-ctl status
run: alertmanager: (pid 6702) 524s; run: log: (pid 6379) 572s
run: gitaly: (pid 6581) 525s; run: log: (pid 5784) 653s
run: gitlab-exporter: (pid 6580) 525s; run: log: (pid 6269) 591s
run: gitlab-workhorse: (pid 6546) 526s; run: log: (pid 6110) 607s
run: grafana: (pid 6724) 523s; run: log: (pid 6496) 539s
run: logrotate: (pid 6139) 601s; run: log: (pid 6179) 598s
run: nginx: (pid 6122) 603s; run: log: (pid 6136) 602s
run: node-exporter: (pid 6572) 526s; run: log: (pid 6196) 594s
run: postgres-exporter: (pid 6715) 523s; run: log: (pid 6408) 566s
run: postgresql: (pid 5868) 648s; run: log: (pid 5914) 647s
run: prometheus: (pid 6611) 524s; run: log: (pid 6336) 578s
run: redis: (pid 5692) 660s; run: log: (pid 5707) 659s
run: redis-exporter: (pid 6595) 525s; run: log: (pid 6299) 584s
run: sidekiq: (pid 6054) 615s; run: log: (pid 6070) 612s
run: unicorn: (pid 6026) 617s; run: log: (pid 6051) 616s

要把防火墙清空规则,另外内存要大于4G,就怕之后的操作内存不足报错

[21:49:53 root@wang-tuxing ~]#iptables -F		###清空规则
[21:50:33 root@wang-tuxing ~]#free -m
              total        used        free      shared  buff/cache   available
Mem:           7853        2906        4355          79         591        4800

4、登录gitlab
使用http://IP地址/users/sign_in

如果访问不了,记得关闭防火墙
[21:51:11 root@wang-tuxing ~]#systemctl stop firewalld
[21:55:04 root@wang-tuxing ~]#systemctl disable firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

第一次登录gitlab,需要为root用户修改密码,root用户也是gitlab的超级管理员,输入你的新密码 (密码设置的过于简单可能也会报错)
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第5张图片
改成密码后
使用root用户和刚才创建的密码登录gitlab

CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第6张图片
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第7张图片
到这一步就已经安装成功了,总的来说比源码安装的软件快的多。也轻松得多

二、gitlab日常使用

gitlab-ctl的使用:
关闭gitlab: # gitlab-ctl stop
启动gitlab: # gitlab-ctl start
重启gitlab: # gitlab-ctl restart

gitlab主配置文件:/etc/gitlab/gitlab.rb //可以自定义一些邮件服务等
日志地址:/var/log/gitlab/ // 对应各服务
服务地址:/var/opt/gitlab/ // 对应各服务的主目录
仓库地址:/var/opt/gitlab/git-data //记录项目仓库等提交信息
重置配置:gitlab-ctl reconfigure //不要乱用,会重置为最原始的配置的
重启服务:gitlab-ctl stop/start/restart //启动命令

1、设置中文
最新的GitLab已经官方支持中文了
而且设置是针对每个用户的,不是全局的:

1、点击右上角头像
2、Settings
3、点击右侧 Preferences
4、右侧拉到下面
5、Localization
6、Language,设置"简体中文"
7、保存
8、刷新页面

CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第8张图片
这样就好了!

(一)、创建群组
1、新建项目前,先创建项目所在的组(也就是说这个项目文件是保存在哪个组里)
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第9张图片
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第10张图片
点击创建群组即可
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第11张图片
(二)、新建项目
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第12张图片
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第13张图片
点击下面的创建项目即可
新一点的版本就是好,里面也有命令行指引
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第14张图片
对于创建用户差不多也是一样的操作,创建完成后就可以与退出重新使用新用户登录

(三)、新建文件
在这里插入图片描述
CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Gitlab安装(一)_第15张图片
在这里插入图片描述

三、安装git客户端使用gitlab

1、安装git并clone代码
[00:28:23 root@wang-tuxing my]#dnf -y install git
在这里插入图片描述
复制第一个链接,ssh方式需要输入密码。

[00:28:43 root@wang-tuxing my]#git clone http://192.168.1.104/wang/my-web
正克隆到 'my-web'...
warning: 重定向到 http://192.168.1.104/wang/my-web.git/
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
展开对象中: 100% (3/3), 完成.


//使用http和ssh均可以实现下载

[00:30:22 root@wang-tuxing my]#ls
my-web

git常用命令:

git config --global user.name “name“      #设置全局用户名 
git config --global user.email mail     #设置全局邮箱 
git config --global --list      #列出用户全局设置 
git add index.html    #添加文件到暂存区 
git commit -m  “描述内容“     #提交文件到工作区 
git status     #查看工作区的状态 
git push    #提交代码到git服务器上 
git pull    #获取代码到本地 
git log     #查看操作日志 
vim .gitignore    #定义忽略文件 
git reset --hard HEAD^  #git版本回滚, HEAD为当前版本,加一个^为上一个,^^为上上一个版本 
git reflog    #获取每次提交的ID,可以使用--hard根据提交的ID迚行版本回退 
git reset --hard 5ae4b06     #回退到指定id的版本
git branch    #查看当前所处的分支
git checkout -- file     #从服务器更新某个那文件覆盖本地的文件

就这样吧,做做笔记写在博客上也挺好哈哈,以后还可以做做参考啥的

你可能感兴趣的:(linux实战)