GitLab 是何物?

GitLab是 GitHub 的山寨版,GitLab几乎包含了GitHub的所有功能,还包含比较有特色的功能:Code Review,Wiki,Merge Requests,最主要的是它不要钱,不要钱……不要钱……钱……钱………………

不要钱的好东西肯定使用起来会比较麻烦!特别是对于Linux小白!所以GitLab的使用会理所当然的比较麻烦!

比如说安装     %>_<%

先描述一下安装环境

XX云主机:方便备份和恢复(通过SSH远程连接主机)

OS:Ubuntu13.04

GitLab的安装需要3步

1.安装大量软件

2.下载GitLab-Shell 源码和GitLab源码

3.配置GitLab-Shell ,GitLab,数据库,网站服务器

一.我们先从大量软件开始

GitLab软件本身需要多个软件的支持,他们是:

Ubuntu/Debian

ruby 1.9.3+

git 1.7.10+

redis 2.0+

MySQL or PostgreSQL

请点击查看最新的需求

#在开始之前先创建一个专门为GitLab使用的Ubuntu用户:git
sudo adduser --disabled-login --gecos 'GitLab' git
#在继续之前,请务必注意每一个命令的操作权限,linux权限管理非常强大,但是如果不注意,就会导致某个软件权限不够,拒绝访问等问题,从而导致安装失败!!! sudo apt-get update
sudo apt-get upgrade
#先升级所有软件
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
#在安装必须要的软件
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
#安装GitLab将要使用的数据库,我使用了mysql,也可以是其他数据库,其中数据库的root用户如果需要设置密码,请牢记
sudo apt-get -y install nginx
#安装GitLab的web服务器 #下面开始安装GitLab制定版本的Ruby
mkdir /tmp/ruby && cd /tmp/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz | tar xz
cd ruby-2.0.-p247
./configure
make
sudo make install
#Ruby安装完毕 sudo gem install bundler --no-ri --no-rdoc
#bundler是什么?

软件安装完之后,请务必依次查一查每个软件的版本是否符合官方文档的需求!

sudo ruby --version
sudo git --version

请备份吧!

二.下载GitLab等的源码

在写作的时候,因为GitLab官方还没有出Ubuntu13.04的一键部署方案,只有12.04版本第三方部署方案!所以没有去尝试是否能够正确安装!

#开始下载GitLab-Shell源码
cd /home/git
sudo -u git -H git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell
#下面的v1..4可以改成GitLab-Shell最新的版本,Shell的更新速度非常快,在此我向GitLab的无私贡献表示致敬!!!
sudo -u git -H git checkout v1.8.4 #开始下载GitLab源码
cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git gitlab
cd /home/git/gitlab
#--stable可以改成最新版本
sudo -u git -H git checkout --stable

到此需要下载的部分都已经完毕,请备份吧!

三、配置

配置部分和我们的口要一样,比较麻烦……分为如下四步:

1.配置数据库

2.配置gitlab-shell

3.配置Gitlab

4.网站服务器

1.配置数据库

sudo mysql -u root -p

#创建数据库登陆用户
#‘gitlab’ 可以改成你喜欢的名字 'YOUR_PASSWORD_HERE' 改成你的密码
CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';
#创建数据库
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
#将'gitlab'改成你创建的名字
GRANT SELECT, LOCK TABLES, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
exit;

请备份吧!

2.配置gitlab-shell

sudo cd /home/git/gitlab-shell
sudo -u git -H cp config.yml.example config.yml
#配置gitlab-shell 只需要配置 config.yml里面的gitlab_url: "http://localhost/"
sudo nano config.yml
#将其替换为FQDN全域名地址或者IP:
#gitlab_url: "http://www.baidu.com/"
#gitlab_url: "http://64.25.3.65/"
请记住这个域名或者地址,因为后面将要使用这个地址
sudo -u git -H ./bin/install

请备份吧!

3.配置Gitlab

#接下来配置是最重要的部分
cd /home/git/gitlab sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml
#修改gitlab的配置文件
sudo -u git -H nano config/gitlab.yml
#gitlab:
## Web server settings
#将host: localhost 修改为上一步中使用的域名,或者地址
#假如上一步使用的是IP这里也只能使用IP总之和上一步的地址一样,但是不能有http:// sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb
#配置gitlab使用的数据库配置文件,记录了数据库登录名,密码等信息
sudo -u git cp config/database.yml.mysql config/database.yml
sudo -u git -H nano config/database.yml
#production:
# adapter: mysql2
# encoding: utf8
# reconnect: false
# database: gitlabhq_production
# pool:
# 将 username: root 修改为 你为gitlab创建的mysql数据库登录名,我这里是gitlab
# password: "secure password" #修改密码
修改一下配置文件的权限,方便其他用户直接使用!这一步也很重要
sudo -u git -H chmod o-rwx config/database.yml #为gitlab做的配置
cd /home/git/gitlab
sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX log/
sudo chmod -R u+rwX tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX tmp/pids/
sudo chmod -R u+rwX tmp/sockets/
sudo -u git -H mkdir public/uploads
sudo chmod -R u+rwX public/uploads
sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab@localhost"
sudo -u git -H git config --global core.autocrlf input #准备安装前的最后一步
sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production
#现在开始安装gitlab #这一步期间,需要输入 yes
sudo -u git -H bundle install --deployment --without development test postgres aws #当安装完毕会出现下面的结果
#Administrator account created: #login.........admin@local.host
#password......5iveL!fe
#请保存起来,这就是在网页登陆界面将要使用的登录名和密码 #下面的脚本使每次计算机启动的时候就启动gitlab,和一些其他的系统配置
sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
sudo update-rc.d gitlab defaults
sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab #最后安装gitlab的所有组件
sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production
#至此Gitlab其实已经安装完毕了!为了确保安装过程生效,这里有一些命令
#查看git所有组件的版本信息
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
#检查是否安装正确,只要有红色就表示没有安装成功,需要重新修改
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
#如果全是绿色,那么恭喜你,安装成功了

#:-)  接下来你要做的就是买一瓶啤酒,花生瓜子,将你的朋友叫来,告诉他们以完成了多么了不起的一件事情,你是多么的聪明!

怎么样?朋友都夸奖你了还是遭吐槽了?朋友吐槽软件没法用?狗屎一个?你还反说你的朋友SB,不会使用命令行?别这样,说好要以德服人的嘛!

哦,不好意思,还有最后一步没有完成!

请备份吧!

4.网站服务器

使用ningx作为服务器,可以通过浏览器直接使用gitlab

cd /home/git/gitlab
sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab
#配置服务器的ip或者域名
sudo nano /etc/nginx/sites-available/gitlab
#server {
# listen *: default_server;
# 将 server_name YOUR_SERVER_FQDN ; 修改为配置gitlab-shell时使用的域名或者IP
#重启ngingx
sudo service nginx restart

GitLab成功安装完毕!

打开浏览器输入你的ip或者域名就会显示下面的界面:

谢谢各位看官!谢谢大家的掌声和欢呼声!

当然如果我们的人生都像太阳东升西落,海洋里潮起潮落,玫瑰花开花落一般固定,那是多么幸福的生活!可惜偏偏有的人一生下来就没有视力,有的人2岁夭折,有的人一生为了给地主交租而饥寒交迫!可这有什么办法呢,这就是我们的人生,这就是我们的问题!

我不能预测你的问题,但是我相信你在安装的过程中肯定会遇见各种乱七八糟的错误:

比如502 error(s)、404 page not find、permission denied、[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)、502 bad geteway……

那就需要你自己去解决了,毕竟那是你自己选择的职业,自己的人生,不是吗?

转载请注明住处:http://www.cnblogs.com/pavkoo/

ubuntu13.04云主机部署gitlab6.6的更多相关文章

  1. 记录一次云主机部署openstack的血泪史

    看见这个部署成功的留下了激动的泪水 经过长时间的BUG苦肝终于成功部署成功  部署的环境2vCPU 8GB 阿里云主机,部署成功以后内存占用确实蛮高的 记录这一次踩坑,给后来者避免踩坑时间,个人踩坑踩 ...

  2. Django+nginx+gunicore+supervisor+阿里云主机 部署博客项目

    1 准备阶段 1 新鲜的阿里云主机 2 购买一个喜欢的域名 3 创建python的虚拟环境 2 阿里云主机的选取 咱们就是为了实验,我买了最便宜的阿里云主机 3 阿里云主机创建一个超级用户 3.1 默 ...

  3. rocketMq指定broker ip地址,适合解决云主机部署问题

      在工作中遇到了一个这个问题,就是我们rocketmq是部署在云主机上的 但是我们的开发同事在自己的电脑连接rocketmq链接不上 报错显示Caused by: org.apache.rocket ...

  4. nodebb在阿里云主机部署过程

    1.在centos上安装nodejswget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gztar zxvf node-v0.8.9.tar.gzcd ...

  5. 如何通过云效Flow完成自动化部署—主机部署

    如何通过云效Flow完成自动化部署-主机部署,云效流水线Flow是持续交付的载体,通过构建自动化.集成自动化.验证自动化.部署自动化,完成从开发到上线过程的持续交付.通过持续向团队提供及时反馈,让交付 ...

  6. 将Hexo博客部署到云主机

    摘要: 在云主机上搭建一个git裸仓库,然后使用nginx作为网页服务器,就可以轻松将Hexo博客通过git部署到云主机上. 这是一个忧伤的故事 我的博客KiwenLau之前部署在Coding Pag ...

  7. 优化hexo访问速度-将hexo部署到云主机VPS

    写在开始 一开始将自己hexo部署到github,结果发现打开页面速度有点慢,然后又将其同时部署到coding,实现双线路访问,国内解析记录到coding,国外解析到github,这样确实网站的速度能 ...

  8. 使用阿里云主机离线部署CDH步骤详解

    一.Linux文件系统准备 1. 拍摄快照 登录阿里云控制台,拍摄快照,注意有几个关键点尽量拍摄快照,系统初始状态.CM环境准备完成.CM安装完成.CDH安装完成. 2. 挂载设备 三个主机都执行. ...

  9. 在云主机上基于nginx部署基于Flask的网站服务器 (自己部署 )

    1.申请云主机 a.阿里云 (注意:阿里云的服务器需要手动添加安全规则使能80端口) b.腾讯云 2.把网站服务器程序拷贝到云主机 3.远程登录云主机 4.解压网站服务器程序 yum install ...

随机推荐

  1. 使用eclipse maven遇到的错误(转)

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:2.5:resources (defaul ...

  2. [HTML/CSS]display:none和visibility:hidden的区别

    写在前面 在群里有朋友问这样一个问题,display:none的标签,影响了布局.这就引出了本篇这样的问题,印象中display:none的块元素是不占位置的. 一个例子 <!DOCTYPE h ...

  3. YARN的 AM与RM通信,申请资源分配过程

    AppMaster向RM请求资源 MRAppMaster :serviceinit // service to allocate containers from RM (if non-uber) or ...

  4. 偏序集的Dilworth定理

    定理1 令(X,≤)是一个有限偏序集,并令r是其最大链的大小.则X可以被划分成r个但不能再少的反链.其对偶定理称为Dilworth定理:定理2 令(X,≤)是一个有限偏序集,并令m是反链的最大的大小. ...

  5. response ,request编码

    request.setCharacterEncoding()是你设置获得数据的编码方式.response.setCharacterEncoding()是你响应时设置的编码.response.setCo ...

  6. Unity3D开发Windows Store应用程序 注意事项

    原地址:http://blog.csdn.net/jbjwpzyl3611421/article/details/12704491 针对最近在移植window store项目中遇到的问题,我整理了官方 ...

  7. LA 3350

    The NASA Space Center, Houston, is less than 200 miles from San Antonio, Texas (the site of the ACM ...

  8. poj 2311

    Cutting Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2844   Accepted: 1036 Desc ...

  9. DF学Mysql(一)——数据库基本操作

    1.创建数据库 create Database <数据库名>; 注意:1)数据库名由字母.下划线.@.#和$组成 2)首字母不能是数字和$符号 3)不允许有空格和特殊字符 2.查看数据库 ...

  10. [C++]不能被继承的类

    前面讲到,派生类的构造函数和析构函数会自动调用基类的构造函数和析构函数,那么要让一个类不能被继承,那么就将它的构造函数和析构函数私有函数(派生类可以访问保护函数).那么怎样才能得到该类的实例呢? 这倒 ...