git与github——7,GitLab的安装及使用教程

在生产环境的部署,yum源的配置要相对麻烦一些,可以采用npm 来安装

一、安装gitlab

1、配置yum源

vim /etc/yum.repos.d/gitlab-ce.repo

复制以下内容:

 

[gitlab-ce]

name=Gitlab CE Repository

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/

gpgcheck=0

enabled=1

 

2、更新本地yum缓存

sudo yum makecache

git与github——7,GitLab的安装及使用教程_第1张图片

3、安装GitLab社区版

sudo yum install gitlab-ce        #自动安装最新版
sudo yum install gitlab-ce-x.x.x    #安装指定版本

git与github——7,GitLab的安装及使用教程_第2张图片

GitLab常用命令

注意,gitlab-ctl start 不是启动gitlab服务,只是启动所有的组件

gitlab-ctl reconfigure 的时间有点久,要等一下,等到reconfigure完之后就可以打开gitlab

sudo gitlab-ctl start    # 启动所有 gitlab 组件;
sudo gitlab-ctl stop        # 停止所有 gitlab 组件;
sudo gitlab-ctl restart        # 重启所有 gitlab 组件;
sudo gitlab-ctl status        # 查看服务状态;
sudo gitlab-ctl reconfigure        # 启动服务;
sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
sudo gitlab-ctl tail        # 查看日志;

GitLab使用

二、登录GitLab、修改root密码

1、在浏览器的地址栏中输入ECS服务器的公网IP即可登录GitLab的界面,第一次登录使用的用户名和密码为 root 和 5iveL!fe。

我这里遇到一个问题,他报了502错误。可能是虚拟机资源不够,另外访问不用加端口,也就是80端口就可以访问。应该是可以设置端口。

在生产环境中发现,密码不对!果然有些教程还是有水分的,然后用了一套修改密码的方法:

获得用户数据,修改用户密码
[root@svr34 bin]# gitlab-rails console production
Loading production environment (Rails 4.2.5.2)
irb(main):001:0> user = User.where(id: 1).first
=> # irb(main):002:0> user.password=12345678
=> 12345678
irb(main):003:0> user.password_confirmation=12345678
=> 12345678
irb(main):004:0> user.save!
=> true
irb(main):005:0> quit
 

这样就可以将root密码改为12345678

git与github——7,GitLab的安装及使用教程_第3张图片

2、首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录。

 

三、设置gitlab的ip及端口

创建了一个test仓库后,看看链接:

并不是本机ip,这里需要修改配置文件:

vim /etc/gitlab/gitlab.rb

将这一段的ip改成服务器的就行了,192.168.0.1:8888

另外,企业的80端口一般是比较重要的,不会专门给到gitlab 80端口,因此我们还要修改gitlab的端口设置:

同样这个文件,找到linsten_port这一行:

修改端口:

之后重新reconfigure,这里要注意一点,就是gitlab reconfigure后需要等一段时间再访问,一分钟大概就可以。

针对防火墙(iptables),这么设置就可以了:

        vim /etc/sysconfig/iptables
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
        service iptables restart

 

四、汉化

Gitlab默认语言是英文,对于想加强英文的同学,建议继续使用英文,但要求使用中文,这里需要下载一个汉化包
下载最新的汉化包:

[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git

如果要下载指定版本的汉化包,需要加上版本号。
例:下载10.5.1,命令如下:

[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git  -b  v10.5.1-zh

下载完成后,将下载的文件夹内容复制到gitlab目录下
复制前先停止Gitlab

[root@gitlab ~]# gitlab-ctl stop
ok: down: gitaly: 0s, normally up
ok: down: gitlab-monitor: 0s, normally up
ok: down: gitlab-workhorse: 1s, normally up
ok: down: logrotate: 0s, normally up
ok: down: nginx: 1s, normally up
ok: down: node-exporter: 0s, normally up
ok: down: postgres-exporter: 1s, normally up
ok: down: postgresql: 0s, normally up
ok: down: prometheus: 0s, normally up
ok: down: redis: 0s, normally up
ok: down: redis-exporter: 1s, normally up
ok: down: sidekiq: 0s, normally up
ok: down: unicorn: 1s, normally up

[root@gitlab ~]# cp -r -f  ./gitlab/*  /opt/gitlab/embedded/service/gitlab-rails/ 

复制时可能不断提示是否要覆盖,这时可能是系统每次执行cp命令时,其实是执行了cp -i命令的别名。出现这种情况可以修改~/.bashrc,在“alias cp=’cp -i’”前加#注释,再刷新文件 source ~/.bashrc

在复制过程中提示,以下信息是正常的
Gitlab 10.5版本的部署使用及汉化

复制完成后,需要重新加载配置,并启动Gitlab

[root@gitlab ~]# gitlab-ctl reconfigure      
...
... ...
... ... ...
... ... ... ...
...
Running handlers:
Running handlers complete
Chef Client finished, 2/516 resources updated in 09 seconds
gitlab Reconfigured!

[root@gitlab ~]# gitlab-ctl restart
ok: run: gitaly: (pid 42828) 0s
ok: run: gitlab-monitor: (pid 42852) 0s
ok: run: gitlab-workhorse: (pid 42858) 0s
ok: run: logrotate: (pid 42867) 0s
ok: run: nginx: (pid 42874) 0s
ok: run: node-exporter: (pid 42879) 0s
ok: run: postgres-exporter: (pid 42884) 1s
ok: run: postgresql: (pid 42894) 0s
ok: run: prometheus: (pid 42897) 0s
ok: run: redis: (pid 42907) 0s
ok: run: redis-exporter: (pid 42912) 1s
ok: run: sidekiq: (pid 42997) 0s
ok: run: unicorn: (pid 43007) 0s

[root@gitlab ~]# lsof -i:80
COMMAND   PID       USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   42874       root    7u  IPv4 125185      0t0  TCP *:http (LISTEN)
nginx   42875 gitlab-www    7u  IPv4 125185      0t0  TCP *:http (LISTEN)

[root@gitlab web-demo]# lsof -i:8080
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bundle  40358  git   18u  IPv4 119105      0t0  TCP localhost:webcache (LISTEN)
bundle  40650  git   18u  IPv4 119105      0t0  TCP localhost:webcache (LISTEN)
bundle  40652  git   18u  IPv4 119105      0t0  TCP localhost:webcache (LISTEN)

再次访问web界面,显示的已经为汉化熟悉的中文

 

 

五、创建Project

1、安装Git工具linux:安装Git,使用自带的源安装。

yum install git

GitLab的安装及使用教程

2、生成密钥文件:使用ssh-keygen生成密钥文件.ssh/id_rsa.pub。

git与github——7,GitLab的安装及使用教程_第4张图片

git与github——7,GitLab的安装及使用教程_第5张图片

3.在GitLab的主页中新建一个Project

git与github——7,GitLab的安装及使用教程_第6张图片

git与github——7,GitLab的安装及使用教程_第7张图片

4.添加ssh key导入步骤2中生成的密钥文件内容:

git与github——7,GitLab的安装及使用教程_第8张图片

git与github——7,GitLab的安装及使用教程_第9张图片

ssh key添加完成:

git与github——7,GitLab的安装及使用教程_第10张图片

项目地址,该地址在进行clone操作时需要用到:

git与github——7,GitLab的安装及使用教程_第11张图片

简单配置

1、配置使用Git仓库的人员姓名(以上海驻云为例)

git config --global user.name "上海驻云" 

2、配置使用Git仓库的人员email,填写自己的公司邮箱

git config --global user.email "[email protected]" 

3、克隆项目,在本地生成同名目录,并且目录中会有所有的项目文件

git clone git@iZbp1h7fx16gkr9u4gk8v3Z:root/test.git

GitLab的安装及使用教程

上传文件

1、进入到项目目录

cd test/ 

2、创建需要上传到GitLab中的目标文件

echo “test” >  /root/test.sh

3、将目标文件或者目录拷贝到项目目录下

cp /root/test.sh ./  

git与github——7,GitLab的安装及使用教程_第12张图片

4、将test.sh文件加入到索引中

git add test.sh 

5、将test.sh提交到本地仓库

git commit -m “test.sh”

6、将文件同步到GitLab服务器上

git push -u origin master 

git与github——7,GitLab的安装及使用教程_第13张图片

7、在网页中查看上传的test.sh文件已经同步到GitLab中

git与github——7,GitLab的安装及使用教程_第14张图片

 

六、配置gitlab邮件服务

什么情况下需要配置邮箱服务?

    有合并请求时,邮件通知
    账号注册时,邮件验证
    修改密码时,通过邮件修改

ok,接下来试试自己设置一个gitlab邮件服务

1.开启QQ邮箱的smtp服务

不建议使用163邮箱,发几次之后,就不能发送
        过程概述:设置--》账户--》smtp--》密保验证--》验证成功返回一串字符串,形状如(ausdixersybgcgid)
        保存返回的字符串

在qq邮箱的首页找到设置:

之后在设置中找到账户

在账户中找到smtp部分,开启相关服务

git与github——7,GitLab的安装及使用教程_第15张图片

设置成功后,会有一串字符形状如(ausdixersybgcgid)


2.修改gitlab配置

        vim /etc/gitlab/gitlab.rb
        按/后输入smtp_enable,找到下面这一串文本,进行修改:

git与github——7,GitLab的安装及使用教程_第16张图片

改成:

git与github——7,GitLab的安装及使用教程_第17张图片

改的具体内容参照如下:
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = "smtp.qq.com"
        gitlab_rails['smtp_port'] = 465
        gitlab_rails['smtp_user_name'] = "[email protected]"
        gitlab_rails['smtp_password'] = "开通smtp时返回的字符"
        gitlab_rails['smtp_domain'] = "qq.com"
        gitlab_rails['smtp_authentication'] = "login"
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = true

 

接下来修改成自己的qq邮箱:

        user['git_user_email'] = "[email protected]"

gitlab_email_from同样的处理:
        gitlab_rails['gitlab_email_from'] = '[email protected]'
        按esc退出到命令行模式
        之后:wq 保存并退出

        gitlab-ctl reconfigure


    3.测试邮件服务是否正常

        gitlab-rails console
        Notify.test_email('接收方邮件地址','邮件标题','邮件内容').deliver_now
        按回车,测试发送。

七、gitlab群组配置

1,设置不允许注册

gitlab一开始的注册,只要注册了就可以成功。

因此需要进行设置,进入root账号:

找到settings:

git与github——7,GitLab的安装及使用教程_第18张图片

在sign up setting中进行设置:

这个功能就可以设置email认证或者是否能够进行注册了,我直接取消了注册。

如果选择 send confirmaition email 则会发送一个确认信息给邮件

2,设置group

点击groups

创建一个组(new group):

输入组的名字:test1 

注意一个可视程度的设置:

git与github——7,GitLab的安装及使用教程_第19张图片

private就是组内可见的意思

internal,登录可见

public,不登录就可见,当然企业一般不会用这个

确认即可

另外在member里可以设置group有哪些成员

git与github——7,GitLab的安装及使用教程_第20张图片

注意组员身份有这几种:

git与github——7,GitLab的安装及使用教程_第21张图片

Guest是游客身份,只能发表评论之类,不能读写我们的项目库

Reporter可以克隆项目,但是不能做项目的提交。

下面的权限依次增大。owner可以删除项目

3,创建项目

new 一个project就可以,和github很类似。

注意一点,project也有private权限。

至于设置ssh和github方法是一样的。

 

八、gitlab分支管理

其实也是和github一致的,一般开发有主分支(master)、测试分支(test)和开发分支(dev)三条分支。

一般是要保护master分支准确无误。也就是dev分支先通过测试分支通过后合并到master分支。

可以在project setting 中找到 保护分支:

 

 

参考文章: https://yq.aliyun.com/articles/74395

你可能感兴趣的:(git,gitlab)