GitLab搭建(续)
目录
然而,在我真正开始搭建Gitlab的时候,我才发现了一个问题,那就是官方提供的Omnibus package installation默认使用的数据库是PostgreSQL,而redis默认采用了soket通信。而我并不想这么做……
所以,比较适合自己的安装方式还是从源码编译安装吧!
更新依赖包
$sudo apt-get update -y $sudo apt-get upgrade -y $sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate python-docutils pkg-config cmake nodejs $sudo apt-get install -y git-core # 确保git版本 > 1.7.10 $git --version # 安装邮件服务器,gitlab需要发送邮件 $sudo apt-get install -y postfix
安装Ruby
$mkdir /tmp/ruby && cd /tmp/ruby $curl -L --progress http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.6.tar.gz | tar xz $cd ruby-2.1.6 $./configure --disable-install-rdoc $make $sudo make install
接着安装Bundler Gem:
$sudo gem install bundler --no-ri --no-rdoc
添加用户Git
$sudo adduser --disabled-login --gecos 'GitLab' git
安装数据库
在这里,我并没有采用官方推荐的PostgreSQL,因为自己熟悉的还是MySQL,所以就安装了MySQL。
# 确保MySQL版本 > 5.5.14 $mysql --version $mysql -uroot -p # 添加MySQL用户 mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY 'xxxxxxxx'; mysql> SET storage_engine=INNODB; mysql> CREATE DATABASE IF NOT EXISTSgitlabhq_production
DEFAULT CHARACTER SETutf8
COLLATEutf8_unicode_ci
; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES ONgitlabhq_production
.* TO 'git'@'localhost'; mysql> \q # 测试使用git用户能否正常连接到数据库 $sudo -u git -H mysql -u git -p -D gitlabhq_production
安装Redis
# Ubuntu下安装redis后默认以daemon运行,同时默认为TCP连接 $sudo apt-get install redis-server $sudo redis-server
安装GitLab
从官方源克隆项目源码,这里有点坑,服务器上被墙了,所以只要在本地git clone一份后再传到服务器上去
$cd /home/git $sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-12-stable gitlab
然后就是配置:
$cd /home/git/gitlab $sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml # 根据gitlab.yml里面的提示修改 $sudo -u git -H vim config/gitlab.yml # 修改目录权限,保证gitlab可以写入以下目录 $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 -u git -H mkdir /home/git/gitlab-satellites $sudo chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites $sudo chmod -R u+rwX tmp/pids/ $sudo chmod -R u+rwX tmp/sockets/ $sudo chmod -R u+rwX public/uploads # 查看自己服务器的内核数,修改Unicorn workers数量 $nproc $sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb $sudo -u git -H vim config/unicorn.rb $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 # 配置Redis,这里默认为unix,需要修改为 production: redis://localhost:6379 $sudo -u git -H cp config/resque.yml.example config/resque.yml $sudo -u git -H vim config/resque.yml # 配置数据库 $sudo -u git cp config/database.yml.mysql config/database.yml $sudo -u git -H vim config/database.yml $sudo -u git -H chmod o-rwx config/database.yml
继续安装
# 安装Gems # 安装过程中,如果遇到 Ruby 源被墙了,可以将ruby源修改为 http://ruby.taobao.org $sudo -u git -H bundle install --deployment --without development test postgres aws kerberos # 安装GitLab Shell $sudo -u git -H bundle exec rake gitlab:shell:install[v2.6.3] REDIS_URL=redis://localhost:6379 RAILS_ENV=production $sudo -u git -H vim /home/git/gitlab-shell/config.yml #初始化数据库 $sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production # 配置系统脚本 $sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab # 配置开机自动启动 $sudo update-rc.d gitlab defaults 21 # 配置Logrotate $sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab # 检测配置状态 $sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production # 编译 $sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production # 启动服务 $sudo /etc/init.d/gitlab restart
Nginx配置
# 没有安装nginx的话就安装一个 $sudo apt-get install -y nginx # 配置 $sudo cp lib/support/nginx/gitlab /etc/nginx/sites-enabled/gitlab $sudo vim /etc/nginx/site-enabled/gitlab # 然后测试一下配置有没有问题,没有的话就直接重新载入配置文件 $sudo nginx -t $sudo nginx -s reload
最后
再一次检查一下有没有什么问题
$sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
没问题,那就大功告成了!默认装完的账号密码是:root,5iveL!fe
然后可以通过下面的命令来启动和停止GitLab:
$sudo service gitlab start $sudo service gitlab stop
参考:
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/installation.md
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/install/database_mysql.md
码字很辛苦,转载请注明来自ChenJiehua的《GitLab搭建(续)》
评论