一、安装
在linux系统上可以通过yum安装,会从镜像中找到并安装,需要配置一下镜像源
1.配置yum源vim /etc/yum.repos.d/gitlab-ce.repo
复制以下内容 [gitlab-ce] name=Gitlab CE Repository baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gpgcheck=0 enabled=1
2.更新本地yum缓存
yum makecache
3.安装GitLab社区版
yum install gitlab-ce
#自动安装最新版本
注:若需安装指定版本,则添加版本号即可,即yum install gitlab-ce-x.x.x,但是经测试有些版本找不到,
4.开启GitLab
gitlab-ctl start
GitLab常用命令
gitlab-ctl start # 启动所有 gitlab 组件;
gitlab-ctl stop # 停止所有 gitlab 组件;
gitlab-ctl restart # 重启所有 gitlab 组件;
gitlab-ctl status # 查看服务状态;
gitlab-ctl reconfigure # 启动服务;(重新加载配置文件,在GitLab初次安装后可以使用,但是在业务环境中不可随意使用,reconfigure会把一些过去的config还原,导致修改的端口以及域名等都没有了。)
vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
gitlab-ctl tail # 查看日志;
到这里通过yum安装完毕,具体配置与使用在后面;
PS:通过yum安装的 如果也想要生成rpm包进行传输可以通过安装yum的工具包yum-utils
'yum install yum-utils -y'
安装完成后可使用rpm -ql 查看安装包,里面会有yumdownloader命令,这个就是我们需要的工具命令了。
这里以下载pgsql为例:
通过yumdownloader --destdir=/root postgresql
后面的目录可以随意指定
下载完成后可以在/root目录中查看下载好的安装包
然后就可以通过安装rpm包,进行安装
也可以wget直接下载 rpm 包,通过rpm -ivh 进行安装(适合于需要指定版本 并且服务器无法连接外网),可以先在本地虚拟机下载好在通过远程工具上传到待部署的服务器进行安装
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.2.0-ce.0.el7.x86_64.rpm
注: 可以根据需求自己找到指定版本下载,因为做数据迁移必须要保证两台服务器上gitlab版本一致,可以升级旧服务器也可以直接在新服务器安装与老服务器相同版本
查看gitlab版本命令:(综合版本)gitlab-rake gitlab:env:info
然后找到下载好的rpm包通过rpm -ivh xxxxxx包名xxxxxx
进行安装(环境不对就找环境安装)
环境:yum -y install gdbm-devel glibc-devel tcl-devel openssl-devel curl-develexpat-devel db4-devel byacc libyaml libyaml-devel libffi libffi-devel libxml2libxml2-devel libxslt libxslt-devel libicu libicu-devel sudo wget patchlogwatch logrotate perl-Time-HiRes cmake libcom_err-devel.i686libcom_err-devel.x86_64 nodejs python-docutils
升级软件包到最新yum -y update
安装完成后就可以通过gitlab-ctl reconfigure
刷新配置,如果没有自动启动可以通过gitlab-ctl start
进行手动启动
PS:如果安装完成后提示指令找不到,可以找到安装路径下(可能是/opt/gitlab/bin)
手动执行./gitlab-ctl reconfigure
./gitlab-ctl start
...其他指令类似
想让指令生效,貌似可通过为其在/usr/bin中建立软连接实现(我没弄)
BIG PS:首次启动 如果reconfigure命令卡到 wait redis xxxxx service socket action run 可以先按Ctrl+C 终止 然后手动开启runsvdirsystemctl restart gitlab-runsvdir
或者sudo /opt/gitlab/embedded/bin/runsvdir-start
再或者直接找到执行文件手动执行
再继续执行gitlab-ctl reconfigure 如安装过程遇到报错信息,可重复执行gitlab-ctl reconfigure
如果报红
ShellCommandFailed: Expected process to exit with [0], but received '1'
此处省略n行。。。。。
尝试这样解决。。。
1、停止gitlab服务
gitlab-ctl stop
2、执行 命令
chmod 755 /var/opt/gitlab/postgresql
3、执行命令
systemctl restart gitlab-runsvdir
4、执行命令
gitlab-ctl reconfigure
5、启动
gitlab-ctl restart
——————————————————————————————
再不行就再次刷新配置gitlab-ctl reconfigure
多试几次,实在不行就重新安装,或者换个安装包。。。。。
配置
安装,并刷新配置启动后可直接通过服务器IP进行访问,网络上没做处理的话会直接进入到登录界面,首次登录会让设置新密码,默认都是root
如果不行可以看看80端口是否被占用,默认端口为80,可通过后面的配置进行修改
首先 修改默认端口
修改配置文件vim /etc/gitlab/gitlab.rb
改:external_url 'http://gitlab.example.com'
为:external_url 'http://宿主机ip:8085'
改:unicon['port'] = 8086
改:nginx['listen_port'] = 8085
保存退出
ps:端口可以随意但是url端口要与nginx一致。
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
改:
gitlab:
host: 宿主机ip(此处没有http://)
port:8085
保存退出
然后刷新配置,重新启动gitlab-ctl reconfigure
gitlab-ctl restart
其他配置,需要再查,别的我好像没配,,,,,
每次配置完,刷新配置后最好再重新启动一下,这里有时候会很坑,,,,
卸载
1、停止gitlab-cegitlab-ctl stop
2、卸载gitlab-ce
rpm -e gitlab-ce
3、查看gitlab-ce进程
ps aux | grep gitlab
杀掉gitlab的所有进程
一般杀掉runsvdir 后 别的自动消失kell -9 xx进程号xx
杀完再查看确认一下:ps aux | grep gitlab
4、删除所有包含gitlab的文件
find / -name gitlab | xargs rm -rf
卸载完毕!
备份
老服务器上数据备份:
gitlab-rake gitlab:backup:create
PS:如果在/etc/gitlab/gitlab.rb 文件配置了参数“backup_path”(例如gitlab_rails['backup_path'] = '/backup'),则备份的目录就是该目录下(/backup/),如果没有配置参数“backup_path”,则gitlab把备份文件生成到默认目录/var/opt/gitlab/backups。
等待备份完成,可能会看到一段提示:
Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data and are not included in this backup. You will need these files to restore a backup. Please back them up manually.
大致意思就是在gitlab.rb和gitlab-secrets.json文件中包含敏感数据,在备份中并没有包含这两个文件,需要手动保存一下,在恢复备份的时候会需要这两个文件(如果是在本机更新,则不备份这两个文件也没关系,如果是备份了在另一台机器安装gitlab并恢复数据,则需要在另一台机器覆盖这两个文件)。这两个文件放在/etc/gitlab目录下。
备份完毕!
迁移与恢复
把备份的文件传到新服务器
可尝试
使用scp命令从远程服务器copy文件或者目录到本地
scp 用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2
例如:scp root@172.28.17.155:/var/opt/gitlab/backups/1502357536_2017_08_10_9.4.3_gitlab_backup.tar /var/opt/gitlab/backups/
可以看下scp的使用,也可通过其他方式,只要把备份文件放到新服务器上即可。
需要先在新服务器将传过来的备份文件放到/var/opt/gitlab/backups/
最好赋予最高权限
chmod 777 1502357536_2017_08_10_9.4.3_gitlab_backup.tar
执行命令停止相关数据连接服务
停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
执行命令从备份文件中恢复Gitlab
gitlab-rake gitlab:backup:restore BACKUP=备份文件编号
例如:gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3
进入交互页面后 记得一共让输入两次yes继续
结束后警告说 两个配置文件无法备份 需要手动覆盖 就把原来的配置文件改名,备份来的配置文件放到原来的配置文件目录下即可,需要修改下gitlab.br
的external_url,改为新的ip 不然无法访问,
完成后刷新配置,重新启动即可完成数据恢复;
打开gitlab界面会发现新老两个gitlab服务器除了IP不同,内容完全相同。
扩展
gitlab目录功能结构
默认安装的gitlab,主要有四个目录:
/opt/gitlab/ ## 主目录
/etc/gitlab/ ## 放置配置文件
/var/opt/gitlab/ ## 各个组件
/var/log/gitlab/ ## 放置日志文件
功能操作:
检查gitlab各组件状态:
gitlab-ctl status
重启gitlab:
gitlab-ctl restart
只重启某个组件:
gitlab-ctl restart nginx
gitlab组件:
nginx:
postgresql:
redis:
unicorn:
sidekiq:
logrotate:
————————————————