gitlab 安装以及管理

Gitlab 默认安装文件位置

1 项目文件位置gitlab代码放在/var/opt/gitlab/git-data/下)

2 配置文件目录  /etc/gitlab/gitlab.rb修改完配置后执行gitlab-ctl reconfigure生效

3安装文件目录   /var/opt/gitlab/

4备份文件目录   /var/opt/gitlab/backups

5 日志位置:/var/log/gitlab

6 部分配置文件地址/opt/gitlab/embedded/service/gitlab-rails/config

vim gitlab.yml 修改服务器的ip地址 ,邮件发送名称

7 文件上传位置/var/opt/gitlab/gitlab-rails/uploads/

gitlab安装以后有两个目录:

           一个在/opt/gitlab,这里都是程序文件,不包含数据。

            另一个在/var/opt/gitlab,这里都输数据文件。

安装后的配置文件目录:

主文件:/etc/gitlab/  

主配置文件:/var/opt/gitlab/

 /opt/gitlab/

日志目录:/var/log/gitlab/


gitlab-ctl

tail #查看所有日志gitlab-ctl tail nginx/gitlab_access.log #查看nginx访问日志cd op

迁移需要/etc/gitlab/gitlab.rb

6 查看版本的信息

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

日常管理

gitlab-ctl start|stop|status|restart

安装gitlab

1.      [endif]当前环境 

系统版本centos6.8x64

在 CentOS 6 安装

使用国内镜像安装,新建 /etc/yum.repos.d/gitlab-ce.repo,添加以下内容

[gitlab-ce]

name=gitlab-ce

baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6

repo_gpgcheck=0

gpgcheck=0

enabled=1

gpgkey=https://packages.gitlab.com/gpg.key


安装步骤:


# 安装依赖包

sudo yum install curl openssh-serveropenssh-clients postfix cronie -y

# 启动 postfix 邮件服务

sudo service postfix start

# 检查 postfix 设置开机启动

sudo chkconfig postfix on

# 安装 GitLab 社区版

sudo yum install gitlab-ce

# 初始化GitLab

sudo gitlab-ctl reconfigure


添加访问的ip或者域名,修改/etc/gitlab/gitlab.rb的external_url

每次修改/etc/gitlab/gitlab.rb,都要运行以下命令,让配置生效


sudo gitlab-ctl reconfigure

配置及启动的命令

gitlab-ctl reconfigure  类似于重新加载

gitlab-ctl status   状态

gitlab-ctl stop     停止

gitlab-ctl start      启动

最后,在浏览器打开网址http://ip,登陆。默认管理员:


用户名: root

密码: 5iveL!fe



Gitlab 升级

1当前Gitlab 版本10.1.1

2 升级目前最新版本为10.2.2 (2017/11/30)

 2.1登录服务器

停止服务

1.关闭gitlab服务

gitlab-ctlstop unicorn

gitlab-ctlstop sidekiq

gitlab-ctlstop nginx

备份数据

gitlab-rake gitlab:backup:create

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1512021935_2017_11_30_10.1.1_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中1512021935_2017_11_30是备份创建的日期10.1.1_gitlab是gitlab的版本

/etc/gitlab/gitlab.rb 配置文件须备份

/var/opt/gitlab/nginx/conf nginx配置文件

/etc/postfix/main.cfpostfix 邮件配置备份


下载gitlab的RPM包并进行升级

开启服务

gitlab-ce start

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

yumupdate gitlab-ce

或者直接安装高版本

yuminstall gitlab-ce-10.2.2-ce.0.el6.x86_64


或者上官网下载最新版本 gitlab对应软件包 [gitlab官网]

(https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.2.2-ce.0.el6.x86_64.rpm)


使用rpm -Uvh gitlab-ce-10.2.2-ce.0.el6.x86_64

报错.

Errorexecuting action `run` on resource 'ruby_block[directory resource:/var/opt/gitlab/git-data/repositories]'

解决方法:

sudochmod 2770 /var/opt/gitlab/git-data/repositories

4.启动并查看gitlab版本信息


gitlab-ctlreconfigure   重新配置

gitlab-ctlrestart        重启服务

#head -1 /opt/gitlab/version-manifest.txt

gitlab-ce10.2.2

 

 

设置卸载备份,恢复,迁移,目录及nginx修改

gitlab更改默认Nginx


更换gitlab自带Nginx,使用自行编译Nginx来管理gitlab服务。


编辑gitlab配置文件禁用自带Nignx服务器


vi/etc/gitlab/gitlab.rb

...

#设置nginx为false,关闭自带Nginx

nginx['enable']= false

...

检查默认nginx配置文件,并迁移至新Nginx服务


/var/opt/gitlab/nginx/conf/nginx.conf

#nginx配置文件,包含gitlab-http.conf文件

/var/opt/gitlab/nginx/conf/gitlab-http.conf

#gitlab核心nginx配置文件

重启 nginx、gitlab服务


$sudo gitlab-ctl reconfigure

$sudo service nginx restart

访问报502。原因是nginx用户无法访问gitlab用户的socket文件。 重启gitlab需要重新授权

chmod-R o+x /var/opt/gitlab/gitlab-rails

 

彻底卸载gitlab

一、停止gitlab

sudogitlab-ctl stop

二、卸载gitlab

sudorpm -e gitlab-ce

三、查看gitlab进程

杀掉第一个守护进程

kill-9 4473

再次查看gitlab进程是否存在


四、删除gitlab文件

find / -name gitlab|xargs rm -rf 删除所有包含gitlab的文件及目录

删除gitlab-ctl uninstall时自动在root下备份的配置文件


通过以上几步就可以彻底卸载gitlab



Gitlab备份,还原及目录修改

Gitlab备份目录修改

可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录


gitlab_rails['backup_path']= "/var/opt/gitlab/backups"

/var/opt/gitlab/backups修改为你想存放备份的目录即可, 修改完成之后使用gitlab-ctl reconfigure命令重载配置文件即可.


Gitlab备份


1.关闭gitlab服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

gitlab-ctl stop nginx

备份数据

gitlab-rake gitlab:backup:create


Gitlab自动备份

日常备份,添加 /etc/crontab,运行vim /etc/crontab

实现每天凌晨1点进行一次自动备份:通过crontab使用备份命令实现

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

Gitlab恢复

 

Gitlab的从备份恢复也非常简单:

# 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

# 从备份文件为1512110682_2017_12_01_10.2.2_gitlab_backup.tar编号备份中恢复将覆盖GitLab数据库的全部内容!命令为

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

#会让你选择yes no

输入yes后

# 启动Gitlab

sudo gitlab-ctl start

# 检查 GitLab服务正常否

gitlab-rake  gitlab:check SANITIZE=true

3.gitlab迁移

迁移如同备份与恢复的步骤一样, 只需要将老服务器/var/opt/gitlab/backups目录下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups即可(如果你没修改过默认备份目录的话).

但是需要注意的是新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的7.60版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为7.60在进行备份.

/etc/gitlab/gitlab.rb          gitlab配置文件须迁移,迁移后需要调整数据存放目录

/var/opt/gitlab/nginx/conf    nginx配置文件目录须迁移


[root@linux-node1~]# gitlab-ctl stop unicorn

ok:down: unicorn: 0s, normally up

[root@linux-node1~]# gitlab-ctl stop sidekiq

ok:down: sidekiq: 0s, normally up

[root@linux-node1~]# chmod 777 /var/opt/gitlab/backups/1481598919_gitlab_backup.tar

[root@linux-node1~]# gitlab-rake gitlab:backup:restore BACKUP=1481598919

启动Gitlab

sudogitlab-ctl start


重新配置gitlab

gitlab-ctl reconfigure

Gitlab GitLab服务构成

Gitlab 汉化

下载汉化包并覆盖汉化包

1 停止gitlab服务

gitlab-ctl stop

2 切换到gitlab汉化包所在的目录(即步骤二获取的汉化版gitlab)

cd /root/gitlab

3 比较汉化标签和原标签,导出 patch 用的 diff 文件到/root下

git diff v10.0.2 v10.0.2-zh >../10.0.2-zh.diff

4 回到/root目录

cd

5 将10.0.2-zh.diff作为补丁更新到gitlab中

yum install patch -y

patch -d/opt/gitlab/embedded/service/gitlab-rails -p1 < 10.2.2-zh.diff

6 启动gitlab

gitlab-ctl start

7 重新配置gitlab

gitlab-ctl reconfigure

汉化完成

问题 

1 迁移后上传的文档链接没变

解决方案使用域名重定向

推荐阅读更多精彩内容