gitlab mysql 搭建_gitlab服务器搭建教程

gitlab服务器搭建教程

----2016年终总结 三

大量参考以上两篇文档,整理并实际操作的总结

目录:

1.原料

2.基础环境

3.数据库安装

4.Gitlab相关安装

5.恢复及备份

1 原料

CentOS 6 kvm虚拟机一台

root用户权限

2 基础环境

以root用户登陆

2.1 更新epel源

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://mirrors.tuna.tsinghua.edu.cn/epel/RPM-GPG-KEY-EPEL-6

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6

rpm -Uvh http://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm

2.2 更新epel源

yum groupinstall "Development tools"

yum install libicu-devel cmake nodejs

2.3 git

要求版本:git >=2.7.4

yum install git

2.4 ruby环境

要求版本:ruby >=2.1

yum remove ruby

mkdir /tmp/ruby && cd /tmp/ruby

curl -O --progress http://mirrors.ustc.edu.cn/ruby/2.1/ruby-2.1.6.tar.gz

tar xzf ruby-2.1.8.tar.gz cd ruby-2.1.8

./configure

make && make install

gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

gem install bundler --no-ri

sudo -u git -H bundle config mirror.https://rubygems.org https://gems.ruby-china.org/

2.5 go

要求版本:未知

mkdir /tmp/go && cd /tmp/go

curl -O --progress http://www.golangtc.com/static/go/1.6/go1.6.linux-amd64.tar.gz

tar -C /usr/local -xzf go1.6.linux-amd64.tar.gz

sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/

go version

2.6 用户

adduser -c 'Gitlab' -s /bin/bash git

vim /etc/sudoers #添加git用户添加sudo权限,添加免密sudo

groupadd redis && useradd -g redis redis -s /sbin/nologin#添加redis用户

sudo usermod -aG redis git#git用户添加到redis组

3 数据库安装

3.1 MySQL

这里使用MySQL数据库。

要求版本:MySQL >= 5.5.14

3.1.1 安装

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

yum install mysql mysql-server

service mysqld start

3.1.2 初始化

连接数据库,执行:

CREATE USER 'git'@'localhost' IDENTIFIED BY '$password'; #新建密码

CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES, REFERENCES ON `gitlabhq_production`.* TO 'git'@'localhost';

quit;

echo 'max_allowed_packet=500M' >> /etc/my.cnf

service mysqld restart

3.2 Redis

要求版本:Redis >=2.8

3.2.1 安装

mkdir /tmp/redis && cd /tmp/redis

curl -O --progress http://download.redis.io/releases/redis-3.2.5.tar.gz

tar xzf redis-3.2.5.tar.gz

cd redis-3.2.5

make

cd src

make install

mkdir -p /etc/redis

cp redis.conf /etc/redis

3.1.2 初始化

cp /etc/redis/redis.conf /etc/redis/redis.conf.orig

sed 's/^port .*/port 0/' /etc/redis/redis.conf.orig | sudo tee /etc/redis/redis.conf

echo 'unixsocket /var/run/redis/redis.sock' | sudo tee -a /etc/redis/redis.conf

sed -i 's/daemonize no/daemonize yes/g' /etc/redis/redis.conf

mkdir /var/run/redis

sudo chown redis:redis /var/run/redis

sudo chmod 755 /var/run/redis

if [ -d /etc/tmpfiles.d ]; then

echo 'd /var/run/redis 0755 redis redis 10d -' | sudo tee -a /etc/tmpfiles.d/redis.conf

fi

curl -L http://packages.gitlab.cc/install/init-script/redis/cenots6/redis-server -o /etc/init.d/redis-server

chmod +x /etc/init.d/redis-server

service redis-server start

chkconfig redis-server on

4 Gitlab相关安装

4.1 Gitlab-CE

要求版本-无

选择版本-8.9.6

su - git

cd /home/git/

sudo -u git -H git clone https://git.oschina.net/qiai365/gitlab-ce.git -b 8-9-stable gitlab

cd /home/git/gitlab/

git checkout v8.9.6

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

sudo -u git -H vim config/gitlab.yml #修改host配置项为本机IP

sudo -u git -H vim config/secrets.yml

sudo -u git -H chmod 0600 config/secrets.yml

sudo chown -R git log/

sudo chown -R git tmp/

sudo chmod -R u+rwX,go-w log/

sudo chmod -R u+rwX tmp/

sudo chmod -R u+rwX tmp/pids/

sudo chmod -R u+rwX tmp/sockets/

sudo -u git -H mkdir public/uploads/

sudo chmod 0700 public/uploads

sudo chmod -R u+rwX builds/

sudo chmod -R u+rwX shared/artifacts/

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb

sudo -u git -H vim config/unicorn.rb #修改worker数量为cpu核心数

sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

sudo -u git -H git config --global core.autocrlf input

sudo -u git -H git config --global gc.auto 0

sudo -u git -H cp config/resque.yml.example config/resque.yml #如果redis的sock在其它位置,则修改

sudo -u git cp config/database.yml.mysql config/database.yml

sudo -u git -H vim config/database.yml #修改production环境的socket为mysql的sock文件,通常在/var/lib/mysql/mysql.sock。确认MySQL的用户、密码、库名等配置

sudo -u git -H chmod o-rwx config/database.yml

4.2 Gems

sudo -u git -H bundle install --deployment --without development test postgres aws kerberos -jn #n为cpu数目 提升安装速度

#如果前面严格按照步骤执行,通常是不会遇到问题的。如果有异常自行排查~~

4.3 Gitlab-shell

sudo -u git -H sed -i 's/https:\/\/gitlab.com\/gitlab-org\/gitlab-shell.git/https:\/\/git.oschina.net\/qiai365\/gitlab-shell.git/g' /home/git/gitlab/lib/tasks/gitlab/shell.rake

sudo -u git -H bundle exec rake gitlab:shell:install REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production#如果安装成功,会有一系列ok提示

sudo -u git -H vim /home/git/gitlab-shell/config.yml #确认一下配置

4.4 Gitlab-workhorse

要求版本-无

选择版本-0.7.5

cd /home/git

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git

cd gitlab-workhorse

sudo -u git -H git checkout v0.7.5

sudo -u git -H make

4.5 Gitlab初始化数据库

cd /home/git/gitlab

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production #中途需要输入yes

4.6 安装Gitlab执行脚本

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab

sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab

chkconfig gitlab on #设置gitlab开机启动 推荐

4.7 安装logrotate

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

4.8 检查环境配置

sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

4.9 生成Gitlab前端资源

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

4.10 安装、配置Nginx

sudo yum install nginx

sudo vim /etc/nginx/nginx.conf #配置80端口到8080端口到proxy_pass

sudo service nginx restart

4.11 启动gitlab

sudo service gitlab start

4.12 最后确认

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

#根据上述命令产生的检查结果和推荐命令,执行并再次检查

5 恢复及备份

5.1 在备份机上恢复备份

su - git

cd /home/git/gitlab

sudo -u git -H vim config/gitlab.yml #确认backup path配置,确保备份的包在该目录下存在、或移动至该位置。备份的包为$时间戳_gitlab_backup.tar

sudo -u git -H vim config/secrets.yml

sudo vim /etc/my.cnf#确保该配置文件添加了 max_allowed_packet=500M 配置

sudo -u git -H bundle exec rake gitlab:backup:restore BACKUP=$时间戳 RAILS_ENV=production#执行恢复备份 中途需要输入yes确认


版权声明:本文为weixin_39535217原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。