gitlab的安装和使用(二)

使用过程中遇到的问题:

  1. 数据盘不够用了 解决办法: gitlab数据本地目录迁移 gitlab代码数据默认目录:/var/opt/gitlab/git-data/repositories 在新数据盘data目录下新建gitlab-data目录,把旧数据拷贝过去再重新启动gitlab,操作如下: 1. 停止数据连接服务 [root@gitserver git-data]# gitlab-ctl stop unicorn
    ok: down: unicorn: 0s, normally up [root@gitserver git-data]# gitlab-ctl stop sidekiq
    ok: down: sidekiq: 0s, normally up 2. 数据迁移 [root@gitserver git-data]# cp -rp /var/opt/gitlab/git-data/repositories/ /data/gitlab-data/ 3. 修改gitlab配置文件 [root@gitserver git-data]# vi /etc/gitlab/gitlab.rb git_data_dir "/data/gitlab-data" 4. 启动gitlab gitlab-ctl reconfigure 或者gitlab-ctl start

  2. 修改主机名为IP和端口号 cd /opt/gitlab/embedded/service/gitlab-rails/config
    vi gitlab.yml host: #自己的IP port: #自己的端口号 然后用命令 gitlab-ctl reconfigure 重启gitlab

  3. 忘记root密码 在gitlab登录窗口,如果密码忘记了登录不进入,可以先尝试点击登录框下方的Forgot your password来通过邮箱的方式找回,如果邮箱不可以使用了,则看下面的强制找回方法

     	1.连接到gitlab安装的服务器上,然后输入su - git 切换到git用户下操作,切换之后默认的当前目录就可以ls查看到gitlab的命令文件
     	[root@localhost ~]# su - git
     	2. 输入gitlab-rails console production进入gitlab控制台,只有进入到控制台之后,才可以输入gitlab的查询语句,才会被解析
     	3. 输入user = User.where(id:1).first查询id为1的用户对象,因为超级管理员用户默认都是1,也可以更加username来查询用户对象,管理员账户对象查询到之后,可以从返回的信息中看到admin为true,username为root
     	4.输入user.password='密码',密码位置填写您新的密码即可。
     	5.输入user.save!保存用户对象
     	6.(设置之后直接登录可能登不进去,但是稍等一下就能登陆了,所以如果设置完还是不行就稍等一下再试)
     	操作如下
     	-sh-4.2$ gitlab-rails console production
     	Loading production environment (Rails 4.2.7.1)
     	irb(main):001:0> 
     	irb(main):002:0* user = User.where(id:1).first 回车
     	=> #<User id: 1, email: "admin@example.com", created_at: ...
     	...
     	, authorized_projects_populated: true>
     	irb(main):003:0> 
     	irb(main):004:0* user.password='newpasswd'
     	=> "newpasswd"
     	irb(main):005:0> 
     	irb(main):006:0* user.save!
     	Enqueued ActionMailer::DeliveryJob (Job ID:... "password_change", "deliver_now", gid://gitlab/User/1
     	=> true
     	irb(main):007:0> quit
    
  4. 修改时区 vi /etc/gitlab/gitlab.rb #gitlab_rails['time_zone'] = 'UTC' #设置为 亚洲/上海 东八区时间 gitlab_rails['time_zone'] = 'Asia/Shanghai'

  5. 默认的备份策略是使用Linux命令tar和gzip从各自的数据位置备份基本的数据流。 这样可以满足大多数的备份要求,但是在数据迅速的变化时会引起问题。 当tar读取数据正在改变的文件时,错误 ‘file changed as we read it ‘可能会出现,并且会导致备份进程失败。 为了解决这个问题,8.17 引入一个新的备份策略:copy。 这个策略会在tar和gzip调用前将数据文件拷贝到一个临时的路径,避免出错。 这样的副作用是备份程序会占用1倍的磁盘空间。 备份程序会在每次备份前清空临时文件以避免重复,但是这对于较大的安装系统是一个需要考虑的改变。 这就是为什么copy策略为什么在8.17不是默认的备份策略。 如果需要使用copy策略来替换默认的数据流备份策略,在备份命令指定参数 STRATEGY=copy。 例如: sudo gitlab-rake gitlab:backup:create STRATEGY=copy