gitlab服务器安装

一、示例主机信息:linux

hostname:vm0.lansgg.comnginx

ip        :    192.168.85.128git

Os        : centos 6.5 x64vim

gitlab版本:  gitlab-ce-8.7.0-ce.0.el6.x86_64.rpmcentos

Ps : 关闭 iptables selinuxbash

二、系统依赖软件安装ssh

root@vm0 ~]# yum install curl openssh-server openssh-clients  cronie –y

三、安装gitlabcurl

[root@vm0 ~]# rpm -vhi gitlab-ce-8.7.0-ce.0.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
   1:gitlab-ce              ########################################### [100%]
gitlab: Thank you for installing GitLab!
gitlab: To configure and start GitLab, RUN THE FOLLOWING COMMAND:

sudo gitlab-ctl reconfigure

gitlab: GitLab should be reachable at http://vm0.lansgg.com
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab: 
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab: 
It looks like GitLab has not been configured yet; skipping the upgrade script.
[root@vm0 ~]#

3.一、初始化
ide

[root@vm0 ~]# gitlab-ctl reconfigure

到此安装成功:gitlab

地址:http://192.168.85.128/

默认用户名是 root , 密码是 5iveL!fe

登录后会提示修改当前管理员密码

四、设置https

建立ssl证书目录

[root@vm0 ~]# mkdir -p /etc/gitlab/ssl
[root@vm0 ~]# cd /etc/gitlab/ssl/
[root@vm0 ssl]# ll
总用量 8
-rw-r--r--. 1 root root 1444 9月   7 16:16 vm0.lansgg.com.crt
-rw-r--r--. 1 root root 1704 9月   7 16:16 vm0.lansgg.com.key
[root@vm0 ssl]#

4.一、修改git配置项中的ssl证书文件地址     #/etc/gitlab/gitlab.rb(#大约是477行)

11 external_url '
472  nginx['enable'] = true
473  nginx['client_max_body_size'] = '250m'
474  nginx['redirect_http_to_https'] = false
475 # nginx['redirect_http_to_https_port'] = 80
476  nginx['ssl_client_certificate'] = "/etc/gitlab/ssl/vm0.lansgg.com.crt"
477  nginx['ssl_certificate'] = "/etc/gitlab/ssl/vm0.lansgg.com.crt"

wKioL1fPzhOS90LRAABeko6ArO4912.jpg-wh_50

4.二、修改nginx配置文件

38 server {
 39   listen *:443;
 40   ssl on;
 41   ssl_certificate /etc/gitlab/ssl/vm0.lansgg.com.crt;
 42   ssl_certificate_key /etc/gitlab/ssl/vm0.lansgg.com.key;

wKiom1fPzqGwCYj2AAAps_98CtY988.jpg-wh_50

4.三、配置http跳转https

[root@vm0 ssl]# vim /var/opt/gitlab/nginx/conf/index.conf            ###新建
server {
    listen *:80;
    server_name www.abc.com;
  
    rewrite ^(.*)$  https://$host$1 permanent;
}

wKiom1fPzwyz__gqAAAnVI1TsZQ705.jpg-wh_50

4.四、修改配置文件载入index.conf

配置文件地址:/var/opt/gitlab/nginx/conf/nginx.conf,在其中加入如下内容

include/var/opt/gitlab/nginx/conf/index.conf;
include/var/opt/gitlab/nginx/conf/gitlab-http.conf;

4.五、重启服务

以上操做所有完成以后, 使用gitlab-ctl restart来重启全部服务, 便可使用HTTPS访问GitLab了.

https://192.168.85.128 

https://vm0.lansgg.com


五、gitlab的备份与还原

5.一、gitlab的备份

使用Gitlab一键安装包安装Gitlab很是简单, 一样的备份恢复与迁移也很是简单. 使用一条命令便可建立完整的Gitlab备份:

[root@vm0 ssl]# gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下建立一个名称相似为:

1467362634_gitlab_backup.tar 的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的  1473237111  是备份建立的日期.

wKiom1fP0Lfyt1blAAB4iUGQjJE645.jpg-wh_50

Gitlab 修改备份文件默认目录

[root@vm0 etc]# vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

wKiom1fP0TKjQ8G4AABixakT-_U893.jpg-wh_50

Gitlab 自动备份

也能够经过crontab使用备份命令实现自动备份:

0 2 * * */opt/gitlab/bin/gitlab-rake gitlab:backup:create

5.二、gitlab的还原


中止相关服务

[root@vm0 etc]# gitlab-ctl stop unicorn
[root@vm0 etc]# gitlab-ctl stop sidekiq


从备份文件中恢复

以20160630 的备份文件 1467225280_gitlab_backup.tar为例 )

将恢复文件 1467225280_gitlab_backup.tar 放到gitlab的备份目录

[root@slvae4 gitback]# cp 1467225280_gitlab_backup.tar/var/opt/gitlab/backups/

 

按照编号进行恢复

[root@slvae4 gitback]# gitlab-rake gitlab:backup:restoreBACKUP=1467225280


从新启动

[root@vm0 etc]# gitlab-ctl restart


解决方案

1、按照上述恢复 gitlab后,放你访问git地址时,可能会出现 500 错误;以下:

wKiom1fP0ifBTLtKAAB6vu3u9TM032.jpg-wh_50

查看日志信息以下:

wKiom1fP0l6CRvxJAAB5D1ujIeA751.jpg-wh_50

初步觉得,由于使用ssl访问时加解密的问题;查了资料,尝试如下步骤:

The temporary solutions are:

  1. Copy the old     db_key_base from the old instance to the new one.

  2. Delete     imported project data that is no longer required by projects. Something     like this may work:


执行命令:gitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroyif p.import_data }"


wKioL1fP0o-h4MTpAABLzrqfCQ8125.jpg-wh_50

相关文章
相关标签/搜索