CentOS系统怎样安装GitLab客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS系统怎样安装GitLab客户端相关的知识,希望对你有一定的参考价值。

参考技术A 环境
Requirements

软件
版本

CentOS 6.6
Python 2.6
Ruby 2.1.5
Git 1.7.10+
Redis 2.0+
mysql
GitLab 7-8-stable
GitLab Shell v2.6.0
yum源
为了提高软件安装速度,将yum源设置为阿里云开源镜像
$ cd /etc/yum.repos.d
$ wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

必要软件包
$ yum -y install libicu-devel patch gcc-c++ readline-devel zlib-devel libffi-devel openssl-devel make autoconf automake libtool bison libxml2-devel libxslt-devel libyaml-devel zlib-devel openssl-devel cpio expat-devel gettext-devel curl-devel perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

安装Git
// 查看当前git版本
$ git --version

// 如果小于1.7.10则先卸载
$ yum remove git

// 下载最新的git并安装
$ wget -O git-src.zip https://github.com/git/git/archive/master.zip
$ unzip git-src.zip
$ cd git-src
$ make prefix=/usr/local all
$ make prefix=/usr/local install
$ ln -fs /usr/local/bin/git* /usr/bin/

安装Ruby环境
$ mkdir /tmp/ruby && cd /tmp/ruby
$ curl --progress ftp://ftp.ruby-lang.org/pub/ruby/ruby-2.1.5.tar.gz | tar xz
$ cd ruby-2.1.5
$ ./configure --disable-install-rdoc
$ make && make install

$ ln -s /usr/local/bin/ruby /usr/bin/ruby
$ ln -s /usr/local/bin/gem /usr/bin/gem
$ ln -s /usr/local/bin/bundle /usr/bin/bundle

// 设置ruby gem源为淘宝
$ gem source -r https://rubygems.org/
$ gem source -a http://ruby.taobao.org/

$ gem install bundler --no-ri --no-rdoc

安装MySQL及初始化GitLab库
$ yum install mysql mysql-devel mysql-server -y
$ /etc/init.d/mysqld start
$ chkconfig mysqld on

// 登录mysql创建gitab的帐号和数据库
mysql> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
mysql> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';

//测试是否可以用git帐号登录数据库
sudo -u git -H mysql -u gitlab -p -D gitlabhq_production

安装Redis
$ yum -y install redis
$ /etc/init.d/redis start
$ chkconfig redis on

添加git帐号并允许sudo
$ useradd --comment 'GitLab' git
$ echo "git ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers

安装GitLab
$ /home/git
$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 7-8-stable gitlab
$ cd /home/git/gitlab
$ sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

// 编辑git路径, gitlab的host:port
$ vim config/gitlab.yml
// bin_path: /usr/local/bin/git
// host: localhost
// port: 80

// 给文件夹添加相应的权限
$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ 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 cp config/initializers/rack_attack.rb.example
config/initializers/rack_attack.rb

// 配置数据库连接信息
$ sudo -u git cp config/database.yml.mysql config/database.yml
$ sudo -u git -H vim config/database.yml
$ vim config/database.yml
// production:
// username: gitlab
// password: "gitlab"

安装GitLab-Shell
$ cd /home/git
$ sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v2.6.0
$ cd gitlab-shell/
$ sudo -u git -H cp config.yml.example config.yml

// 编辑配置文件, 设置gitlab_url, redis-cli, log-level...
$ vim config.yml
// gitlab_url: "http://localhost/"
// /usr/bin/redis-cli

// 安装git-shell
$ sudo -u git -H ./bin/install

安装需要ruby的gems
$ cd /home/git/gitlab
$ sudo -u git -H bundle install --deployment --without development test postgres aws

初始化数据库(创建GitLab相关表)
$ sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

安装启动文件以及日志切割文件
cp lib/support/init.d/gitlab /etc/init.d/gitlab
cp lib/support/init.d/gitlab.default.example /etc/default/gitlab
cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

设置git帐号信息
$ sudo -u git -H git config --global user.name "Troy Zhang"
$ sudo -u git -H git config --global user.email "troyz@synnex.com"
$ sudo -u git -H git config --global core.autocrlf input

安装nginx
$ yum -y install nginx
$ vim /etc/nginx/nginx.conf
user root git;
worker_processes 2;
pid /var/run/nginx.pid;

events
worker_connections 1024;


http
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# GITLAB
# Maintainer: @randx
# App Version: 5.0

upstream gitlab
server unix:/home/git/gitlab/tmp/sockets/gitlab.socket;


server
listen *:80 default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea
server_name YOUR_SERVER_FQDN; # e.g., server_name source.example.com;
server_tokens off; # don't show the version number, a security best practice
root /home/git/gitlab/public;

# Set value of client_max_body_size to at least the value of git.max_size in gitlab.yml
client_max_body_size 5m;

# individual nginx logs for this gitlab vhost
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;

location /
# serve static files from defined root folder;.
# @gitlab is a named location for the upstream fallback, see below
try_files $uri $uri/index.html $uri.html @gitlab;


# if a file, which is not found in the root folder is requested,
# then the proxy pass the request to the upsteam (gitlab unicorn)
location @gitlab
proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_connect_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694
proxy_redirect off;

proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass http://gitlab;




更改权限,启动nginx
$ nginx -t
$ chown -R git:git /var/lib/nginx/
$ /etc/init.d/nginx start

检测当前环境
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production

拉取gitlab静态资源文件
$ sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

启动gitlab
$ /etc/init.d/gitlab start

检测各个组件是否正常工作
$ sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

转 CentOS 初体验十四:阿里云安装Gitlab

 

原文 https://blog.csdn.net/zhaoyanjun6/article/details/79144175

非Unix操作系统(Windows)

GitLab是专为Unix操作系统开发的。 GitLab 不可 运行在Windows操作系统上,而且我们近期也没有考虑支持Windows。 你可以在Linux虚拟机上或者Docker上来安装GitLab。

硬件需求

安装使用 GitLab 需要至少 4GB 可用内存, 由于操作系统和其他正在运行的应用也会使用内存, 所以安装 GitLab 前一定要注意当前服务器至少有 4GB 的可用内存. 少于 4GB 内存会导致在reconfigure 的时候出现各种诡异的问题, 而且在使用过程中也经常会出现 500 错误.

具体细节要求,可以查看 Gitlab 中文文档

GitLab 安装

官方的安装教程:https://about.gitlab.com/installation/#centos-7

我开始学安装的时候,从网上找了很多教程,发现很多教程都是有问题的。有的教程是互相抄的,明明是错的,还复制粘贴,发现很多人写博客都不负责。我写博客就一个原则,写出的东西必须要自己验证过。

所以经验就是安装最好还是按照官方的教程来。

进入官方安装教程,我们发现 Gitlab 提供了很多不同的版本,如下

技术图片

我的阿里云系统是 CentOS7 , 所以我直接选择 CentOS7 。然后下面就会出现安装的命令。

第一步

在系统防火墙中打开HTTP和SSH访问,依次运行下面的命令,命令如下所示:

sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

 

 

注意在执行第四条命令的时候,如下所示:

firewall-cmd --permanent --add-service=http

 

可能会报说 FirewallD is not running , 如下所示:

技术图片

这个错误的意思是防火墙服务没有运行,要解决这个问题也很简单,就是把防火墙服务运行起来,启动防火墙命令如下:

//运行防火墙服务
systemctl start firewalld.service

 

第二步

安装Postfix 邮件通知服务,其实这一步是可以省略的,在 Gitlab 安装完成后还可以配置。安装命令如下:

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

 

 

依次运行这些命令就可以了,没有坑。

第三步

安装 Gitlab 软件包,这个才是真正的主角。

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

 

这一步就是下载并安装 Gitlab 软件包,耐心等待就好。

第四步

配置 Gitlab 访问的域名,配置命令如下:

sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee

 

上面命令的 http://gitlab.example.com 需要换成自己域名,如果你的云服务器没有绑定域名,可以用 公网ip 代替,比如 http://47.94.230.26 , 这个 域名/ip 以后可以在浏览器中访问 Gitlab 服务。运行上面的命令就会下载并安装一些服务,耐心等待就好。

技术图片

下载完成后会自动安装,直至安装完成。下载的时间取决你云服务器的宽带速度,我是 1 M 带宽,下载完花了 10 分钟 , 安装花了 5 分钟,耐心等待便是。安装完成后,会出现如下的日志信息。 
技术图片

到这里就表示 GitLab 已经安装完成了。http://47.94.230.26 这个域名/ip 可以使用了, gitlab 的版本号是:gitlab-ee , 10.4.0 版本。

第五步

下面我们在浏览器中访问 http://47.94.230.26 , 就会看到入戏的画面。

技术图片

需要设置初始密码,这里我们就用 zhaoyanjun 做密码, 连续输入两遍,然后点击下面的按钮。密码设置完成后,就会跳转到登录界面, 登录用户名默认是 root , 密码就是刚才设置的 zhaoyanjun 。 
技术图片

登录完成后,就可以看到如下的界面。

技术图片

至此,Gitlab 已经安装完成了。

修改 ip

gitlab 本身采用 80 端口,如安装前服务器有占用 80,安装完访问会报错。需更改gitlab 的默认端口,比如我们将 Gitlab 的默认端口改为 8082 。

第一步

打开阿里云服务器防火墙的 8082 端口

//打开防火墙服务
systemctl start firewalld

//开启防火墙 8082 端口
firewall-cmd --zone=public --add-port=8082/tcp --permanent

//重启防火墙服务,让配置生效
systemctl restart firewalld

 

 

第二步

修改 Gitlab 默认端口配置 
打开 /etc/gitlab/gitlab.rb 文件,找到 external_url 字段,如下图所示: 
技术图片 
把 http://47.94.230.26 改为 http://47.94.230.26:8082 
技术图片

然后执行 gitlab-ctl reconfigure 让配置立即生效。 
在浏览器中访问 http://47.94.230.26:8082 , 就可以看到 Gitlab 的页面了。

其他命令

//启动
sudo gitlab-ctl star

//停止
sudo gitlab-ctl stop

//重启
sudo gitlab-ctl restart

//使更改配置生效
sudo gitlab-ctl reconfigure

 


个人微信号:zhaoyanjun125 , 欢迎关注 

以上是关于CentOS系统怎样安装GitLab客户端的主要内容,如果未能解决你的问题,请参考以下文章

cent os官网上下系统有下个选项 dvd ios everything ios minimal

VMWare12安装CentOS7操作系统并搭建GitLab环境

cent OS 7用ifconfig查询IP

CentOS 初体验十四:阿里云安装Gitlab

虚拟机上装了centos 怎样安装软件

cent OS安装配置JDK