一、Gitlab简介

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。Gitlab私有仓库;GitHub公共的代码仓库。

功能:Gitlab 是一个提供代码托管、提交审核和问题跟踪的代码管理平台。对于软件工程质量管理非常重要。

版本:GitLab 分为社区版(CE) 和企业版(EE)。

配置:建议CPU2核,内存2G以上。

Gitlab的服务构成:

1)Nginx:静态web服务器。

2)gitlab-shell:用于处理Git命令和修改authorized keys列表。(Ruby)

3)gitlab-workhorse: 轻量级的反向代理服务器。(go)

GitLab Workhorse是一个敏捷的反向代理。它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。

4)logrotate:日志文件管理工具。

5)postgresql:数据库。

6)redis:缓存数据库。

7)sidekiq:用于在后台执行队列任务(异步执行)。(Ruby)

8)unicorn:An HTTP server for Rack applications,GitLab Rails应用是托管在这个服务器上面的。(Ruby Web Server,主要使用Ruby编写)

管理的命令:

gitlab-ctl stop            #停止所有gitlab组件

gitlab-ctl start            #启动所有gitlab组件

gitlab-ctl restart         #重启所有gitlab组件

gitlab-ctl status          #查看服务状态

gitlab-ctl reconfigure        #重新编译gitlab的配置(执行 reconfigure 命令会把gitlab的nginx组件的配置还原,导致自定义修改的端口以及域名等都没有了。)

vim /etc/gitlab/gitlab.rb            #修改gitlab配置文件

gitlab-rake gitlab:check SANITIZE=true --trace              #检查gitlab

gitlab-ctl tail              #查看日志

二、gitlab安装及使用

第一步:安装gitlab

[root@ren5 ~]# yum localinstall gitlab-ce-8.9.5-ce.0.el7.x86_64.rpm -y

第二步:修改配置文件

在文件11行左右把主机名修改为主机IP地址

[root@ren5 ~]# vim /etc/gitlab/gitlab.rb

########################################

11 external_url 'http://192.168.11.5'

#############################################

注释行#的含义:

1.不生效

2.默认值

第三步:重新配置(使配置重新生效,需要一定的时间)

启动gitlab的时候80端口不能被占用!

[root@ren5 ~]# gitlab-ctl reconfigure          #重新配置

[root@ren5 ~]# ss -tnl

[root@ren5 ~]# lsof -i :80

COMMAND  PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx   9629       root    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

nginx   9630 gitlab-www    6u  IPv4  50984      0t0  TCP *:http (LISTEN)

[root@ren5 ~]# firewall-cmd --add-port=80/tcp                      #添加防火墙端口

[root@ren5 ~]# firewall-cmd --add-port=80/tcp --permanent

第四步:浏览器访问

直接输入服务器IP 即可访问

需要修改密码,输入新的密码,密码长度需要8位(change your password)

把Admin换成root,密码就是刚才设置的密码,点击sign in

第五步:gitlab使用

在windows中可以通过创建用户,创建项目组,创建项目来新建一个项目

在Linux中的使用

[root@ren5 ~]# mkdir rrr        #创建根目录

[root@ren5 ~]# cd rrr

[root@ren5 rrr]# yum -y install git

[root@ren5 rrr]# git clone http://192.168.11.5/root/first-project.git      #克隆远程仓库(拉取项目)

[root@ren5 rrr]# ls

first-project

[root@ren5 rrr]# cd first-project/

[root@ren5 first-project]# ls -a

.  ..  .git

[root@ren5 first-project]# touch {1..5}.txt        #更新文件

[root@ren5 first-project]# echo "111111111111" > 1.txt

[root@ren5 first-project]# ls

1.txt  2.txt  3.txt  4.txt  5.txt

[root@ren5 first-project]# git add .             #工作目录内容上传到暂存区域

[root@ren5 first-project]# git commit -m "v1"         #把暂存区内容添加到仓库

*** Please tell me who you are.

Run

git config --global user.email "you@example.com"

git config --global user.name "Your Name"

to set your account's default identity.

Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@ren5.(none)')

[root@ren5 first-project]# git config --global user.email "you@example.com"

[root@ren5 first-project]# git config --global user.name "Your Name"      #认证

[root@ren5 first-project]# git commit -m "v1"         #重新提交

[master(根提交) d5aee1b] v1

5 files changed, 1 insertion(+)

create mode 100644 1.txt

create mode 100644 2.txt

create mode 100644 3.txt

create mode 100644 4.txt

create mode 100644 5.txt

[root@ren5 first-project]# git branch          #查看分支

* master

[root@ren5 first-project]# git push -u origin master        #把本地内容推送至远程仓库(第一次推送时必须加 -u 选项,之后可不加-u选项)

Username for 'http://192.168.11.5': root             #输入用户名(gitlab的用户密码)

Password for 'http://root@192.168.11.5':          #输入密码

[root@ren5 first-project]# git branch hello        #创建新的分支

[root@ren5 first-project]# git checkout hello            #切换到新分支

切换到分支 'hello'

[root@ren5 first-project]# touch test && echo "hello world" > test     #添加测试文件

[root@ren5 first-project]# git add .     #添加至暂存区

[root@ren5 first-project]# git commit -m "v2"         #添加至仓库

[root@ren5 first-project]# git push -u origin hello           #推送至远程仓库

三、linux当中免密使用gitlab

在上面我们每次登录gitlab都要输入名字和密码很麻烦,故可以使用密钥SSH来推送。

第一步:生成密钥对

ssh-keygen

第二步:复制公钥信息

[root@ren5 first-project]# cat /root/.ssh/id_rsa.pub

第三步:粘贴到web服务端profile-settings的ssh-keys中

第四步:点击提交之后再次下载仓库信息

回车之后可以看到没有输入任何东西就直接下载完成

注意:拉取的时候指定的是ssh地址而不再是http地址!

推送时可使用分支的形式推送,也可以选择ssh的地址进行推送

四、window中免密使用gitlab

第一步:准备文件

你需要首先在网上下载下面的这个客户端工具:Git-2.7.2-32-bit_setup.1457942412.exe

第二步:安装

第三步:创建一个文件夹作为工作目录并进入目录之后;右击鼠标有两个选项,一个是bash一个是图形化

第四步:生成秘钥信息,进行免密登录;在这个界面输入ssh-keygen一直点回车生成秘钥信息

第五步:把公钥信息输入到web服务端;可以从上面的信息中看到秘钥信息保存在哪了,现在我们去c盘找;复制这个公钥里面的信息

第六步:本地下载仓库;使用git clone 加上你的项目ssh信息

第七步:本地查看;发现已经有了仓库信息了,现在你就可以开始写程序了

第八步:测试;进入到包含.git的目录并在此右击打开bash,执行创建分支操作,并建立test.txt测试文件

第九步:上传文件;和linux中一样执行上传命令

第十步:在web中查看;可以看到我们刚才在window中创建的文件也已经被上传上来了

linux进阶之gitlab仓库搭建及免密使用的更多相关文章

  1. Gitlab仓库搭建和免密使用gitlab

    Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的 ...

  2. Linux 下配置 hosts 并设置免密登录

    Linux 下配置 hosts 并设置免密登录 作者:Grey 原文地址: 博客园:Linux 下配置 hosts 并设置免密登录 CSDN:Linux 下配置 hosts 并设置免密登录 说明 实现 ...

  3. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

  4. 【Linux】两台服务器ssh免密登录

    背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备:  服务器A  linux   ip: 192.168.1.1 服务器B  linux  ip: 192.168.1. ...

  5. 在linux服务器以及客户端实现公钥免密登录

    每次登录服务器都要输入密码,这点比较麻烦.使用ssh公钥登录机制可以直接登录,避免每次都输入密码的烦恼. 所谓ssh公钥登录机制即是:客户端电脑client产生加密用的公钥id_rsa.pub与私钥i ...

  6. Linux SSH , SCP 建立信任关系(免密传输)

    最近有个需求,Jenkins需要将war传输到各个项目节点中,所以需要远程执行各个节点的shell脚本.但是中间有个输入密码的过程,在自动化部署中是行不通的,故需要增加免密登录.具体如下: 如果想在  ...

  7. linux高频操作: host,用户管理,免密登陆,管道,文件权限,脚本,防火墙,查找

    1. 修改hosts和hostname 2. 用户管理 3. 免秘登陆 4. 文件末尾添加 >> 5. 设置可执行文件 6. 任何地方调用 7. Centos6 永久关闭防火墙 8. Ce ...

  8. Linux中配置主机之间的免密ssh登陆

    假如 A 要登陆 B在A上操作:1.首先生成密钥对 ssh-keygen (提示时,直接回车即可) 2.再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中 ssh-copy- ...

  9. Linux生成私钥和公钥免密连接

    本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟. 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在 ...

随机推荐

  1. 深入了解springcloud gateway 的限流重试机制

    前言 前面给大家介绍了Spring Cloud Gateway的入门教程,这篇给大家探讨下Spring Cloud Gateway的一些其他功能. Spring Cloud Gateway中的重试 我 ...

  2. java面试一日一题:讲对mysql的MVCC的理解

    问题:请讲下对mysql中MVCC的理解 分析:这个问题要回答的是对MVCC的理解,以及MVCC解决了什么问题这几个方面入手. 回答要点: 主要从以下几点去考虑, 1.什么是MVCC? 2.MVCC用 ...

  3. Java基础 Java-IO流 深入浅出

    建议阅读 重要性由高到低 Java基础-3 吃透Java IO:字节流.字符流.缓冲流 廖雪峰Java IO Java-IO流 JAVA设计模式初探之装饰者模式 为什么我觉得 Java 的 IO 很复 ...

  4. 0ctf_2017_babyheap

    0ctf_2017_babyheap 首先检查一下保护 IDA 分析好的代码如下 首先申请了一块内存地址用来存放结构体数组,地址随机. 堆题常见的几个功能.我们来看看add 这里申请内存用的是call ...

  5. 嗝,我饱了——IDEA食用指南

    1 概述 IDEA全称IntelliJ IDEA,主要用于Java开发的IDE,代码自动提示,重构,JUnit,代码分析等的功能非常牛逼,这篇文章首先介绍目前为止IDEA最新版本的特性,然后从UI,常 ...

  6. 04.ElementUI源码学习:组件封装、说明文档的编写发布

    0x00.前言 书接上文.项目经过一系列的配置,开发脚手架已经搭建完毕.接下来开始封装自定义组件.并基于 markdown 文件生成文档和演示案例. 后续文章代码会根据篇幅,不影响理解的情况下进行部分 ...

  7. os shutil 模块

    OS --- 操作系统接口 os.system(command) # 在python中执行系统指令 os.popen(command[, mode[, bufsize]]) #os.popen() 方 ...

  8. 【转】在CentOS 8 / RHEL 8上配置主/从BIND DNS服务器

    转自: https://zh.codepre.com/centos-2700.html 前言 本指南描述了在CentOS 8 / RHEL 8 Linux上配置BIND DNS服务器所需的步骤.在Ce ...

  9. 路由器逆向分析------MIPS系统网络的配置(QEMU)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69378333 MIPS系统网络的配置  使用QEMU 模拟正在运行的MIPS系统并 ...

  10. PAT 乙级 -- 1001 -- 害死人不偿命的(3n+1)猜想

    题目: 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去,最后一定在某一步得到n=1.卡拉兹在1950年 ...