gitlab安装及升级(借鉴官网方法)


https://www.gitlab.cc/installation/#centos-6

1. 安装并配置必要的依赖关系

如果你想使用 Postfix 发送邮件,请在安装过程中根据提示选择 'Internet Site'。 你也可以用 Sendmail 或者 配置一个自定义的 SMTP 服务 并 把它作为一个 SMTP 服务器。
在 CentOS 系统上,下面的命令将会打开系统防火墙 HTTP 和 SSH 的访问。
sudo yum install curl openssh-server postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

2. 添加 GitLab 镜像源并安装

sudo yum install gitlab-ee
如果你不太习惯使用命令管道的方式安装镜像仓库,你可以在这里找到 完整的安装脚本 或者 选择系统对应的安装包 使用下面的命令手动安装。
rpm -i gitlab-ee-XXX.rpm

3. 配置并启动 GitLab

gitlab.rb的配置:
 
    external_url ' http://git.***.com'
    gitlab_rails['gitlab_email_enabled'] = true
    gitlab_rails['gitlab_email_from'] = ' gitlab@***.com'
    gitlab_rails['gitlab_email_reply_to'] = ' gitlab@***.com'
    gitlab_rails['gitlab_default_can_create_group'] = false
    备份目录:
    gitlab_rails['manage_backup_path'] = true
    gitlab_rails['backup_path'] = "/export/gitlab/backups"
    gitlab_rails['backup_archive_permissions'] = 0644
    gitlab_rails['backup_keep_time'] = 604800
 
    
    git_data_dirs({
  "default" => {
    "path" => "/export/git-data"
   }
})
 
邮件配置:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = " smtp.***.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = " gitlab@***.com"
gitlab_rails['smtp_password'] = "Hn_2018"
gitlab_rails['smtp_domain'] = " ***.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
 
开启注册:
registry_external_url ' https://registry.***.com'
registry['enable'] = true
 
pages_external_url " http://***.cn/"
registry_nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.pem"
registry_nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"
 
sudo gitlab-ctl reconfigure
重启配置

4. 通过浏览器访问上一步配置的域名

第一次访问 GitLab,系统会重定向 url 到重置密码的页面,你需要输入初始化管理员账号的密码。 设置完成后,系统会重定向到登录界面,你就可以使用刚才输入的密码登录系统了。
系统默认的管理员账号为 root, 登录系统后,你可以修改管理员账号为自己喜欢的账号。
 
 
 
 
更改仓库存储位置
默认时GitLab的仓库存储位置在“/var/opt/gitlab/git-data/repositories”,在实际生产环境中显然我们不会存储在这个位置,一般都会划分一个独立的分区来存储仓库的数据,我这里规划把数据存放在“/data/git-data”目录下。
root@test1:~/tools# mkdir -pv /data/git-data 
mkdir: 已创建目录 "/data"
mkdir: 已创建目录 "/data/git-data"
root@test1:~# chown -R git.git /data/git-data  #修改创建目录的属主和属组为git用户 
root@test1:~/tools# cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak 
root@test1:~/tools# vim /etc/gitlab/gitlab.rb 
#启用git_data_dirs参数,并修改如下: 
git_data_dirs  路径 "/data/git-data"
 
gitlab-rake cache:clear RAILS_ENV=production
找不到仓库的时候执行
 
 
 
/etc/gitlab/gitlab.rb中描述备份位置,默认备份到/var/opt/gitlab/backups/
 
如果想要备份到/mnt/backups,修改以下配置,去掉注释
gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = “/mnt/backups" #备份目录
gitlab_rails['backup_archive_permissions'] = 0644 #生成的文件权限
gitlab_rails['backup_keep_time'] = 864000  #保留10天
 
修改完成后重新配置:
gitlab-ctl reconfigure
 
 
 
备份命令:
gitlab-rake gitlab:backup:create
 
 
自动备份:
也可以通过crontab使用备份命令实现自动备份:
 
sudo su -
crontab -e
加入以下, 实现每天凌晨2点进行一次自动备份:
 
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
 
 
 
恢复:
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
 
# 从1393513186编号备份中恢复
gitlab-rake gitlab:backup:restore BACKUP=1393513186
 
# 启动Gitlab
sudo gitlab-ctl start
 
 
迁移:
与恢复一样,但是要求两个GitLab版本号一致
 
 
GitLab备份脚本示例:
 
#!/bin/bash
#root user
#crontab -e
#add
#56 00 * * * /home/delta/gitautobackup.sh
#every data 00:56 backup
 
gitBaseBackup="GitLab_Backup"
gitnewBackup=$gitBaseBackup/Backup_new
gitoldBackup=$gitBaseBackup/Backup_old
 
ftpUrl="192.168.10.209"
ftpUser="administrator"
ftpPasswd="Delta123"
 
 
localDir="/home/delta/GitLab_Backup"
localnewBackup=$localDir/Backup_new
localoldBackup=$localDir/Backup_old
 
 
if [ ! -d $localnewBackup ]; then
mkdir -p $localnewBackup
fi
 
if [ ! -d $localoldBackup ]; then
mkdir -p $localoldBackup
fi
 
 
 
if [ -f $localnewBackup/*.tar ]; then
#delete old
echo "delete old backup"
rm -rf $localoldBackup/*
#move new to old
echo "move new to old"
mv $localnewBackup/* $localoldBackup
else
echo "no new backup to old"
fi
 
 
 
 
#git own backup directory
echo "change backup directory owner to git"
chown -R git $localDir
 
#create new git backup
echo "GitLab Backup ..."
gitlab-rake gitlab:backup:create
 
 
#check backup is whether successful
if [ ! -f $localnewBackup/*.tar ]; then
cd $localDir
currentTime=`date " %Y-%m-%d %H:%M:%S"` 
#currentTimeStamp=`date -d "$currentTime" `
echo ${currentTime}" Backup GitLab error! exit!"
echo ${currentTime}" Backup GitLab error! " >>GitLabBackupError.log
 
exit
fi
 
cd $localDir
 
#change owner back to delta
chown -R delta $localDir
 
#delete ftp backup
echo "push to ftp" 
ftp -n<<!
open $ftpUrl
user $ftpUser $ftpPasswd
binary
cd $gitBaseBackup
 
prompt off
 
lcd $localnewBackup/
put *.tar
bye
!
 
echo "backup successful"
exit
 
 
升级:

1. Make a backup (Optional)

If you would like to make a backup before updating, the below command will backup data in /var/opt/gitlab/backups by default.
sudo gitlab-rake gitlab:backup:create STRATEGY=copy

2. Update GitLab

Update to the latest version of GitLab.
sudo yum install -y gitlab-ee
 
 
大版本更新先更新之前最高版本例如:
    10.3.4更新到11.4.5需要先更新10版本最高的10.8.7更新后reconfigure,然后更新11.4.5,在reconfigure,restart
 
1 关闭部分gitlab服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    gitlab-ctl stop nginx
    
    备份:
    /opt/gitlab/bin/gitlab-rake gitlab:backup:create
 
crontab运行的定时备份
50 23 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
 
2 升级
    rpm -Uvh gitlab-ce-10.0.4-ce.0.el7.x86_64.rpm
 
3 重新配置gitlab
 
    gitlab-ctl reconfigure
 
4 重启gitlab
    gitlab-ctl restart
 
 
 
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM