linux进阶之gitlab仓库搭建及免密使用
一、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仓库搭建及免密使用的更多相关文章
- Gitlab仓库搭建和免密使用gitlab
Gitlab简介 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的 ...
- Linux 下配置 hosts 并设置免密登录
Linux 下配置 hosts 并设置免密登录 作者:Grey 原文地址: 博客园:Linux 下配置 hosts 并设置免密登录 CSDN:Linux 下配置 hosts 并设置免密登录 说明 实现 ...
- linux(十)配置ssh免密登录实现
知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...
- 【Linux】两台服务器ssh免密登录
背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备: 服务器A linux ip: 192.168.1.1 服务器B linux ip: 192.168.1. ...
- 在linux服务器以及客户端实现公钥免密登录
每次登录服务器都要输入密码,这点比较麻烦.使用ssh公钥登录机制可以直接登录,避免每次都输入密码的烦恼. 所谓ssh公钥登录机制即是:客户端电脑client产生加密用的公钥id_rsa.pub与私钥i ...
- Linux SSH , SCP 建立信任关系(免密传输)
最近有个需求,Jenkins需要将war传输到各个项目节点中,所以需要远程执行各个节点的shell脚本.但是中间有个输入密码的过程,在自动化部署中是行不通的,故需要增加免密登录.具体如下: 如果想在 ...
- linux高频操作: host,用户管理,免密登陆,管道,文件权限,脚本,防火墙,查找
1. 修改hosts和hostname 2. 用户管理 3. 免秘登陆 4. 文件末尾添加 >> 5. 设置可执行文件 6. 任何地方调用 7. Centos6 永久关闭防火墙 8. Ce ...
- Linux中配置主机之间的免密ssh登陆
假如 A 要登陆 B在A上操作:1.首先生成密钥对 ssh-keygen (提示时,直接回车即可) 2.再将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中 ssh-copy- ...
- Linux生成私钥和公钥免密连接
本文介绍Linux系统生成私钥和公钥进行免密连接,内容比较简单,阅读需要3分钟. 1.大致流程 有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步. 1.1 在 ...
随机推荐
- 记一次metasploitable2内网渗透之2049端口NFS漏洞
0x01.NFS简介 NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器.操作系统以及低层传送协议无关的存取远程文件的操作.RPC采用了XDR的支持.X ...
- Math类的random()方法
Math类的random()方法 Math类的random()方法可以生成大于等于0.0.小于1.0的double型随机数. Math.random()方法语句基础上处理可获得多种类型.或任意范围的随 ...
- jQuery入门看这一篇就够了
一.选择器 1.基本 名称 用法 描述 #id $("#myDiv"); 根据给定的ID匹配一个元素 element $("div"); 根据给定的元素标签名匹 ...
- Window下Python+CUDA+PyTorch安装
1 概述 Windows下Python+CUDA+PyTorch安装,步骤都很详细,特此记录下来,帮助读者少走弯路. 2 Python Python的安装还是比较简单的,从官网下载exe安装包即可: ...
- surging 如何使用流媒体服务
前言 随着直播行业大火,各种直播类产品和产品层出不穷,能够满足各方人员的需求和互动,也使得斗鱼.虎牙.抖音都随着直播业的大火而欣欣向荣, 大家也对直播平台了解不少,也参与使用,但是怎么样才能研发出视频 ...
- 032- for循环语句
问题 请在控制台里面打印10次HelloWorld. 这时可能你会这么写: System.out.println("helloworld"); System.out.println ...
- 从苏宁电器到卡巴斯基第10篇:我在苏宁电器当营业员 II
之所以是主推,其实是有原因的 据我所知,尽管诺基亚卖的很好,但是他们的厂促的待遇却很一般,估计也就一千多两千的样子,撑死两千多.但是呢,记得当时我们的卖场里面还有联想手机,别看卖得相当次,但是他们的厂 ...
- 记一次 .NET 医院CIS系统 内存溢出分析
一:背景 1. 讲故事 前几天有位朋友加wx求助说他的程序最近总是出现内存溢出,很崩溃,如下图: 和这位朋友聊下来,发现他也是搞医疗的,哈哈,.NET 在医疗方面还是很有市场的,不过对于内存方面出的问 ...
- 【python】Leetcode每日一题-寻找旋转排序数组中的最小元素2
[python]Leetcode每日一题-寻找旋转排序数组中的最小元素2 [题目描述] 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组.例如,原数组nums ...
- Securecrt 在win7下 字体太少问题
用WIN7,觉得securecrt里面可用的字体太少了.很多都没有,比如lucida console,经过一番查找,终于找到解决问题的方法了. 原因就是win7里面的很多字体都被设置为隐藏了,所以se ...