gift图t仓库之gitlab私有云搭建使用
一、简介
GitLab 是一个用于仓库管理系统的开源项目,使用git作为代码管理工具,并在此基础上搭建起来的web服务。类似github,常用在企业内部做git私有仓库使用;
二、gitlab安装
系统环境准备
最小化安装centos7,我们需要做如下配置
1、安装基础包
yum install vim gcc gcc-c++ wget net-tools lrzsz iotop lsof iotop bash-completion -yyum install curl policycoreutils openssh-server openssh-clients postfix -y
2、添加epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
3、关闭防火墙
systemctl stop firewalldsystemctl disable firewalld
4、关闭selinux
sed -i '/SELINUX/s/enforcing/disabled/' /etc/sysconfig/selinuxsetenforce 0
配置好系统环境,我们就可以来安装gitlab了
安装gitlab我们可以配置gitlab的yum源,然后用yum安装,也可以直接去仓库下载rpm包,然后再使用yum安装都可以
配置gitlab-ce的yum源
[root@node06 ~]# cat /etc/yum.repos.d/gitlab.repo[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
[root@node06 ~]#
验证:用yum info gitlab-ce看看是否能够查询到gitlib-ce包的信息
提示:如果用yum info gitlab-ce能够查询到gitlab-ce的信息,说明我们的gitlab-ce的yum仓库配置没有问题;接下来我们就可以使用yum 来安装gitlab-ce;当然如果你觉得仓库中的gitlab版本太新,想用其他版本,我们也可以去仓库地址中找相应的rpm下载进行安装;
安装gitlab-ce
[root@node06 ~]# yum install -y gitlab-ceLoaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:13.4.3-ce.0.el7 will be installed
--> Processing Dependency: policycoreutils-python for package: gitlab-ce-13.4.3-ce.0.el7.x86_64
--> Running transaction check
---> Package policycoreutils-python.x86_64 0:2.5-34.el7 will be installed
--> Processing Dependency: policycoreutils = 2.5-34.el7 for package: policycoreutils-python-2.5-34.el7.x86_64
--> Processing Dependency: setools-libs >= 3.3.8-4 for package: policycoreutils-python-2.5-34.el7.x86_64
--> Processing Dependency: libsemanage-python >= 2.5-14 for package: policycoreutils-python-2.5-34.el7.x86_64
……省略部分内容……
Installed:
gitlab-ce.x86_64 0:13.4.3-ce.0.el7
Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7
libcgroup.x86_64 0:0.41-21.el7 libsemanage-python.x86_64 0:2.5-14.el7
policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7
Dependency Updated:
audit.x86_64 0:2.8.5-4.el7 audit-libs.x86_64 0:2.8.5-4.el7 libsemanage.x86_64 0:2.5-14.el7
policycoreutils.x86_64 0:2.5-34.el7
Complete!
[root@node06 ~]#
配置gitlab-ce
提示:如果没有其他要求,我们配置访问gitlab的地址就可以直接启动gitlab,通常除了配置external_url外,我们可能还需要用到发送邮件的需要;比如用户修改密码通过邮件的形式修改;
配置gitlab-ce邮件发送
首先我们要有一个互联网邮箱地址,然后登录到互联网邮箱,开启smtp功能,我这里以163的邮箱为例,其他邮箱开通smtp的方式都是大同小异
提示:这里可以用手机直接扫二维码,也可以点击手动发短信;用手机扫二维码直接生成短信内容和收件人,然后发送短信后再点击我已发送;
提示:如果是手动发送短信,就用你注册邮箱留到手机号,发送以上短信内容即可,然后点击我已发送;
提示:最后短信验证没有问题,它会给我们生成一个授权码,我们把这个授权码要记住,然后在gitlab中配置时需要用到这个授权码;
gitlab-ce配置邮件通知
提示:这里需要注意一点,如果我们要使用tls加密方式发送邮件,那么我们上面的smtp的端口就要更改为465,并且开启后面的smtp_tls为true;保存上面的配置信息后,我们需要使用gitlab-ctl reconfigure来初始化gitliab;
发送邮件的配置
gitlab_rails['smtp_enable'] = truegitlab_rails[
'smtp_address'] = "smtp.163.com"gitlab_rails[
'smtp_port'] = 25gitlab_rails[
'smtp_user_name'] = "gitlab_sev@163.com"gitlab_rails[
'smtp_password'] = "WCNIFZJFQFFYZDCI"gitlab_rails[
'smtp_domain'] = "163.com"gitlab_rails[
'smtp_authentication'] = "login"gitlab_rails[
'smtp_enable_starttls_auto'] = truegitlab_rails[
'smtp_tls'] = falseuser[
'git_user_email'] = "gitlab_sev@163.com"gitlab_rails[
'gitlab_email_from'] = 'gitlab_sev@163.com'
View Code
初始化gitlab
[root@node06 ~]# gitlab-ctl reconfigure
提示:这个初始化的过程有点长,我们耐心等待就好;
提示:初始化完成后,它默认就把对应的服务启动起来了;我们就可以直接用浏览器访问刚才配置的url;它上面之所以初始化很久,是因为它后面要启动配置一堆服务;我们可以使用gitlab-ctl status来查看,它到底启动了那些服务;
查看gitlab的状态
用浏览器访问宿主机的80端口
提示:第一次访问,它会让我们先更改密码;我们配置新密码后单击下面的蓝色按钮提交密码;这个是管理员的密码;这里需要注意,我们的密码必须要大于8位,小于8位它会说我们给的密码太短了;
用root登录
提示:gitlab默认管理员用户是root,密码就是我们刚才设置的密码 ;
默认登录后的首页
到此gitlab就正常运行起来了
注册帐号
提示:这里是让我们选择一个角色;这里面有很多角色,我们选择一个即可;
提示:到此,tom用户就注册并成功登录到gitlab上了;后续tom用户就可以登录自己的帐号在上面创建项目,组等等操作;
关闭帐号注册功能
提示:用root帐号登录,点击admin area
提示:把红框前的对勾去掉,然后点击下面的save changes;
验证:现在退出root帐号,看看登录界面是否还有注册界面?
提示:可以看到注册界面就没有了;这样做主要可以统一管理的目的;如果作为一个私有仓库,应该由管理员统一管理帐号、权限;这样做也是一个比较安全的做法;
使用root用户添加帐号
提示:登录root帐号,点击上面的小扳手,然后点击newuser,就会弹出添加帐号的界面;
提示:填写好帐号名和邮箱后,直接点击后面的create user即可;后面的访问权限可以执行设定,如果是管理员选择后面的admin级别即可;
查看邮件
提示:我们点击创建用户以后,gitlab就会根据我们填写的邮件地址,给对应邮件地址发送邮件;如上所示;我们设置密码就可以直接点击上面的连接,直接设置密码即可,如下;
提示:把密码设置以后,点击change your password即可;
提示:我们设置了密码以后,gitlab会发邮件给我们说密码已经设置,登录点击那个那个地址;如上图所示;我们点击上面的连接,就可以跳转到gitlab的登录界面;然后登录刚才创建的用户和设置的密码就好;
修改用户密码
提示:在root用户新建用户后的界面上,点击edit,就可给刚才新建的用户设置密码;或者用root用户登录,点击上面的小扳手,找到下面的用户名,然后点击,也可以跳转到上面的界面;如下
提示:点击对应的用户名称,就可以跳转到山上一个图的界面,然后我们在点击edit进行编辑即可;
提示:我们输入两次相同的密码后,点击下方的save changes即可把对应用户的密码修改成我们刚才输入的密码;
提示:管理员修改密码后,gitlab会发送一份邮件给用户,说管理员把密码重置了;点击链接可以登录;
提示:使用jerry登录,它会提示我们修改密码,我们把当前密码写上,然后在后面再写新密码,点击set new password即可;
除上面管理员协助修改密码,我们也可以去登录界面点击忘记密码进行修改
提示:这里的email要填写我们对应帐号后的邮件地址,然后点击reset password;
提示:这里提示我们如果我们填写的邮件地址在我们数据库里能够找到,就会发送重置密码的邮件;显然,如果数据库里没有对应的邮件地址,也就不能给我们发送邮件;
提示:收到邮件后,我们可以点击reset password,然后他会跳转到重置密码的界面;
创建group
提示:使用root用户登录gitlab,然后点击上面的小扳手,点击new group,就可以跳转到创建项目的界面;
提示:创建组的时候,我们要选择私有,互联网,还是公开;如果我们选择私有,就表示只有在组里的成员才能够看到关联到组中的项目,如果是公开,表示登录的用户都看得到;互联网指所有用户都看得到,即便没有登录;选择好,我们就可以点击下面的create group按钮;
提示:创建好组以后,我们要关联用户到这个组里来,并且指定其在组里的权限,这里的权限有guest,ower等等,如果不清楚个角色的权限,可以点击上面的here哪里;选择好用户和角色以后,就可以点击add users to group;
提示:把用户关联到对应组里以后,用户会收到一封邮件,如果我们不想待在对应的组里,可以选择离开组;如下
创建项目
提示:使用root用户登录gitlab,然后点击上面的小扳手,点击new project,就可以跳转到创建项目的界面;
提示:这里和创建组有点类似,这里需要注意一点,我们要选择创建的项目属于组还是用户,如果是组就选择组名,对于组中的成员都会对该项目拥有对应角色的权限;然后选择好以后,点击create project;
提示:项目创建好以后,我们就可以克隆项目到本地了;如上复制对应协议的连接地址,在本地执行git clone 就可以把对应的项目克隆到本地;我们也可以直接在项目中添加文件等等;在项目的下面它告诉我们在命令行中如何克隆项目,提交等等操作;
克隆刚才创建的项目到本地
提示:这里使用git clone克隆,它要求我们输入用户名和密码,用户名和密码验证正确后,我们就可以把对应的项目克隆到本地;这里警告我们所我们克隆的项目是一个空仓库;
进入刚才克隆的仓库,添加文件
将本地仓库push到远端仓库
提示:这里提示我们没有指定分支;解决办法明确指定把本地的origin分支 push到远端的master分支;
验证:在gitlab上,看看我们push的项目中是否有passwd文件?
到此,在客户端使用git命令可以将gitlab上创建的项目拖到本地,也可以将本地仓库push到远端仓库;
在gitlab上更改passwd文件内容
在本地使用git fetch 取远端仓库更新
[root@node06 test]# git fetchUsername for 'http://192.168.0.46': jerry
Password for 'http://jerry@192.168.0.46':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From http://192.168.0.46/test-app/test
fecc791..08cbf1f master -> origin/master
[root@node06 test]#
提示:git fetch命令是从远端仓库取更新到本地,但并不与本地分支进行合并;
将更新应用到本地
取回远程服务器更新,而后与本地的指定分支合并
提示:以上使用git pull命令是将远端仓库更新取回,并和本地的master合并;默认不加后面的远端分支和本地分支,默认远端是origin,本地是master;如果本地或远端有多个分支需要明确指出;
验证:看看本地的passwd是否变了?
在本地新建分支,然后push到远端仓库
提示:从上面反馈的显示在远端仓库生成了一个新的分支;
验证:去远端gitlab上查看是否有devel分支生成?对应分支下是否有fstab和passwd文件?
删除远端仓库分支
[root@node06 test]# git push origin :develUsername for 'http://192.168.0.46': jerry
Password for 'http://jerry@192.168.0.46':
To http://192.168.0.46/test-app/test.git
- [deleted] devel
[root@node06 test]#
验证:查看远端gitlab对应仓库是否还有devel分支?
提示:可以看到gitlab上的devel分支就没有了;到此gitlab经过测试都是正常工作的,后续我们就可以使用我们搭建的gitlab来管理项目,代码管理;
以上是 gift图t仓库之gitlab私有云搭建使用 的全部内容, 来源链接: utcz.com/a/57542.html