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. JS中showModalDialog 详细使用(转)

    基本介绍: showModalDialog()         (IE 4+ 支持) showModelessDialog()      (IE 5+ 支持) window.showModalDial ...

  2. Sqli-labs less 26

    Less-26 TIPS:本关可能有的朋友在windows下无法使用一些特殊的字符代替空格,此处是因为apache的解析的问题,这里请更换到linux平台下. 本关结合25关,将空格,or,and,/ ...

  3. 报名|「OneAPM x DaoCloud」技术公开课:Docker性能监控!

    如今,越来越多的公司开始 Docker 了,「三分之二的公司在尝试了 Docker 后最终使用了它」,也就是说 Docker 的转化率达到了 67%,同时转化时长也控制在 60 天内. 既然 Dock ...

  4. ECMAScript 5.1中对属性的操作

    此操作只针对新版本浏览器. Object.defineProperty(obj,'name',{configurable:true/false,enumberable:true/false,value ...

  5. ZOJ 1115 Digital Roots(简单,字符串与数)

    题目 //好一道水水题,可是我居然也错了那么多次,后来百度来发现是因为数据数位可能很长很长,要用字符串数组... //简单 //有坑啊——数据可能很大很大,要用字符串表示! #include<s ...

  6. 安装软件(名称不记得了)后,系统开机提示 visual studio just-in-time debugger窗口(WINDOWS错误提示框)

    出现这种情况,往往是因为原先安装有VS,后来因某些原因(比如:卸载)导致VS无法使用!!当系统中的有些软件出现错误时,会自动调用vs进行调试,但因为VS无法使用,就出现了visual studio j ...

  7. App自适应

    http://blog.csdn.net/newjueqi/article/details/42779221

  8. mysql之select(二)

    union 联合 作用: 把2次或多次查询结果合并起来. 要求:两次查询的列数一致.推荐:查询的每一列,相对应得列类型也一样. 可以来自于多张表.多次sql语句取出的列名可以不一致,此时,以第1个sq ...

  9. 李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView

    李洪强iOS开发之后使用XIB实现横向滚动的UIScrollView 11111222

  10. lintcode:买卖股票的最佳时机 IV

    买卖股票的最佳时机 IV 假设你有一个数组,它的第i个元素是一支给定的股票在第i天的价格. 设计一个算法来找到最大的利润.你最多可以完成 k 笔交易. 注意事项 你不可以同时参与多笔交易(你必须在再次 ...