沧浪之水清兮,可以濯吾缨; 沧浪之水浊兮,可以濯吾足。


                                                                                 -------------------《渔夫》引自《大江大河:水书记》

转自:https://www.cnblogs.com/chenfool/p/7689438.html

环境说明:
虚拟机 centos 7 64位
内存:4GB
存储:100GB
CPU: CORE

版本:
gitlab 10.0.3

  • 配置系统基础环境

配置阿里巴巴 yum 源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

重建yum 的缓存

yum clean all
yum makecache

配置 yum 的本地源

mount ~/CentOS-7-x86_64-DVD-1708.iso /mnt/cdrom/

修改本地 yum 的配置

git clone https://gitlab.com/xhang/gitlab.git

将 baseurl 的参数增加一个列表

git clone https://gitlab.com/xhang/gitlab.git

修改enabled值,改为

enabled=1
  • 安装gitlab 环境准备

安装 git

yum install -y git

创建 gitlab汉化版的源码目录,等一下使用git clone 一份新的代码

mkdir gitlab_zh
cd gitlab_zh
git clone https://gitlab.com/xhang/gitlab.git

当前作者下载汉化源码为10.0.4,但是即将安装的 gitlab 版本为 10.0.3

  • 安装gitlab

安装 gitlab 的依赖包

yum install curl openssh-server openssh-clients postfix cronie policycoreutils-python –y
yum install -y patch

启动 postfix,并且设置为开机启动

systemctl start postfix
systemctl enable postfix

设置防火墙

firewall-cmd --add-service=http --permanent
firewall-cmd --reload

大家从网上下载好 gitlab 的rpm 包后,就可以安装了

rpm -i gitlab-ce-10.0.3-ce.0.el7.x86_64.rpm

gitlab 下载地址:

https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

当 shell 中出现以下内容,则证明 gitlab 的程序安装完了

继续安装提示执行配置 gitlab 的命令

gitlab-ctl reconfigure

修改 gitlab 的配置文件

vi /etc/gitlab/gitlab.rb

修改里面的 external_url 参数,例如作者的机器的IP地址为 10.211.55.10

external_url='http://10.211.55.10'

因为修改了配置文件,所以重新加载配置文件

gitlab-ctl reconfigure
  • 汉化 gitlab

使用汉化包来为社区版本的 gitlab 打补丁

停止 gitlab 服务

gitlab-ctl stop

切换到 刚才从 github 上download 的汉化包目录

cd /root/source/gitlab_zh/gitlab/

找出安装的 10.0.3 版本和 汉化版本10.0.4 中的不同点

git diff v10.0.3 v10.0.4-zh > ../10.0.3-zh.diff

目录倒退一层

cd ../

将 10.0.3-zh.diff 的补丁添加到 gitlab 中

patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.0.3-zh.diff

重新启动 gitlab 服务

gitlab-ctl start

重新配置 gitlab

gitlab-ctl reconfigure

软件安装部分就完成了,以下是web 页面配置部分

  • web页面配置

由于作者本机的IP 地址为 10.211.55.10,而且gitlab 默认的端口号为 80,所以使用浏览器访问以下地址:
http://10.211.55.10:80

用户自己在页面上输入 新的密码,该密码为 管理员密码

未来管理员的登陆名为 root,密码为刚才修改的密码

  • 配置gitlab 用户注册时的邮箱通知信息

修改 /etc/gitlab/gitlab.rb 配置文件,该邮箱地址是未来gitlab 向用户发送邮件时的推送邮箱

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com" # 用户输入自己的smtp服务器地址,例如作者的时163 的企业服务地址
gitlab_rails['smtp_port'] = 25 # 用户smtp 的端口号
gitlab_rails['smtp_user_name'] = "***@qq.com" # 用户的邮箱地址
gitlab_rails['smtp_password'] = "PASSWORD" # 用户的邮箱密码
gitlab_rails['smtp_domain'] = "qq.com" # 用户邮箱的域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = '***@qq.com' # 用户的邮箱地址
user['git_user_email'] = "***@qq.com" # 用户的邮箱地址

作者在这里给大家一个提醒,如果大家安装gitlab 的环境为阿里云,一定要确认25 端口是否能够使用,作者就由于之后在阿里云上部署gitlab时,遇到25 端口无法使用的问题,所以一直导致在注册新用户时,邮件无法发送出去,这个时候解决方法可以选择使用打开 ssl 加密传输,这样端口就不再是 25 端口了,例如qq 的邮件配置应该变为

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com" # 用户输入自己的smtp服务器地址,例如作者的时163 的企业服务地址
gitlab_rails['smtp_port'] = 465 # 用户smtp 的端口号
gitlab_rails['smtp_user_name'] = "***@qq.com" # 用户的邮箱地址
gitlab_rails['smtp_password'] = "PASSWORD" # 用户的邮箱密码
gitlab_rails['smtp_domain'] = "qq.com" # 用户邮箱的域名
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['gitlab_email_from'] = '***@qq.com' # 用户的邮箱地址
user['git_user_email'] = "***@qq.com" # 用户的邮箱地址
gitlab_rails['smtp_tls'] = true # 打开 ssl 加密传输

因为修改了配置文件,所以重新加载配置文件

gitlab-ctl reconfigure

管理员还需要在web的管理页面上修改对应的配置,管理员的配置页面可以点击以下按钮

gitlab是否打开新用户注册

如果管理员需要自己手工添加新用户可以在以下页面配置

其他的一些技术点

  • 查看gitlab 的配置
gitlab-ctl show-config
  • 查看gitlab 的运行日志
gitlab-ctl tail
  • 切换gitlab 仓库的数据目录

gitlab 默认的仓库数据目录为 /var/opt/gitlab/git-data/repositories/ ,如果未来用户的数据量大了,需要更换仓库数据目录,可以通过修改 /etc/gitlab/gitlab.rb 配置进行调整。

用户在调整gitlab 的配置之前,建议对其先停止服务。

gitlab-ctl stop

然后用户创建好未来要迁移的数据目录,并且将原来的数据 迁移 过去,由于作者的 gitlab 是通过 rpm 包安装的,所以gitlab 的系统用户为 git,用户组为 root,所以在拷贝数据后还需要修改新数据目录的用户归属,否者后面gitlab 无法对该目录写入新的数据。

mkdir -p /mnt/gitlab/git-data/
mv /var/opt/gitlab/git-data/repositories/* /mnt/gitlab/git-data/repositories/
chown -R git:root /mnt/gitlab/git-data/*

然后用户就可以对 /etc/gitlab/gitlab.rb 进行调整了。

/etc/gitlab/gitlab.rb 默认对 数据目录 的配置是注释的。

用户可以新增配置信息

git_data_dirs({
"default" => {
"path" => "/mnt/gitlab/git-data"
}
})

然后对 gitlab 重新刷新配置

gitlab-ctl reconfigure

重启 gitlab 服务

gitlab-ctl restart
  • 修改gitlab 的nginx服务端口号

首先还是需要先关闭gitlab的服务

gitlab-ctl stop

修改 /etc/gitlab/gitlab.rb 文件(作者是在root 用户下直接修改的)

找到以下内容(作者对应是859行),修改为 nginx['listen_port'] = 8080

##! **Override only if you use a reverse proxy**
##! Docs: https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port
# nginx['listen_port'] = nil

同时还需要在 /etc/gitlab/gitlab.rb 文件 找到以下内容(作者对应的是 587 行),将 unicorn['port'] 设置为 8082(因为8080 端口已经被占用了)

### Advanced settings
# unicorn['listen'] = '127.0.0.1'
# unicorn['port'] = 8080

修改后的内容变为

### Advanced settings
# unicorn['listen'] = '127.0.0.1'
unicorn['port'] = 8082

用户还需要在 /var/opt/gitlab/gitlab-rails/etc/unicorn.rb 文件上找到以下内容(作者对应是 第7行 ),将listen 的端口设置为 8082

# What ports/sockets to listen on, and what options for them.
listen "127.0.0.1:8080", :tcp_nopush => true

修改后的内容变为

# What ports/sockets to listen on, and what options for them.
listen "127.0.0.1:8082", :tcp_nopush => true

更新gitlab 的配置

gitlab-ctl reconfigure

用户在 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件中,找到以下内容(作者对应是38行),将原来默认的的listen *:80 会被刷新为修改后的8080 (nginx 的端口就变为 8080)

upstream gitlab-workhorse {
server unix:/var/opt/gitlab/gitlab-workhorse/socket;
} server {
listen *:8080;

重启 gitlab 服务

gitlab-ctl restart

这里用户一定要注意,如果直接修改 /var/opt/gitlab/nginx/conf/gitlab-http.conf 文件的 内容,则在执行 gitlab-ctl reconfigure 后,修改值会被覆盖。

参考资料:
http://www.cnblogs.com/straycats/p/7637373.html
http://www.cnblogs.com/wenwei-blog/p/5861450.html

http://blog.csdn.net/jackghq/article/details/54954486

http://blog.csdn.net/charlsehan/article/details/46801589

解决阿里云上无法发送邮件的博客:http://www.cnblogs.com/wenwei-blog/p/6286944.html

修改web 服务端口号的博客:http://blog.csdn.net/donglynn/article/details/74002540

http://blog.csdn.net/wizard_rp/article/details/73147129 (这种方法会在 刷新配置时修改内容被覆盖)

CentOs7安装gitlab(转!)的更多相关文章

  1. CentOS7安装GitLab、汉化及使用

    同步首发:http://www.yuanrengu.com/index.php/20171112.html 一.GitLab简介 GitLab是利用Ruby On Rails开发的一个开源版本管理系统 ...

  2. CentOS7安装GitLab、汉化、邮箱配置及使用

    同步首发:http://www.yuanrengu.com/index.php/20171112.html 一.GitLab简介 GitLab是利用Ruby On Rails开发的一个开源版本管理系统 ...

  3. Centos7 安装gitLab

    我这里使用的是centos 7 64bit,我试过centos 6也是可以的! 1. 安装依赖软件 yum -y install policycoreutils openssh-server open ...

  4. centos7 安装gitlab任意版本

    主要还是根据官网:https://www.gitlab.cc/installation/#centos-7 1.安装依赖: sudo yum install curl policycoreutils ...

  5. centos7安装gitlab并汉化

    一.基础环境准备 1.安装依赖包 [root@gitlab-server ~]#yum install curl policycoreutils openssh-server openssh-clie ...

  6. centos7安装gitlab与gitlab的汉化

    Gitlab概述 GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.  GitLab拥有与Github ...

  7. CentOS7安装GitLab、汉化、邮箱配置及使用(转载)

    同步首发: https://www.cnblogs.com/heyonggang/p/7778203.html http://www.yuanrengu.com/index.php/20171112. ...

  8. Centos7安装GitLab

    GitLab CE Download Archives gitlab安装调试小记 Gitlab Free Trial GitLab搭建手记 Gitlab社区版的使用 GUI PNG Gitlab升级到 ...

  9. CentOS7安装GitLab服务

    安装GitLab服务 1.安装必要依赖 yum install -y curl policycoreutils openssh-server openssh-clients postfix 2.下载安 ...

随机推荐

  1. 注解实现struts2零配置

    零配置指的是不经过配置文件struts.xml配置Action 首先:导入jar   struts2-convention-plugin-2.3.24.1.jar package com.action ...

  2. 清除 eclipse svn 账号密码

    进入目录 C:\Documents and Settings\administrator\Application Data\Subversion\auth 删除目录下所有文件,然后重新刷新svn地址就 ...

  3. Jmeter BeanShell 从数据库中获取数据并创建一个requesBody

    一.前言 在测试接口的时候常常会使用到数据库中的数据,当要使用大量的数据时,仅仅使用数据库查询是不够的.还需要使用自动化让操作更简便. 下面以一个简单的例子阐述一下如何使用beanShell让代码更简 ...

  4. apache中的RewriteCond、RewriteRule

    Rewirte主要的功能就是实现URL的跳转.可基于服务器级的(httpd.conf)和目录级的(.htaccess) 两种方式.如果要想用到rewrite模块,必须先安装或加载rewrite模块. ...

  5. Ascii vs. Binary Files

    Ascii vs. Binary Files Introduction Most people classify files in two categories: binary files and A ...

  6. vue 之 .$mount()

    $mount():手动挂载 当Vue实例没有el属性时,则该实例尚没有挂载到某个dom中: 假如需要延迟挂载,可以在之后手动调用vm.$mount()方法来挂载.例如: <div id=&quo ...

  7. C++基础之 成员变量初 始化赋值

    摘要: C++成员变量 初始化赋值 你都清楚吗?还有好多坑,好多细节也不知道... 今天在写一个类的时候,由于该类的一个成员变量是引用,所以初始化出现了问题,查了一下之后,才发现,原来引用的初始化和c ...

  8. Texas Instruments matrix-gui-2.0 hacking -- submenu.php

    <?php /* * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/ * * * Redistrib ...

  9. shell 脚本实战笔记(2)--环境变量PATH的恩怨情仇

    在linux环境下, 相信大家对环境变量PATH, 多多少少有所接触, 这边讲讲PATH的在linux的前世因缘. 先讲讲一个列子 假如我们在为一个新的应用配置其PATH路径中时,  不小心忽略了原先 ...

  10. 在 Ubuntu 18.0-10上安装 MySQL8

    直接使用apt install mysql-server安装,那么恭喜你踩坑. sudo apt install mysql-server默认会安装MySQL 5.7,将会出现一些莫名的问题,例如:安 ...