您的位置:首页 > 数据库 > Redis

使用gitlab+git+mysql+redis+nginx搭建自己的代码管理平台

2016-08-02 00:00 976 查看
摘要: 使用gitlab+git+mysql+redis+nginx搭建自己的代码管理平台

使用gitlab搭建自己的代码管理平台

这里就不去介绍gitlab了,直接进入正题。

安装

有很多需要安装的内容可能已经安装过或者系统已经自带了,可以直接跳过前面几步,从创建用户开始,到后面缺少了哪一步再去安装。

安装git

sudo apt-get install git

git版本需要2.7+以上,使用

git --version

查看版本号

安装邮件服务器postfix

需要安装postfix来发送邮件

sudo apt-get install -y postfix

安装ruby

安装ruby

sudo apt-get install ruby

安装Bundler Gem:

sudo gem install bundler --no-ri --no-rdoc

安装GO

curl -O --progress https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz echo '43afe0c5017e502630b1aea4d44b8a7f059bf60d7f29dfd58db454d4e4e0ae53  go1.5.3.linux-amd64.tar.gz' | shasum -a256 -c - && \
sudo tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz
sudo ln -sf /usr/local/go/bin/{go,godoc,gofmt} /usr/local/bin/
rm go1.5.3.linux-amd64.tar.gz

创建用户

创建一个用户git

sudo adduser --disabled-login --gecos 'GitLab' git

数据库mysql

如果还没有安装数据库 安装mysql

安装:

sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

查看版本:

mysql --version

创建数据库用户。如果要用已有的用户或者root用户,下面的步骤就不需要了。 记得把自己的密码换上: CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';

# Login to MySQL
mysql -u root -p

# Type the MySQL root password

# Create a user for GitLab
# do not type the 'mysql>', this is part of the prompt
# change $password in the command below to a real password you pick
mysql> CREATE USER 'git'@'localhost' IDENTIFIED BY '$password';

# Ensure you can use the InnoDB engine which is necessary to support long indexes
# If this fails, check your MySQL config files (e.g. `/etc/mysql/*.cnf`, `/etc/mysql/conf.d/*`) for the setting "innodb = off"
mysql> SET storage_engine=INNODB;

# Create the GitLab production database
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

# Grant the GitLab user necessary permissions on the database
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `gitlabhq_production`.* TO 'git'@'localhost';

# Quit the database session
mysql> \q

# Try connecting to the new database with the new user
sudo -u git -H mysql -u git -p -D gitlabhq_production

# Type the password you replaced $password with earlier

# You should now see a 'mysql>' prompt

# Quit the database session
mysql> \q

# You are done installing the database and can go back to the rest of the installation.

安装Redis

redis的版本必须大于2.8

sudo apt-get install redis-server

安装gitlab

我们之前创建了一个用户git,这个git是不可以登录的。

cd /home/git

clone资源

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 8-5-stable gitlab

我这里直接使用的8.5,你也可以在clone完了之后在切换分支

sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git gitlab
cd gitlab
git checkout 8-5-stable

如果想用其它的版本,比如8.10,就

git checkout 8-10-stable

配置gitlab

# Go to GitLab installation folder
cd /home/git/gitlab

# Copy the example GitLab config
sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

# Update GitLab config file, follow the directions at top of file
sudo -u git -H vi config/gitlab.yml

# Copy the example secrets file
sudo -u git -H cp config/secrets.yml.example config/secrets.yml
sudo -u git -H chmod 0600 config/secrets.yml

# Make sure GitLab can write to the log/ and tmp/ directories
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX,go-w log/
sudo chmod -R u+rwX tmp/

# Make sure GitLab can write to the tmp/pids/ and tmp/sockets/ directories
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/

# Create the public/uploads/ directory
sudo -u git -H mkdir public/uploads/

# Make sure only the GitLab user has access to the public/uploads/ directory
# now that files in public/uploads are served by gitlab-workhorse
sudo chmod 0700 public/uploads

# Change the permissions of the directory where CI build traces are stored
sudo chmod -R u+rwX builds/

# Change the permissions of the directory where CI artifacts are stored
sudo chmod -R u+rwX shared/artifacts/

# Copy the example Unicorn config
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb

# Find number of cores
nproc

# Enable cluster mode if you expect to have a high load instance
# Set the number of workers to at least the number of cores
# Ex. change amount of workers to 3 for 2GB RAM server
sudo -u git -H vi config/unicorn.rb

# Copy the example Rack attack config
sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

# Configure Git global settings for git user, used when editing via web editor
sudo -u git -H git config --global core.autocrlf input

# Configure Redis connection settings
sudo -u git -H cp config/resque.yml.example config/resque.yml

# Change the Redis socket path if you are not using the default Debian / Ubuntu configuration
sudo -u git -H vi config/resque.yml

配置数据库

# MySQL only:
sudo -u git cp config/database.yml.mysql config/database.yml

# MySQL and remote PostgreSQL only:
# Update username/password in config/database.yml.
# You only need to adapt the production settings (first part).
# If you followed the database guide then please do as follows:
# Change 'secure password' with the value you have given to $password
# You can keep the double quotes around the password
sudo -u git -H vi config/database.yml

# PostgreSQL and MySQL:
# Make config/database.yml readable to git only
sudo -u git -H chmod o-rwx config/database.yml

修改Gemfile,安装依赖

修改第一行为:

source "https://ruby.taobao.org"

找到

gem "mysql2", '~> 0.3.16', group: :mysql

gem "pg", '~> 0.18.2', group: :postgres

修改为:

gem "mysql2"#, '~> 0.3.16', group: :mysql
#gem "pg", '~> 0.18.2', group: :postgres


执行

sudo -u git -H bundle install --no-deployment
sudo -u git -H bundle install --deployment --without development test mysql aws kerberos

安装GitLab Shell

你可以用下面的语句安装同时配置gitlab-shell

sudo -u git -H bundle exec rake gitlab:shell:install REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production
sudo -u git -H vi /home/git/gitlab-shell/config.yml


或者自己下载gitlab-shell然后配置,具体看这里:https://github.com/gitlabhq/gitlab-shell

安装gitlab-workhorse

8.2之前这个东西叫gitlab-git-http-server

cd /home/gitsudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-workhorse.git cd gitlab-workhorse
sudo -u git -H git checkout 0.6.4
sudo -u git -H make

初始化数据库

初始化完成后会有初始用户名和密码提示,记住它。

cd /home/git/gitlab
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

验证安装

验证环境是否ok安装

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


启动gitlab

sudo /etc/init.d/gitlab restart


验证gitlab是否启动成功

sudo -u git -H ./bin/check

如果有错误的地方,会给出具体的错误信息和解决方法,根据具体情况解决就可以。

nginx

安装:

我这里就直接安装了,其它系统大家按情况安装。

sudo apt-get install -y nginx


配置

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
sudo vi /etc/nginx/sites-available/gitlab


测试配置

sudo nginx -t


重启nginx

sudo service nginx restart


最后在测试下安装是否成功了

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

到这里就搭建好了,更多内容请大家参考:https://github.com/gitlabhq/gitlabhq/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  GitLab
相关文章推荐