环境说明

系统版本 CentOS 7.2 x86_64(较新版本的gitlab集成了更多功能,顺利运行起来的硬件要求较高,这里给了3G内存)

软件版本 gitlab-ce-10.8.4

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。可通过Web界面进行访问公开的或者私人项目。它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

 

1、安装

Gitlab的rpm包集成了它需要的软件,简化了安装步骤,所以直接安装rpm包即可,rpm包的获取从官方网站或者国内镜像源(如:清华https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/)获取,gitlab又分为社区版和企业版(收费),这里部署的是社区版本10.8.4

[root@gitlab ~]# mkdir -p /service/tools

[root@gitlab ~]# cd /service/tools/

[root@gitlab tools]# yum localinstall -y gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm            #安装下载好的rpm包

或者

[root@gitlab ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm        #执行rpm -ivh 在线安装

安装完成后出现上面的提示,按照提示修改配置文件中的url地址为本地服务器的地址

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

external_url 'http://10.0.0.5'

[root@gitlab tools]# gitlab-ctl reconfigure        #重新加载配置

[root@gitlab tools]# gitlab-ctl stop        #停止gitlab,进行后面的汉化

[root@gitlab tools]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

10.8.4        #查看版本

[root@gitlab tools]# rpm -qa gitlab-ce

gitlab-ce-10.8.4-ce.0.el7.x86_64        #查看版本

[root@gitlab tools]# ls /opt/gitlab/                #相关目录

bin embedded init LICENSES sv version-manifest.json

dependency_licenses.json etc LICENSE service var version-manifest.txt

[root@gitlab tools]# ls /var/opt/gitlab                #相关目录

alertmanager git-data gitlab-shell node-exporter public_attributes.json

backups gitlab-ci gitlab-workhorse postgres-exporter redis

bootstrapped gitlab-monitor logrotate postgresql trusted-certs-directory-hash

gitaly gitlab-rails nginx Prometheus

 

2、汉化

默认的全英文界面对于英文水平低的来讲当然用着很不舒服,于是便需要来一波操作进行汉化,英文好的请自觉忽略

GitLab中文社区的项目,v7-v8.8是由Larry Li发起的"GitLab中文社区版项目"(https://gitlab.com/larryli/gitlab),从v8.9之后由@xhang开始继续汉化项目(https://gitlab.com/xhang/gitlab

[root@gitlab tools]# pwd

/service/tools

[root@gitlab tools]# mkdir /backup

[root@gitlab tools]# cp /opt/gitlab/embedded/service/gitlab-rails/* /backup    #防止汉化失败,备份原文件

[root@gitlab tools]# git clone https://gitlab.com/xhang/gitlab.git        #下载最新的汉化包

汉化包的版本更新速度不得而知,所以尽量不要安装最新版本的gitlab。如果是要下载老版本的汉化包,需要加上老版本的分支,如果想下载10.0.2,可以运行如下语句

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

[root@gitlab tools]# ls        #git下来的文件为gitlab

gitlab gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm

[root@gitlab tools]# \cp -rf gitlab/* /opt/gitlab/embedded/service/gitlab-rails/    #拷贝文件

检验汉化

[root@gitlab tools]# gitlab-ctl reconfigure            #加载配置(第一次执行此命令会启动,若只启动执行start)

启动时查看控制台输出,需要等待一段时间,无输出后启动完成,执行free -m命令查看到当前的内存使用情况为

[root@gitlab tools]# free -m

total used free shared buff/cache available

Mem: 2993 2123 156 62 713 597

Swap: 2047 0 2047

[root@gitlab tools]# netstat -lntup

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 127.0.0.1:9100 0.0.0.0:* LISTEN 4319/node_exporter

tcp 0 0 127.0.0.1:9229 0.0.0.0:* LISTEN 4628/gitlab-workhor

tcp 0 0 127.0.0.1:9168 0.0.0.0:* LISTEN 4659/ruby

tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 4191/unicorn master

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 127.0.0.1:8082 0.0.0.0:* LISTEN 4196/sidekiq 5.0.5

tcp 0 0 127.0.0.1:9236 0.0.0.0:* LISTEN 4642/gitaly

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1439/sshd

tcp 0 0 0.0.0.0:8060 0.0.0.0:* LISTEN 4223/nginx: master

tcp 0 0 0.0.0.0:6783 0.0.0.0:* LISTEN 4696/alertmanager

tcp 0 0 127.0.0.1:9121 0.0.0.0:* LISTEN 4425/redis_exporter

tcp 0 0 127.0.0.1:9090 0.0.0.0:* LISTEN 4681/prometheus

tcp 0 0 127.0.0.1:9187 0.0.0.0:* LISTEN 4710/postgres_expor

tcp 0 0 127.0.0.1:9093 0.0.0.0:* LISTEN 4696/alertmanager

tcp6 0 0 ::1:9168 :::* LISTEN 4659/ruby

tcp6 0 0 :::22 :::* LISTEN 1439/sshd

浏览器访问,第一次登录需要修改密码(不小于8位),汉化成功!!!

3、登录并进行基本操作

GitLab终端常用命令

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

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

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

gitlab-ctl status         #查看服务状态;

gitlab-ctl reconfigure     #启动服务;

vim /etc/gitlab/gitlab.rb #修改默认的配置文件;

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

gitlab-ctl tail         #查看日志;

修改密码后进行登录,登录的用户名为root

3.1 使用前可选操作

3.1.1 修改web端口

如果80和8080端口被占用可以修改

[root@gitlab tools]# vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb

listen "127.0.0.1:8080", :tcp_nopush => true

修改nginx端口

[root@gitlab tools]# vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

server {

listen *:80;

3.1.2 修改Prometheus端口

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

external_url 'http://10.0.0.5:port'        #根据需要修改端口

修改后需要重新加载配置并启动

登录使用

3.2 创建空白项目

选择项目路径,输入项目名称,项目描述,选择项目等级(私人的,内部的,公开的),这里测试时使用网上的开源java cms项目jeesns

创建项目成功,此时若客户端想使用该项目还需要建立与客户端的密钥文件以进行客户端对项目的操作

3.3 客户端生成密钥文件

[root@gitlab-client ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

Created directory '/root/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

07:f8:5c:75:83:aa:c2:a6:5c:25:d9:87:d0:4e:7a:1c root@gitlab-client

The key's randomart image is:

+--[ RSA 2048]----+

| . ..o |

| ..E ... . |

| .O.o.. |

| +oBoo |

| . +So. |

| = .. |

| . + . |

| o |

| |

+-----------------+

[root@gitlab-client ~]# cat .ssh/id_rsa.pub         #查看公钥

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI5yMQBjSftxN9PHg3ogCwaTxPNZ3n5+TZRwJZBKO5sQGNirAzNdq8wFwbUFqtFDqYFxU3mTBh5LG3Fk1Zh8R8abpzmHijP09gdgB4Ae31axRAPcngXss//flKQCSHoQlvwI+ZWozMGItmFMcmRCla4BTq/e3mVJuIdR8VQwSG32SeRqReZIrjbvsa8hp3D5nbLa5KWRiAuOj4OhPBwHOG8hx/wSnplyI8rtMayj6BjuczDdrZNotyv0IntxFZPoUQJ/+pN1azHGm6tI1TmKyh1lmmc5Tu0a7TxTf7Ve+P/srbxlqb7CWT168fZRzziglXcR5e2Ge7tNrkXo+dl2tf root@gitlab-client

将上面的公钥文件复制到gitlab中

ssh key添加完成

点击项目,查看项目的ssh地址及http地址

按照项目下面的提示进行简单配置

在客户端操作

git全局设置

[root@gitlab-client ~]# git config --global user.name "test"            #配置使用Git仓库的人员姓名

[root@gitlab-client ~]# git config --global user.email "test@test.com"    #配置使用Git仓库的人员email

设置后提交记录才会在gitlab上显示带名字的记录

[root@gitlab-client ~]# git config --list        #检查配置信息

3.4 导入新项目文件到仓库

[root@gitlab-client ~]# cd /service/tools/jeesns/

[root@gitlab-client jeesns]# rm -rf .git        #在网站下载的jeesns有.git目录,删除该目录

[root@gitlab-client jeesns]# git init        #初始化仓库(创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干)

初始化空的 Git 版本库于 /service/tools/jeesns/.git/

[root@gitlab-client jeesns]# git remote add origin git@10.0.0.5:root/jeesns.git        #添加远程项目地址(可从项目主页复制)

[root@gitlab-client jeesns]# git add .    #将修改保存到索引区

[root@gitlab-client jeesns]# git commit -m "tijiao"    #提交所有代码到本机的版本库

[root@gitlab-client jeesns]# git push -u origin master        #将本地的更改提交到远程服务器

The authenticity of host '10.0.0.5 (10.0.0.5)' can't be established.

ECDSA key fingerprint is b7:9c:07:5c:a0:01:c3:00:50:f4:59:8e:e3:f5:f5:e2.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '10.0.0.5' (ECDSA) to the list of known hosts.

Counting objects: 1932, done.

Compressing objects: 100% (1851/1851), done.

Writing objects: 100% (1932/1932), 37.69 MiB | 9.26 MiB/s, done.

Total 1932 (delta 283), reused 0 (delta 0)

remote: Resolving deltas: 100% (283/283), done.

To git@10.0.0.5:root/jeesns.git

* [new branch] master -> master

分支 master 设置为跟踪来自 origin 的远程分支 master。

此时查看项目,代码已经成功上传到gitlab

3.5 创建一个新的版本库

参照提示进行操作,首先在gitlab上创建新的版本库,接着客户端进行操作

git clone git@10.0.0.5:root/12345.git        #将远程服务器项目的内容clone下来

cd 12345                                #进入该项目的文件夹

touch README.md                        #新建readme文件

git add README.md                    #将新的文件添加到git的暂存区

git commit -m "add README"            #将暂存区的文件提交到某一个版本保存下来,并加上注释

git push -u origin master                #将本地的更改提交到远程服务器

git 中clone过来的时候,git不会对比本地和服务器的文件,也就不会有冲突,建议确定完全覆盖本地的时候用clone,不确定会不会有冲突的时候用git pull,将远程服务器的代码download下来

3.6 已存在git版本库

cd existing_repo

git remote rename origin old-origin                #重命名

git remote add origin git@10.0.0.5:root/12345.git    #添加远程项目地址

git push -u origin –all        #上传

git push -u origin --tags        #上传tag(分支)

 

3.7 基本操作总结及其他交互操作

git init //初始化

git add main.cpp //将某一个文件添加到暂存区

git add . //将文件夹下的所有的文件添加到暂存区

git commit -m 'note' //将暂存区中的文件保存成为某一个版本

git log //查看所有的版本日志

git status //查看现在暂存区的状况

git diff //查看现在文件与上一个提交-commit版本的区别

git reset --hard HEAD^ //回到上一个版本

git reset --hard XXXXX //XXX为版本编号,回到某一个版本

git pull origin master //从主分支pull到本地

git push -u origin master //从本地push到主分支

git pull //pull默认主分支

git push //push默认主分支

更多git命令可参考:https://www.yiibai.com/git/git_push.html

 

4、gitlab邮件功能配置

4.1 配置

以163邮箱为例

[root@gitlab tools]# vim /etc/gitlab/gitlab.rb

gitlab_rails['time_zone'] = 'Asia/Shanghai'

gitlab_rails['gitlab_email_enabled'] = true

gitlab_rails['gitlab_email_from'] = '邮件用户名@163.com'

gitlab_rails['gitlab_email_display_name'] = 'Gitlab CE'

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.163.com"

gitlab_rails['smtp_port'] = 25

gitlab_rails['smtp_user_name'] = "邮件用户名@163.com"

gitlab_rails['smtp_password'] = "邮件帐号的授权码"

gitlab_rails['smtp_domain'] = "163.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = false

user['git_user_email'] = "邮件用户名@163.com"

[root@gitlab tools]# gitlab-ctl reconfigure        #重新加载配置

qq邮箱配置

gitlab_rails['smtp_enable'] = true

gitlab_rails['smtp_address'] = "smtp.qq.com"

gitlab_rails['smtp_port'] = 465

gitlab_rails['smtp_user_name'] = "******@qq.com"

gitlab_rails['smtp_password'] = "授权码"

gitlab_rails['smtp_domain'] = "smtp.qq.com"

gitlab_rails['smtp_authentication'] = "login"

gitlab_rails['smtp_enable_starttls_auto'] = true

gitlab_rails['smtp_tls'] = true

gitlab_rails['gitlab_email_from'] = '******@qq.com'

4.2 邮箱测试

命令行测试:

执行 gitlab-rails console进入控制台

输入Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now

命令行测试成功,可以在邮箱中查收

为用户添加一个邮箱

点击增加,并登陆邮箱查看,点击确认即可增加邮箱

忘记密码邮箱发送邮件测试

查看邮箱信息

Gitlab安装部署及基础操作的更多相关文章

  1. 一文搞懂GitLab安装部署及服务配置

    GitLab安装部署 Git,GitHub,GitLab,这三个东东长得好像呀,都是个啥? Git是Linus Torvalds(如果不知道这位大神是谁,请出门左转,慢走不送~)为了帮助管理Linux ...

  2. CentOS7安装部署zabbix3.4操作记录

    CentOS7安装部署zabbix3.4操作记录 1.安装前准备 1.1 查看centos的系统版本 [root@zabbix ~]# cat /etc/redhat-release CentOS L ...

  3. DevOps实践之Gitlab安装部署

    All GitLab packages are posted to our package server and can be downloaded. We maintain five repos: ...

  4. CentOS7安装MongoDB及基础操作

    安装环境说明 系统环境说明 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@ma ...

  5. Jenkins+maven+gitlab自动化部署之基础环境部署(一)

    从一个二线城市,来到上海,刚入职,老大就给任务,为了减少开发打包部署时间,需要搭建一套自动化部署环境.接到任务后,赶紧上网查找资料,以及了解jenkins作用等等,用了一周时间,了解了个大概,由于都是 ...

  6. gitlab安装部署汉化

    1.获取gitlab汉化包(要部署非汉化版,可以跳过这一块内容) 说明:gitlab中文社区版的项目,v7-v8.8是由Larry Li发起的“GitLab 中文社区版项目”(https://gitl ...

  7. CentOS 7 环境下 GitLab安装部署以及账号初始化

    1. 安装相关依赖 yum install curl policycoreutils openssh-server openssh-clients -y # 确保sshd启动(正常情况下, sshd是 ...

  8. [MongoDB]------windos下的安装部署与基础使用

    1.安装 首先前往官网进行下载,这里贴个地址https://www.mongodb.com/download-center#community 点击大大的原谅色的DOWNLOAD(msi)按钮进行下载 ...

  9. K8S的安装部署以及基础知识

    Kubernetes(K8S)概述 Kubernetes又称作k8s,是Google在2014年发布的一个开源项目. 最初Google开发了一个叫Borg的系统(现在命名为Omega),来调度近20多 ...

随机推荐

  1. appium===出错时截图的方法,自动截图

    try: driver.find_element_by_id("kwsss").send_keys("selenium") driver.find_elemen ...

  2. 在oracle官网上,找到我们所需版本的jdk

    oracle的官网,因为都是英文,而且内容还特别多,经常的找不到历史版本的JDK. 特地,将找历史版本JDK的方法记录下来. 访问:http://www.oracle.com/technetwork/ ...

  3. animation动画的笔记

    animation的主要语法: -webkit-animation-duration:/*-webkit是针对个别浏览器内核支持,duration是动画时间*/ -webkit-animation-t ...

  4. Nginx网站根目录更改及导致403 forbidden的问题解决

    最近因为工作需要,要将Nginx网站根目录更改下,通过网上的一些教程更改后,但发现测试的时候一直提示403 forbidden错误,后台通过一个朋友的提示也解决了,所以现在将详细的步骤分享给大家,有需 ...

  5. laravel将数据库对象转为数组的方法

    亲测有效 array_map('get_object_vars', $data);

  6. php必备树状数组处理方法

    thinkphp必备公共方法 /** * 子元素计数器 * @param array $array * @param int $pid * @return array */ function arra ...

  7. centos 修改ftp目录

    # usermod -d /home/www username // # service vsftpd restart // 重启vsftpd 两步搞定

  8. HDU1213 How Many Tables (并查集)

    题目大意: 有一个人要过生日了,请他的朋友来吃饭,但是他的朋友互相认识的才能坐在一起,朋友的编号从1 ~ n,输入的两个数代表着这两个人互相认识(如果1和2认识,2和3认识,那么1和3也就认识了).问 ...

  9. 【动态规划】Gym - 100923A - Por Costel and Azerah

    azerah.in / azerah.out Por Costel the Pig has received a royal invitation to the palace of the Egg-E ...

  10. 【分块】【哈希】bzoj3578 GTY的人类基因组计划2

    每个房间用一个集合来维护,具体来说,就是给1-n的数每个数一个long long的hash值,往集合S里insert(i),就是S^=HASH[i]:erase(i),也是S^=HASH[i]. 用m ...