GitLab 之 Linux十分钟快装

Osvaldo36A 8年前

来自: http://www.cnblogs.com/highsea90/p/5191340.html

先把 Shell 命令贴出来,楼主以 CentOS release 6.5 (Final) 64位 为例:

//配置系统防火墙,把HTTP和SSH端口开放.  sudo yum install curl openssh-server postfix cronie  sudo service postfix start  sudo chkconfig postfix on  sudo lokkit -s http -s ssh    //下载rpm安装包  sudo curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm  sudo rpm -ivh gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm     //这一步也可以用管道的方式安装:  //sudo curl http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash  //sudo yum install gitlab-ce    sudo rpm -ivh gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm   //修改 自带的nginx配置,以及邮件提醒配置  vim /var/opt/gitlab/nginx/conf/gitlab-http.conf  vim /etc/gitlab/gitlab.rb    //保存配置  sudo gitlab-ctl reconfigure  //启动运行,以及查看状态  sudo gitlab-ctl start //stop  sudo gitlab-ctl status

怎样,10分钟应该搞定了吧,接下来楼主开启废话模式,你可以选择 继续看 或者 继续看……

大半年没写随笔了,天了噜,今天居然 不上班;无聊,产一篇吧~

GIT,SVN,GitHub, GitLab 的区别这里就不展开了,有兴趣的同学可以浏览下面的文章:

楼主曰(读 yue):

SVN 是一个完美的 集中式的版本控制系统

GIT 是 分布式 更快捷安全;

GitHub 是给用户 提供GIT服务的网站 ,他将程序员的 协同,沟通 等工作提供了解决方案(代码社交);

GitLab 是一个GIT的 项目管理工具 (私有化),也有Github的类似功能

安装方式

BitNami 一键式

BitNami 有一键安装包的解决方案 不论你是 Linux,Windows,Mac OSX 系统 点此下载适合你的安装包

题外话:据说 GitLab ControliPhone版 也很好玩。

编译安装 高逼格

编译安装流程比较繁琐,还要下载各种依赖包,甚至还有的是被墙的;当然他的优势是随意搭配服务环境,随意选择数据库,随意更改各种配置……

如果你熟悉 ROR环境 当然推荐用这个,楼主也是搞web开发的,但是主要以 (NodeJs|PHP) +(Linux|MacOSX|Windows)+(MongoDB|Mysql)+(Nginx|Apache) 环境为主,所以就放弃了这种方式安装,如果你依然想要这个,那推荐看看这个方案: 一键Shell指令安装

rpm包安装 省时省力

如开头,楼主采用的是这种方式,这种方式虽然简便,但是重复安装了很多依赖,比如,Nginx,邮件收发系统之类的,楼主使用的服务器上还安装着 Redmine,RAP,Tomcat,JavaMail,Node……

这里再强调下 我用rpm包地址:

curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm

如果下载不下来可以尝试: 清华大学镜像 或者 FQ试一试

修改配置

Nginx

这个 rpm自带了 Nginx ,如果你找不到位置,你可以搜索下名称

find / -name gitlab-http.conf  sudo vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

server_name 很重要哦,设置监听端口之前请先查看端口有无占用 netstat -anpt | grep 8181 然后再改

server {    listen *:8181; ##这里注意    server_name gitlab.mycloudedu.net; ##这里注意    server_tokens off; ## Don't show the nginx version number, a security best practice    root /opt/gitlab/embedded/service/gitlab-rails/public;      ## Increase this if you want to upload large attachments    ## Or if you want to accept large git objects over http    client_max_body_size 250m;  ……

Email

这里提一下 unicorn.rb 文件,该文件会影响 gitlab-ctl 指令,如果你改动了则需要重新运行配置,指令:

sudo gitlab-ctl reconfigure

你可以通过 cat /var/opt/gitlab/gitlab-rails/etc/unicorn.rb 指令查看该文件,

接下来是修改邮件收发的配置:

vim /etc/gitlab/gitlab.rb

smtp设置 很重要哦

###################################  # GitLab CI email server settings #  ###################################  ## see https://gitlab.com/gitlab-org/omnibus-gitlab/tree/629def0a7a26e7c2326566f0758d4a27857b52a3/doc/settings/smtp.md#smtp-settings    ##以下注意  gitlab_ci['smtp_enable'] = true  gitlab_ci['smtp_address'] = "smtp.exmail.qq.com"  gitlab_ci['smtp_port'] = 465  gitlab_ci['smtp_user_name'] = "admin@xx.com"  gitlab_ci['smtp_password'] = "xxx"  gitlab_ci['smtp_domain'] = "qq.com"  gitlab_ci['smtp_authentication'] = "login"  gitlab_ci['smtp_enable_starttls_auto'] = true  # gitlab_ci['smtp_tls'] = false  # gitlab_ci['smtp_openssl_verify_mode'] = false

还要改一下 external_url 对外显示的URL

## Url on which GitLab will be reachable.  ## For more details on configuring external_url see:  ## https://gitlab.com/gitlab-org/omnibus-gitlab/blob/629def0a7a26e7c2326566f0758d4a27857b52a3/README.md#configuring-the-external-url-for-gitlab  external_url 'http://gitlab.mycloudedu.net:8181'

改完记得运行 sudo gitlab-ctl reconfigure

Hosts

由于楼主没有 解析公司域名权限,如果你也碰巧如此的话 改下Hosts

121.43.226.85 gitlab.mycloudedu.net

管理 GitLab 常用指令

这点,我要吐槽下,本来Linux很方便的有 man 指令来查看某个工具的指令,结果输入 man gitlab-ctl 后,提示竟然找不到说明文件 0.0

//启动  sudo gitlab-ctl start  //查看运行状态  sudo gitlab-ctl status  //停止  sudo gitlab-ctl stop  //查看错误信息  sudo gitlab-ctl tail  //保存配置  sudo gitlab-ctl reconfigure

最后,如果是编译安装的默认管理员账号密码是: admin@local.host|5iveL!fe ,如果是 rpm包安装则管理员账号密码是 root|5iveL!fe 登录后会提醒你重设密码;

还有 端口号 之类需要与其他软件统一修改Nginx配置,就日后,再设置吧, 点此访问

最后,记得关闭注册哦

</div>