zoukankan      html  css  js  c++  java
  • gitlab的安装和使用

    gitlab安装

    # 安装gitlab服务所需依赖包
    yum install -y curl postfix policycoreutils-python openssh-server wget
    # 下载gitlab服务、安装gitlab服务
    在清华源下载gitlab包,地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ # 根据系统发行版、版本选择,本例使用11.11.8版本的gitlab社区版(gitlab-ce)
    yum install -y localinstall gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm
    # 配置gitlab服务、访问域名以及邮箱
    vim /etc/gitlab/gitlab.rb
    	external_url 'http://gitlab.clobotics.com'
    #初始化gitlab服务、启动gitlab服务
    gitlab-ctl reconfigure  # 初始化
    gitlab-ctl start
    # 访问gitlab服务、以及gitlab邮箱测试
    	# 配置域名
    	vim /etc/hosts
    	192.168.1.4 gitlab.clobotics.com
    	
    	# 配置邮箱
    	gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = '1101172195@qq.com' # 发件邮箱
        gitlab_rails['gitlab_email_display_name'] = 'Clobotics' # 发件人显示名称
    
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = 'smtp.qq.com'
        gitlab_rails['smtp_port'] = 465
        gitlab_rails['smtp_user_name'] = '1101172195@qq.com' # 发件人邮箱账户
        gitlab_rails['smtp_password'] = 'kgelouzhdqfwifdc' # 发件人邮箱客户端授权码
        gitlab_rails['smtp_domain'] = 'qq.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_enable_starttls_auto'] = true
        gitlab_rails['smtp_tls'] = true
        # user['git_user_email'] = '1101172195@qq.com'
        
        # 登录qq邮箱:"设置-->账户-->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务",开启:
        	POP3/SMTP服务
        	IMAP/SMTP服务 
    		Exchange服务
    		
    		并获取授权码,添加到/etc/gitlab/gitlab.rb的 gitlab_rails['smtp_password']
    		
    
    其它命令:
    	gitlab-ctl status # 查看启动的进程
    	gitlab-ctl start
    	gitlab-ctl restart
    	gitlab-ctl stop
    

    汉化(测试此版本的汉化与11.11.8版本的gitlab结合有点问题)

    https://gitlab.com/xhang/gitlab
    
    git clone -b 12-3-stable-zh https://gitlab.com/xhang/gitlab.git
    cat /gitlab/VERSION
    
    # 停止gitlab,进行中文汉化
    	# 停止gitlab服务
    	gitlab-ctl stop
    	中文版覆盖英文版
    	cp -r gitlab/* /opt/gitlab/embedded/service/gitlab-rails/  # 出现log、tmp目录存在的错误可以忽略
    
    	# 启动gitlab,验证汉化结果
    	gitlab-ctl start
    
    #如果有新成员需要加入该项目该怎么办?
        1.先给新成员创建用户;
        2.将成员加入组,此时该用户就能看到对应的项目;
        3.添加公钥,然后使用git clone测试是否能拉取代码;
        4.最后更新内容,测试能否进行任务提交。
    

    gitlab数据备份和恢复、迁移和升级

    1.停止gitlab数据服务

    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    

    2.手动备份数据(备份的是gitlab中的项目)

    vim /etc/gitlab/gitlab.rb
    	gitlab_rails['manage_backup_path'] = true
    	# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" # 默认备份的路径
    	gitlab_rails['backup_path'] = /data/gitlab/backups
    	gitlab_rails['backup_keep_time'] = 604800  # 默认的备份保留时间
    gitlab-ctl reconfigure
    
    # 手动执行备份命令,会将备份的结果存至/data/gitlab/backups
    gitlab-rake gitlab:backup:create # 在任意目录即可备份当前gitlab数据
    gitlab-ctl start # 备份完成后启动gitlab
    
    数据被备份的位置: /var/opt/gitlab/backups/
    
    # 设定一个定时任务,每天晚上的凌晨00:00备份
    crontab -e
    00 02 * * * gitlab-rake gitlab:backup:create &>/dev/null
    

    3.gitlab恢复数据

    /var/opt/gitlab/backups/ # gitlab数据备份目录
    /var/opt/gitlab/nginx/conf # nginx配置文件
    /etc/gitlab/gitlab.rb # gitlab配置文件
    /etc/gitlab/gitlab-secrets.json # key文件
    
    1.停止数据写入服务:
    	gitlab-ctl stop unicorn
    	gitlab-ctl stop sidekiq
    
    2.通过gitlab-rake命令进行恢复,恢复时需要指定此前备份的名称。(但不需要些名称的.tar后缀):
    	gitlab-rake gitlab:backup:restore BACKUP=1632798432_2021_09_28_11.11.8
    
    3.为了保险起见,重启gitlab,检测是否恢复。
    	gitlab-ctl start
    

    4.gitlab迁移

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

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

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

    # 将旧机器上的备份文件同步过来后的操作步骤
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekip
    chmod 777 /var/opt/gitlab/backups/1632798432_2021_09_28_11.11.8_gitlab_backup.tar
    gitlab-rake gitlab:backup:restore BACKUP=1632798432_2021_09_28_11.11.8
    

    5.gitlab升级

    1.关闭gitlab服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    gitlab-ctl stop nginx
    
    2.备份gitlab
    gitlab-rake gitlab gitlab:backup:create
    
    3.下载gitlab的RPM包并进行升级
    # 直接安装高版本
    yum install -y gitlab-ce-version-0.el7.x86_64
    # 报错
    Error executing action `run` on reesource 'ruby_block[directory resource:/var/opt/gitlab/git-data/repositories]'
    # 解决办法:
    chmod 2770 /var/opt/gitlab/git-data/repositories
    
    4.启动并检查gitlab版本查看
    gitlab-ctl reconfigure
    gitlab-ctl restart
    head -1 /opt/gitlab/version-manifest.txt
    

    gitlab更改默认nginx

    更换gitlab自带Nginx, 使用自行安装的Nginx来管理gitlab服务。

    1.编辑gitlab配置文件禁用自带Nignx服务器
    vi /etc/gitlab/gitlab.rb
    ...
    #设置nginx为false,关闭自带Nginx
    nginx['enable'] = false
    ...
    
    2.检查默认nginx配置文件,并迁移至新Nginx服务
    /var/opt/gitlab/nginx/conf/nginx.conf          #nginx配置文件,包含gitlab-http.conf文件
    /var/opt/gitlab/nginx/conf/gitlab-http.conf    #gitlab核心nginx配置文件
    
    
    3.重启nginx、gitlab服务
    gitlab-ctl reconfigure
    systemctl start nginx
    
    
    访问报502。原因是nginx用户无法访问gitlab用户的socket文件。
    重启gitlab需要重新授权
    chmod -R o+x /var/opt/gitlab/gitlab-rails
    
  • 相关阅读:
    App如何选择移动广告平台,开发者2
    mouseover与mouseenter与mousemove差额mouseout与mouseleave差额
    JFinal 的源代码超具体的分析DB+ActiveRecord
    Vim经常使用技巧总结1
    2015第4周四网摘
    Java任务调度
    2015第4周二网摘
    2015第4周一
    2015第三周日
    转SpringSided代码规范遵循
  • 原文地址:https://www.cnblogs.com/zhangchaocoming/p/15403986.html
Copyright © 2011-2022 走看看