赞
踩
设置gitlab的yum源(使用清华镜像源安装GitLab)
gitlab-ce是它的社区版,gitlab-ee是企业版,是收费的。
在 /etc/yum.repos.d/ 下新建 gitlab-ce.repo,写入如下内容:
cd /etc/yum.repos.d/
vim gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
yum clean all && yum makecache
安装Gitlab
# 直接安装最新版
yum install -y gitlab-ce
出现下面的图标,安装成功
# 如果要安装指定的版本,在后面填上版本号即可
yum install -y gitlab-ce-×××
# 如果安装时出现gpgkey验证错误,只需在安装时明确指明不进行gpgkey验证
yum install gitlab-ce -y --nogpgcheck
关闭防火墙,开机自关闭
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
安装完gitlab需要修改配置文件,并加载
vim /etc/gitlab/gitlab.rb 进入配置文件
找到下面一行,修改ip
修改好配置文件后,要使用 gitlab-ctl reconfigure 命令重载一下配置文件,否则不生效即可启动Gitlab。注意,启动过程较长,需要耐心等待。
查看Gitlab的状态,执行命令
gitlab-ctl status
gitlab组件日志路径:/var/log/gitlab
gitlab配置路径:/etc/gitlab/ 路径下有gitlab.rb配置文件
应用代码和组件依赖程序:/opt/gitlab
各个组件存储路径: /var/opt/gitlab/
仓库默认存储路径 /var/opt/gitlab/git-data/repositories
版本文件备份路径:/var/opt/gitlab/backups/
nginx安装路径:/var/opt/gitlab/nginx/
redis安装路径:/var/opt/gitlab/redis
#查看服务状态 gitlab-ctl status 使用控制台实时查看日志 # 查看所有的logs; 按 Ctrl-C 退出 gitlab-ctl tail # 拉取/var/log/gitlab下子目录的日志 gitlab-ctl tail gitlab-rails # 拉取某个指定的日志文件 gitlab-ctl tail nginx/gitlab_error.log #启动关闭gitlab gitlab-ctl start gitlab-ctl stop #停止 gitlab-ctl status #查看状态 gitlab-ctl restart #重启 gitlab-ctl reconfigure #更新配置文件 gitlab-ctl help #帮助 gitlab-rake gitlab:check SANITIZE=true --trace 检查gitlab #gitlab 默认的日志文件存放在/var/log/gitlab 目录下 gitlab-ctl tail #查看所有日志 #禁止 Gitlab 开机自启动 systemctl disable gitlab-runsvdir.service #启用 Gitlab 开机自启动 systemctl enable gitlab-runsvdir.service
打开浏览器输入gitlab服务器地址,注册用户,如下图
注册用户
完成后想登录http://192.168.40.185:9091 需要账号和密码登录,注册一个后登录报错误,需要管理员账号初始化
切换到命令运行的目录 cd /opt/gitlab/bin/
执行如下命令:gitlab-rails console -e production 进行初始化密码
在irb(main):001:0> 后面通过 u=User.where(id:1).first 来查找与切换账号(User.all 可以查看所有用户)
gitlab-rails console -e production
u=User.where(id:1).first
u.password='because5210.0'
u.password_confirmation='because5210.0'
u.save!
exit
出现true说明设置成功!
此时就可以用root/because5210.0来登录页面
成功登录root账户
设置中文
root账号登陆
再次登录,登陆成功
在企业生产环境中,我们一般由项目负责人负责创建用户并分配权限,一般禁止员工私自注册用户,以防给项目开发工作带来安全性上的风险。为了避免员工自动注册,我们一般会禁止Gitlab的自动注册功能。在Gitlab的主菜单上,选择Menu——Admin,如下所示:
点击下方保存配置,在页面上就无法自动注册了。
Gitlab的登录免密验证,配置完成后,可以使得我们的Gitlab自动执行Git命令而无需登录,对于脚本的编写以及其他项目**(如Jenkins)的运用这一步是必须的**。
首先,在想要进行验证的设备上执行命令:
ssh-keygen
[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:9s9C6howGF17soK592sDESNOydaJf88Ee/csxOpkoro root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | . + .. | | B.=... | | +.o.ooo.. | | .=o o+o + | | + +o.=S+ o | | ..+..*.o o | | . .o.= o.. | | ...o.o .o | | Eo .+=. .o | +----[SHA256]-----+ [root@localhost ~]#
完成上述配置后,可以生成本设备的公私钥对,执行命令:
可以查看本设备的公钥,如下所示:
[root@localhost ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeW8qTs//BIuY8Fb9MM1qxFDFpzUygfOxhgDS9ngv92AXBVEufIeoOWnV3IFO2BHD8GYdMzi5USyQyVNA6fQ3KxCgoHMk5d9Tb4ZGdtBqNkJQ8aJdNEfC9mAtYnlJXeF9+DYdcRhRD+i6RoDkG12+fHcwImgBOnnz0MgWus+IT4rE8p6CL4oabdZ+R4Oh9fHWxJ7QKUrid9C65WC0YpW0QP5ewr63eNTJRHqRv/Vh+B1cvNZqk1p/x73K8UMvEK8ff5QBC6eujmBZckRANmMSAGnkJMHQSFFTfh1uFK5spGD7E0Etc7+cyogKhWrI7O5P/XfGEraPb+QBxuFnUVRxN root@localhost.localdomain
我们将该公钥复制下来,之后,我们打开Gitlab,点击右上角的用户图标,在弹出的选择框中选择Edit Profile,然后点击左边的SSH Keys,如下所示:
添加密钥添加完成后的页面如下:
Gitlab上创建项目。由于新项目的创建必须依赖于一个组,因此,我们在创建项目前,先创建组。
进入Gitlab主页面后,点击Overview中的Groups选项,然后点击右边的New group,选择新创建一个组,如下所示:
输入组的名称和描述,组的URL会随着组名称的输入而自动出现,在组的权限处,我们选择Private,配置完成后如下所示
接下来,我们点击最下方的Create Group,就可以完成组的创建了,如下所示:
接下来,我们来创建项目。项目的创建与组的创建过程类似,都是输入项目名称,选择组的名称,项目描述以及权限等,配置好的项目如下所示:
配置完成后,就可以创建项目了。
创建项目后,Gitlab会自动创建一个README.md的文件,我们可以在线对该文件机型编辑,如下所示:
前提:使用root管理员账号密码登陆GitLab
初始密码由管理员设置,
当用户第一次登录时,由用户进行修改密码
登陆邮箱==》设置==》账户==》POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务==》开启SMTP服务==》接收验证
修改gitlab配置
Vim /etc/gitlab/gitlab.rb
#更新配置文件
gitlab-ctl reconfigure
gitlab-ctl restart
Notify.test_email('收件人邮箱', '邮件标题', '邮件正文').deliver_now
Notify.test_email('1657xxxx@qq.com', 'GitLab email', 'Hellow world').deliver_now
执行 gitlab-rails console进入控制台交互界面, 然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。
看下图操作即可
设置完的效果图
第一次使用该项目地址的话,需要创建新版本库,首先从主项目上fork一个自己的项目。从自己项目上获取clone(克隆)链接地址。在想要存放的目录下执行
git clone http://192.168.40.185:9091/test/git_test.git
查看日志
查看当前所在的分支
git branch 查看分支
git branch deve 创建分支,deve为新的分支名,可改
git checkout deve 进入到刚刚创建的分支
切换分支
查看状态(跟源文件有出入的文件)
git status
git push -u origin deve 提交到新分支中
添加新分支成功
切换到主分支
git checkout main
首次使用Git的话,需要设置全局的用户名和邮箱设置,如下图所示:
在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。
git config --global user.name "root"
git config --global user.email "admin@example.com"
# 查看配置
git config --list
git init 初始化git
git remote add origin http://192.168.40.185:9091/test/git_test.git 将本地git和服务器上的连接
git add 1.txt 添加要提交的本地项目 (.代表所有 可用文件名代替. 上传某个文件)
git commit -m "测试代码" 提交到本地仓库
git push -u origin main 将项目推送到gitlab端
出现报错:
fatal: 远程 origin 已经存在
解决:
#删除远程配置 git remote rm origin
#重新添加 git remote add origin http://192.168.58.10:9091/test/git_test.git
这样就可以了,刷新gitlab页面就可以看到上传的项目了。
git status #上次提交后是否对文件再做了修改项目 git add . #添加所有的变动 git checkout -b 文件夹名称 #创建本地分支并切换分支 git checkout -b pr/ffr git commit -m “描述” #提交修改 git commit -m “修改什么” git merge origin/develop “本地分支” #合并origin/develop上别人所做的修改到自己的本地分支 git merge origin/develop pr/ffr git push origin “本地分支” #推送本地分支到远程,并建立联系 git push origin pr/ffr git rebase -i 编号 #合并多次提交,将前几次的提交合并为一次 git checkout 分支名 #切换分支 git checkout pr/FFR-color git cherckout develop git pull #更新当前分支的状态 git branch #列出本地分支 git branch -a #列出本地分支与远程分支 git branch -D 分支名 #删除分支(目前仅用于删除本地分支) git remote -v #可以查看远程仓库信息 git branch 分支名 #仅仅创建 一个新分支,并不会自动切换到新分支中去 git rebase --abort #退出git rebase git reset 提交编号 #git rebase -i 提交编号,之后出现错误,可以回退到之前未合并时的日志状态 git commit --amend -m “描述” #修改上一次的提交的描述 git stash #暂存上一次的修改,准备切换到其他的分支 git stash pop #还原上一次的修改,将暂存的修改加入到新的分支
命令 | 说明 |
---|---|
git add | 添加文件到暂存区 |
git status | 查看仓库当前的状态,显示有变化的文件 |
git diff | 比较文件的不同,即暂存区和工作区的差异 |
git commit | 提交暂存区到本地仓库 |
git reset | 回退版本 |
git rm | 删除工作区文件 |
git mv | 移动或重命名工作区文件 |
创建备份文件
使用一条命令即可创建完整的Gitlab备份。
gitlab-rake gitlab:backup:create
使用命令会在/var/opt/gitlab/backups目录下创建一个压缩包,这个压缩包就是Gitlab整个的完整部分。
生成完后,/var/opt/gitlab/backups目录
创建一个名称类似为1715127202_2024_05_08_16.11.1_gitlab_backup.tar的压缩包
其中
/etc/gitlab/gitlab.rb 配置文件须备份
/var/opt/gitlab/nginx/conf nginx配置文件
/etc/postfix/main.cfpostfix 邮件配置备份
也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录
修改为你想存放备份的目录即可
gitlab_rails['backup_path'] = "/home/gitlab-backup"
#指定备份后数据存放的路径、权限、时间配置
gitlab_rails['manage_backup_path'] = true 开启备份功能
gitlab_rails['backup_path'] = "/home/gitlab-backup" 指定备份的路径
gitlab_rails['backup_archive_permissions'] = 0644 备份文件的权限
gitlab_rails['backup_keep_time'] = 604800 备份保留时间
修改完成之后使用下面命令重载配置文件即可.
gitlab-ctl reconfigure
创建备份目录并授权
chown -R git:git /home/gitlab-backup
使用命令创建完整的Gitlab备份
这个压缩包就是gitlab的整个完整部分
定时自动备份
实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务
#输入命令crontab -e
crontab -e
#输入相应的任务
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出
#查看周期性计划任务
crontab -l
#!/bin/bash
a="/home/gitlab-backup"
back="/home/git_back"
date="$(date +%Y-%m-%d)"
logfile=$back/$date.log
gitlab-rake gitlab:backup:create > /dev/null
b=`ls $a |wc -l`
if [ $b -eq 0 ];then
echo "$date.tar 备份失败" >> $logfile
elif [ $b -gt 0 ];then
echo " $date.tar 备份成功" >> $logfile
fi
mv $a/* $back/$date.tar
将脚本加入执行计划
先清空gitlab-backup下的文件进行测试
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。