Gitlab代码管理平台部署(CentOS6.7—gitlab7.2.12)

部署环境准备

Gitlab需要以下系统与软件环境:

Ruby (MRI) 2.1

Git 1.7.10+

Redis 2.4+

MySQL

由于系统的git,ruby环境一般版本比较低,因此需考虑升级。

1.升级git。

删除原系统的git:

#rpm -eperl-Git-1.7.1-3.el6_4.1.noarch git-1.7.1-3.el6_4.1.x86_64

源码包编译安装git:

#tar -zxvf git-2.6.3.tar.gz
#cd git-2.6.3
#autoconf
#./configure
#make && make install

2.升级ruby。

删除原系统的ruby:

#rpm -e ruby-1.8.7.374-4.el6_6.x86_64ruby-libs-1.8.7.374-4.el6_6.x86_64

源码包编译安装ruby:

#tar -zxvf ruby-2.1.7.tar.gz
#cd ruby-2.1.7
#./configure
#make && make install

3.安装,启动redis:

#tar zxvf redis-3.0.5.tar.gz
#cd redis-3.0.5
#make install
#mkdir  -p /opt/apps/redis/bin
#mkdir  -p /opt/apps/redis/var
#mkdir  -p/opt/apps/redis/data
#mkdir  -p /opt/conf/redis
#cp  redis.conf  /opt/conf/redis
#cp /opt/src/redis-3.0.5/src/redis-* /opt/apps/redis/bin

修改配置文件,如下:

#grep -v ^# /opt/conf/redis/redis.conf | grep -v ^$
daemonize yes
pidfile /opt/apps/redis/var/redis.pid
port 6379
tcp-backlog 511
bind 192.168.1.236
unixsocket /opt/apps/redis/var/redis.sock
unixsocketperm 777
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/opt/logs/redis/redis.log"
databases 16
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /opt/apps/redis/var
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

启动redis:

/opt/apps/redis/bin/redis-server /opt/conf/redis/redis.conf

4.安装,配置mysql(不详解)

登录mysql,创建gitlab用户与库:

sql>create user ‘gitlab‘@‘localhost‘ identified by ‘123456‘;
sql>create database gitlabhq_production;
sql>grant all privileges on gitlabhq_production.* to‘gitlab‘@‘%‘;
sql>flush privileges;

5.安装bundler:

修改gem源:(速度更快)

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem install bundler --no-ri --no-rdoc

安装与配置gitlab

安装相关依赖包:

#yum -y install readline readline-develncurses-devel gdbm-devel glibc-devel tcl-devel openssl-devel curl-develexpat-devel db4-devel byacc sqlite-devel libyaml libyaml-devel libffilibffi-devel libxml2 libxml2-devel libxslt libxslt-devel libicu libicu-develsystem-config-firewall-tui redis sudo wget crontabs logwatch logrotateperl-Time-HiRes git cmake libcom_err-devel libcom_err-devel

创建git用户:

#adduser --system --shell /bin/bash--comment ‘Gitlab‘ --create-home --home-dir /home/git/ git
#chmod 775 /home/git

上传gitlab项目源码包至/home/git,解压:

#su - git
$tar -zxvf gitlabhq-7.12.2.tar.gz
$mv  gitlabhq-7.12.2 gitlab

安装gitlab所需的组件:

$cd gitlab
$bundle install --deployment --without development test postgres awsKerberos

创建gitlab配置文件,并修改如下配置:

$cp config/gitlab.yml.example config/gitlab.yml
$vi config/gitlabyml
gitlab:
host: 192.168.1.236
port: 443
https: true
backup:
    path: "/opt/backups/gitlab"

数据库连接配置:

$cp config/database.yml.mysql config/database.yml
$vi config/database.yml
production:
  adapter: mysql2
  encoding: utf8
  collation: utf8_general_ci
  reconnect: false
  database:gitlabhq_production
  pool: 10
  username: gitlab
  password: "123456"
  host: localhost
  socket: /tmp/mysql.sock

redis连接配置:

$cp config/resque.yml.example config/resque.yml
$vi config/resque.yml
production: unix:/opt/apps/redis/var/redis.sock

其他文件:

$cp config/unicorn.rb.example config/unicorn.rb
$cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
$cp config/initializers/smtp_settings.rb.sample config/initializers/smtp_settings.rb

配置相关文件权限:

$chmod -R u+rwX,go-w log/
$chmod -R u+rwX tmp/
$chmod -R u+rwX tmp/pids/
$chmod -R u+rwX tmp/sockets/
$mkdir public/uploads
$chmod -R u+rwX public/uploads
$chmod -R u+rwX builds/
$chmod -R u+rwX shared/artifacts/

安装gitlab相关组件

安装Gitlab-shell:

$bundle exec rake gitlab:shell:installREDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production
$cd /home/git/gitlab-shell
$vi config.yml
---
user: git
gitlab_url: https://192.168.1.236/
http_settings:
  self_signed_cert:true
repos_path:"/home/git/repositories/"
auth_file:"/home/git/.ssh/authorized_keys"
redis:
  bin: "/opt/apps/redis//bin/redis-cli"
  namespace: resque:gitlab
  socket: "/opt/apps/redis/var/redis.sock"
log_level:INFO
audit_usernames:false

创建gitlab-satellites:

$mkdir -p /home/git/gitlab-satellites

初始化gitlab

初始化gitlab,创建mysql库表与仓库目录:

$bundle exec rake gitlab:setup RAILS_ENV=production

若运行没有报错,则会生成初始root用户如下:

login.........root

password......5iveL!fe

配置系统服务

配置gitlab系统服务:(root用户下)

#cd /home/git/gitlab   
#cp lib/support/init.d/gitlab /etc/init.d/   
#chmod +x /etc/init.d/gitlab
#chkconfig --add gitlab

配置lograte:

cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

安装nginx web服务

安装nginx:

#yum -y install yum -y install pcre*
#tar -zxvfnginx-1.8.0.tar.gz
#cd nginx-1.8.0
#./configure--prefix=/opt/apps/nginx --conf-path=/opt/conf/nginx/nginx.conf--error-log-path=/opt/logs/nginx/error.log--http-log-path=/opt/logs/nginx/access.log --with-http_stub_status_module--with-http_gzip_static_module --with-http_flv_module --with-http_ssl_module--with-http_realip_module--http-client-body-temp-path=/opt/apps/nginx/client_body_temp--http-fastcgi-temp-path=/opt/apps/nginx/fastcgi_temp--http-proxy-temp-path=/opt/apps/nginx/proxy_temp--http-uwsgi-temp-path=/opt/apps/nginx/uwsgi_temp--http-scgi-temp-path=/opt/apps/nginx/scgi_temp
#make&& make install

配置gitlab web服务(https模式),修改如下配置:

#vi /opt/conf/nginx/nginx.conf
includevhost/*.conf;
#cp /home/git/gitlab/lib/support/nginx/gitlab-ssl/opt/conf/nginx/vhost/gitlab.conf
#vi /opt/conf/nginx/vhost/gitlab.conf(修改相关端口的servername)
server_name 192.168.1.236;

开启服务与测试

开启nginx和gitlab服务:

#/opt/apps/nginx/sbin/nginx -c /opt/conf/nginx/nginx.conf
#servicegitlab start

使用命令检测gitlab的项目:

#su - git
$cd gitlab
$bundle exec rake gitlab:checkRAILS_ENV=production

检测通过后就可以用浏览器访问gitlab了:

Gitlab的备份与恢复

备份:bundle exec rakegitlab:backup:create RAILS_ENV=production

恢复:bundle exec rakegitlab:backup:restore RAILS_ENV=production

以上是gitlab自带的备份工具命令,可备份mysql库表,gitlab仓库,ssh验证文件等一系列gitlab所需的文件。

这里提供备份脚本给大家参考:

#!/bin/bash
# Author: chenminghui
# Email: [email protected]
# Date: 2015-12-09
###set ENV###
GITLAB_HOME=/home/git/gitlab
BAK_DIR=/opt/backups/gitlab
RAILS_ENV=production
 
backup_gitlab ()
{
su - git -c "cd${GITLAB_HOME} && bundle exec rake gitlab:backup:createRAILS_ENV=${RAILS_ENV}"
sleep 3
RETVAL=$?
if [ $RETVAL == 0 ];then
        echo "The GitLab backupedsuccess.."
else
        echo "Backuk failure!!"
fi
}
 
backup_gitlab
 
#Delete backup files beforesysdate-30 days.
find ${BAK_DIR} -type f-mtime +30 -exec rm -rf {} \;
 
##restore command if youneed..
##bundle exec rakegitlab:backup:restore RAILS_ENV=production BACKUP=timestamp_of_backup
时间: 2024-10-12 14:39:43

Gitlab代码管理平台部署(CentOS6.7—gitlab7.2.12)的相关文章

Docker搭建Gitlab代码管理平台

一.Gitlab的安装 宿主机环境: CentOS 7 docker docker-compose 1.查找镜像 docker search gitlab 2.拉取镜像 docker pull gitlab/gitlab-ce 3.构建容器 # 切换目录 mkdir /usr/local/docker cd /usr/local/docker touch docker-compose.yml docker-compose.yml内容如下: version: "3.7" services

[原创]kvm虚拟化管理平台部署-完整记录

公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求. 当KVM宿主机越来越多,需要对宿主机的状态进行调控.这里我采用WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人能更方便的查看kvm 宿主机的情况和操作 WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个KVM管理平台,提供对宿主机和虚机的统一管理,它有别于kvm自带

代码管理平台

你要了解的常识 版本控制,记录若干文件内容变化,以便将来查阅特定版本修订情况版本管理工具发展简史,cvs? svn ? git 参考http://luckypoem14.github.io/test/2012/04/24/scm-history/svn全称subversion,是一个开源版本控制系统,始于2000年git是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的关于git和sv

技术团队代码管理和部署

主流公司使用svn和git作为代码版本管理,当然也不排除直接copy或者ftp.公司经历了的svn到git的变迁,也深刻体会到不同的版本管理服务,使得技术团队的协作方式变得更为流畅. 简单介绍下背景,有一个项目V5,从版本V1一直演变到现在V5,可见历史之久,想从svn切换到git,其中的代码管理和上线部署迁移,都会是经历很长一段时间的不稳定,尤其是一些开发同学对新的版本管理和部署理解不透彻,很容易引发事故. 在svn的主干开发流程 开发同学更新主干代码,提交代码 部署测试环境 检查每一个要上线

Rancher集群化docker管理平台部署、特性及破坏性测试。

rancher是一个docker集群化管理平台,相对于mesos和k8s架构,rancher的部署管理非常简单方便.并且功能丰富.如下为本人绘制的逻辑架构图. 1:部署Rancher管理平台 规划: server:10.64.5.184 agent1:10.64.5.185 agent2:10.64.5.186 agent3:10.64.5.187 agent4:10.64.5.188 部署方式: docker容器启动 server端部署   依赖镜像:rancher/server:latest

kettle系列-kettle管理平台部署说明

本介绍我的开源项目[kettle-manager]kettle管理平台如何获取并部署使用,该项目介绍请参看另一篇博文:http://www.cnblogs.com/majinju/p/5739820.html . 下面主要介绍项目部署流程,使用中有问题可以发邮件反馈. 准备工作: 本系统暂时只支持oracle数据库,后续稍作改进就能支持更多数据库,所有你需要有一个oracle数据库. 本系统现在默认的kettle版本是5.4,部署包中的jar都是kettle5.4的jar,理论上更换对应版本的j

Gitlab代码管理仓库安装部署

GitLab是利用 Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目.它拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释.可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库.它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找. Gitlab CE社区版完全开源免费,用来搭建自己专属的代码仓库,提供一个类似Github风格的web界面,还是很犀利的. 1.部署环

持续集成与自动化部署 - jenkins & sonar代码质量管理平台 部署和基础使用(五)

1 jenkins 安装参考链接 1.1 安装jenkins [[email protected] ~]# yum install -y java-1.8.0 [[email protected] ~]# cd /etc/yum.repos.d/ [[email protected] yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo [[email protected] yum.repos.d]# rpm --import

SonarQub代码分析平台部署

SonarQube构架 SonarQube(简称Sonar)是管理代码质量的开放平台,它可以快速地对代码质量进行分析,并给出合理的解决方案,提高管理效率,保证代码质量. SonarQube框架包含以下四个部分: Project SonarQube Scanner SonarQube Server SonarQube Database Project 是需要被分析的源码,如我们的app工程源码,SonarQube支持多种语言和多种工程结构,Andriod是属于一种多模块的Java工程. Sonar