一、gitlab安装
直接从官网上下载
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm,没有安装wget 需要先安装wget
rpm -ivh gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
#使用rpma安装安装包时,会出现
#error: Failed dependencies:
#意思是 失败的依赖
# 解决方法:
#在安装包后面加两个参数,如
#rpm -ivh 包名 --nodeps --force
配置gitlib的IP和端口
# IP和端口修改配置文件:
vi /etc/gitlab/gitlab.rb
重置并启动GitLab
配置:gitlab-ctl reconfigure
启动:GitLab:gitlab-ctl restart
二、修改gitlab存储位置
- # 先停止 gitlab
gitlab-ctl stop
- gitlab的默认存储目录是 /var/opt/gitlab/git-data/
- 创建新存储目录 mkdir -p /data/gitlab-data
- 修改配置文件( git_data_dirs 对应的配置)
- 将旧的gitlab数据迁移到新目录:
rsync -av /var/opt/gitlab/git-data/repositories /data/gitlab-data/
- 重新加载配置:gitlab-ctl repositories
- 启动gitlab:gitlab-ctl start
三、gitlab服务器/数据迁移
本章介绍gitlab服务器迁移,需要把数据一起迁移到新服务器
新服务器注意需要搭建的版本和旧服务同一版本,版本不通可能会有兼容性问题
gitlab版本号查看:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
1、新服务安装gitlab
需要安装的版本和旧服务器保持一致
安装依赖
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld安装gitlab
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-***.rpm
rpm -i gitlab-ce-***.rpm
gitlab-ce-***.rpm 是本次安装的版本号,根据实际情况修改
gitlab下载官方地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
2、旧服务器数据备份
# 本次操作在旧服务器
gitlab-rake gitlab:backup:create
# 默认将会在 /var/opt/gitlab/backups/ 目录下生成备份文件
# 如果没有生成,"gitlab-ctl show-config | grep backup_path"查看生成备份文件路径
# 备份原服务器上的配置文件:
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
# 需要把生成的备份数据和上面两份配置文件拷贝到新服务器
3、新服务器恢复数据、替换配置文件
# 本次操作在新服务器:
# 先恢复两份配置文件:
mv ./gitlab.rb /etc/gitlab/
mv ./gitlab-secrets.json /etc/gitlab/# 配置文件生效:
sudo gitlab-ctl reconfigure# 恢复数据文件
# 恢复数据到备份目录,默认是/var/opt/gitlab/backups# 如果有修改过默认路径,可以查看 "gitlab-ctl show-config | grep backup_path"
mv ./1637517122_2024_12_21_10.5.4_gitlab_backup.tar /var/opt/gitlab/backups/
# 如果文件没有其他用户读权限:
gitlab-rake gitlab:backup:restore BACKUP=1637417712_2021_11_20_10.5.4
gitlab-ctl reconfigure
4、注意,恢复备份文件可能会报错:
Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension btree_gist
ERROR: must be owner of extension pg_trgm
解决办法:
1、修改postgresql相关配置
# 修改以下配置文件,修改端口监听地址,默认监控localhost,* 代表all
$ vim /var/opt/gitlab/postgresql/data/postgresql.conf
listen_addresses = '*'
# 以下配置文件新增以下两行
$ vim /var/opt/gitlab/postgresql/data/pg_hba.conf
local all all trust
host all all 127.0.0.1/32 trust
2、重启gitlab服务
gitlab-ctl restart
3、修改数据
$ su - gitlab-psql
$ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;
ALTER ROLE
gitlabhq_production=# \q
$ exit
4、重新执行数据恢复命令后正常
四、使用 rails 控制台修改root密码
如果知道用户名、用户 ID 或电子邮件地址,可以使用 Rails 控制台重置他们的密码:
1、打开 Rails 控制台。
sudo gitlab-rails console
2、通过用户名找到用户:
user = User.find_by_username 'exampleuser'
3、通过用户 ID 找到用户(root 用户 ID 一般是1):
user = User.find(123)
4、通过电子邮件地址找到用户:
user = User.find_by(email: 'user@example.com')
5、通过设置 user.password 和 user.password_confirmation 的值来重置密码。例如,要设置一个新的随机密码:
new_password = ::User.random_password
user.password = new_password
user.password_confirmation = new_password
6、保存更改
user.save!
7、推出控制台
exit
# 例如修改root密码:
进入控制台:
gitlab-rails console
在控制台执行:
user = User.find_by_username('root')
user.password = 'new_password'
user.password_confirmation = 'new_password'
user.save!
推出控制台:
exit