设为首页 收藏本站
查看: 8043|回复: 2

[经验分享] Centos 6.6上安装Git Lab服务及问题总结

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-11 09:21:31 | 显示全部楼层 |阅读模式
cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m
epel el6 64 位源
rpm –ivh  http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm


1、初始化安装环境
yum -y groupinstall 'Development Tools'

yum -y install readline readline-devel ncurses-devel gdbm-devel glibc-develtcl-devel openssl-devel curl-devel expat-devel db4-devel byaccsqlite-devel libyaml libyaml-devel libffi libffi-devel libxml2libxml2-devel libxslt libxslt-devel libicu libicu-develsystem-config-firewall-tui crontabs logwatch logrotateperl-Time-HiRes cmakelibcom_err-devel.i686 libcom_err-devel.x86_64 zlib-devel perl-CPANgettext gettext-devel perl-ExtUtils-MakeMaker


2、安装GIT
确保git版本至少在1.7.10或以上,如果不是,卸载重装
yum -y remove git

mkdir /tools/git -p && cd /tools/git
curl --progress https://www.kernel.org/pub/software/scm/git/git-2.1.3.tar.gz | tar xz
cd git-2.1.3/
./configure
make
make prefix=/usr/local install
创建软连接
ln -s /usr/local/bin/git /usr/bin/git
git --version

3、安装ruby
注意:请不要用rvm安装ruby,否则,后续会出现一些难以解决的问题
Gitlab7.x需要ruby2.x
如果系统自带的ruby版本低于2.x,就需要升级ruby

yum remove ruby
或者
cd <your-ruby-source-path>
make uninstall

mkdir /tools/ruby && cd /tools/ruby
curl --progress ftp://ftp.ruby-lang.org/pub/ruby/2.1/ruby-2.1.5.tar.gz | tar xz
cd ruby-2.1.5
./configure --disable-install-rdoc
make
make prefix=/usr/local install

安装bundler
gem source -r https://rubygems.org/
gem source -a http://ruby.taobao.org/
gem install bundler --no-doc


4、添加git账户

useradd -c 'GitLab' git

执行命令:visudo
把/usr/local/bin加入到secure_path里面去
然后,配置git用户可以使用sudo
git ALL=(ALL) ALL


5、安装mysql

yum install  mysql mysql-devel mysql-server -y
/etc/init.d/mysqld start


mysql_secure_installation
创建gitlab 数据库用户

CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
\q

6、安装redis
mkdir /tools/redis && cd /tools/redis
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar xzf redis-3.0.3.tar.gz
cd redis-3.0.3
make

mkdir -p /usr/local/redis-3.0.3/etc
mkdir /usr/local/redis-3.0.3/start_script
/bin/cp -r src /usr/local/redis-3.0.3/


vim /usr/local/redis-3.0.3/etc/redis.conf

daemonize yes
pidfile /data/redisdata/redis6379.pid
port 6379
timeout 300
logfile /data/redisdata/redis6379.log
databases 16
#save 300 1
#save 150 10
#save 60 10000
maxmemory 20480000000
rdbcompression yes
dbfilename redis6379.rdb
dir /data/redisdata/
slave-serve-stale-data yes
appendonly no
appendfsync no
no-appendfsync-on-rewrite no
slowlog-log-slower-than 10000
slowlog-max-len 1024
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
activerehashing yes
#requirepass admin
bind 0.0.0.0

mkdir /data/redisdata/
ln -s /usr/local/redis-3.0.3/src/redis-* /bin/

cd /usr/local/redis-3.0.3/start_script/

chmod 744 /usr/local/redis-3.0.3/start_script/redis.sh
echo "/usr/local/redis-3.0.3/start_script/redis.sh start" >> /etc/rc.local



7、安装gitlab(使用git用户)
1)
注意,这里必须用git clone下载(在git用户家目录下执行),不要下载网上已经打包好的tar.gz文件,否则以后不能升级
git clone https://gitlab.com/gitlab-org/gitlab-ce.git gitlab
cd /home/git/gitlab  (注意目录位置,尽量使用默认的)
然后,切换到需要安装的版本上
这里安装的是v7.9.2
git checkout v7.9.2(注意这里是tag)
git checkout -b v7.9.2

2)复制配置文件
cp config/gitlab.yml.example config/gitlab.yml

修改host 为当前机器的ip地址
sed -i 's|localhost|10.1.7.201|g' config/gitlab.yml

cp config/unicorn.rb.example config/unicorn.rb

3) 授权目录
chmod -R u+rwX public/uploads
chown -R git log tmp/
chmod -R u+rwx log/ tmp/
mkdir /home/git/gitlab-satellites
chmod u+rwx,g=rx,o-rwx /home/git/gitlab-satellites
mkdir tmp/backups

配置数据库访问文件
cp config/database.yml.mysql config/database.yml
编辑config/database.yml,设置其中连接数据库的账号密码

  username: gitlab
  password: "gitlab"

chmod o-rwx config/database.yml

4)配置git的用户和邮件
git config --global user.name "GitLab"
git config --global user.email "gitlab@test.com"
git config --global core.autocrlf input

5)修改Gemfile
vim Gemfile
修改source为 http://ruby.taobao.org

sed -i s#https://rubygems.org#http://ruby.taobao.org#g Gemfile

安装node.js

8、bundle install
bundle install --no-deployment --without development test postgres aws
中途如果不出意外的话,就安装完成(install中途可能要提示输入密码)

如果提示下面的错误:
--------------------------------------------------------------------------------------------
An error occurred while installing charlock_holmes (0.6.9.4), and Bundler cannot continue.
Make sure that `gem install charlock_holmes -v '0.6.9.4'` succeeds before bundling.

gem install charlock_holmes -v '0.6.9.4'

ERROR:  Could not find a valid gem 'charlock_holmes' (= 0.6.9.4), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org/quick/Marshal.4.8/charlock_holmes-0.6.9.4.gemspec.rz)
ERROR:  Possible alternatives: charlock_holmes

yum install libicu-devel

--------------------------------------------------------------------------------------------
An error occurred while installing rugged (0.21.4), and Bundler cannot continue.
Make sure that `gem install rugged -v '0.21.4'` succeeds before bundling.

sudo yum -y install cmake
sudo gem install rugged -v '0.21.4'

类似这样的,需要手动安装的gem ,手动安装,然后继续执行上面的bundle install



9、安装GitLab-shell

su - git && cd /home/git
git clone https://github.com/gitlabhq/gitlab-shell.git
cd gitlab-shell/

通过 git tag 查看最新版本并切换之
git tag
git checkout -b v2.6.3

修改配置文件

cp config.yml.example config.yml
vi config.yml
gitlab_url: "http://git.test.com/"
注意:如果gitlab是使用https访问,则需将http替换成https,配置文件中的self_signed_cert要修改成true,否则gitlab shell在通过api和gitlab进行通信的时候就会出现错误,导致项目push出错。因为后面配置web服务器的时候是使用ssl,所以这里要按照ssl的方式配置。

Tips: 另外如果使用的域名是测试域名,不要忘记在系统的/etc/hosts做域名映射。

安装
./bin/install


10、初始化数据库
bundle exec rake gitlab:setup RAILS_ENV=production
成功的话,会输出
Administrator account created:

login.........root
password......5iveL!fe

记住这里的用户名和密码

--------------------------------------------------------------------------------------------
如果提示下面的错误:
rake aborted!
ExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes.
/home/git/gitlab/config/application.rb:6:in `<top (required)>'
/home/git/gitlab/Rakefile:5:in `require'
/home/git/gitlab/Rakefile:5:in `<top (required)>'
(See full trace by running task with --trace)

sudo yum install nodejs -y


11、检查GitLab及其环境的配置是否正确
git@KVM-7-201 ~/gitlab $ bundle exec rake gitlab:env:info RAILS_ENV=production

System information
System:
Current User: git
Using RVM: no
Ruby Version: 2.1.5p273
Gem Version: 2.2.2
Bundler Version:1.10.6
Rake Version: 10.4.2
Sidekiq Version:3.3.0

GitLab information
Version: 7.9.2
Revision: c46d4f5
Directory: /home/git/gitlab
DB Adapter: mysql2
URL: http://10.1.7.201
HTTP Clone URL: http://10.1.7.201/some-project.git
SSH Clone URL: git@10.1.7.201:some-project.git
Using LDAP: no
Using Omniauth: no

GitLab Shell
Version: 2.6.3
Repositories: /home/git/repositories/
Hooks: /home/git/gitlab-shell/hooks/
Git: /usr/bin/git

12、下载启动脚本
sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init/sysvinit/centos/gitlab-unicorn -P /etc/init.d/
sudo mv /etc/init.d/gitlab-unicorn /etc/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab
sudo chkconfig --add gitlab
sudo chkconfig gitlab on
sudo /etc/init.d/gitlab start


13、复制配置文件[使用nginx做为WEB服务]
cat  /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1


sudo yum -y install nginx


sudo cp lib/support/nginx/gitlab /etc/nginx/conf.d/
cd /etc/nginx/conf.d/
sudo chown -R git:git .
cp gitlab gitlab.conf
vi gitlab.conf
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 gitlab.test.com;     # 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;
  client_max_body_size 5m;
  access_log  logs/gitlab_access.log;
  error_log   logs/gitlab_error.log;
  location / {
    try_files $uri $uri/index.html $uri.html @gitlab;
  }
  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;
  }
}

sudo service nginx restart

14、拉取GitLab静态文件
cd /home/git/gitlab
bundle exec rake assets:precompile RAILS_ENV=production
sudo service gitlab restart


15、访问测试

初始管理员帐号和密码为:
root
5iveL!fe
1)访问gitlab.test.com 如果配置正常会显示如下页面:

QQ截图20160428173043.png

第一次访问需要修改默认密码
QQ截图20160428173053.png

登录成功会显示

QQ截图20160428173102.png

2) 访问如果出现502
wKioL1XIEsTDZbryAADW3sDlWp8837.jpg

查看nginx日志,报权限错误
tail /var/log/nginx/gitlab_error.log

2015/08/07 19:50:31 [crit] 4190#0: *24 connect() to unix:/home/git/gitlab/tmp/sockets/gitlab.socket failed (13: Permission denied) while connecting to upstream, client: 10.190.0.6, server: gitlab.test.com, request: "GET /favicon.ico HTTP/1.1", upstream: "http://unix:/home/git/gitlab/tmp/sockets/gitlab.socket:/502.html", host: "gitlab.test.com"


解决方案:
chmod 775 /home/git

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97282-1-1.html 上篇帖子: gitlab的详细部署 下篇帖子: GitLab 7.13.1 发布,代码托管平台
累计签到:335 天
连续签到:1 天
发表于 2017-1-4 11:51:59 | 显示全部楼层
请问我在操作第7步的时候    git clone https://gitlab.com/gitlab-org/gitlab-ce.git gitlab  一直中断,要怎么操作呢

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

累计签到:108 天
连续签到:1 天
发表于 2017-4-7 12:03:16 | 显示全部楼层
安装redis:请问 redis.sh
这个脚本从哪来的呢?手动编辑?还是cp过来的?start_script这个文件夹是新建的空文件,怎么会有呢?

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表