- 配置文件:
/etc/gitlab/gitlab.rb
- 日志文件:
/var/log/gitlab/
- 数据文件:
/var/opt/gitlab/
- 静态文件和网页内容:
/opt/gitlab/embedded/service/gitlab-rails/public/
# 查看当前状态
git status
# 提交本地更改
git commit -m "更新 README 和 WsdemoApplication"
# 拉取远程分支并进行 rebase 不会发生冲突
git pull --rebase origin main
# 推送到远程仓库
git push origin main
gitlab-ctl stop 先停止
yum remove gitlab-ce 删除gitlab
/etc/gitlab 删 GitLab 的配置文件
/opt/gitlab 删 录包含 GitLab 的应用程序文件和依赖项
/var/opt/gitlab 删 GitLab 的数据文件和日志
重新安装 rpm -i gitlab-ce-16.11.2-ce.0.el7.x86_64.rpm 测试该版本稳定
gitlab-ctl reconfigure
如果原先安装过
删除gitlab yum remove gitlab-ce 然后可以安装新的
rpm -qa | grep gitlab 检查安装的版本
rpm -e gitlab-ce-15.9.1-ce.0.el7.x86_64 卸载旧的版本 这样说明没了 不然还有
下载安装包 比较大 有1G多 清华大学开源镜像库
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm
新版本
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-16.11.2-ce.0.el7.x86_64.rpm
或者
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-17.0.0-ce.0.el7.x86_64.rpm
安装必要的依赖
yum install -y curl policycoreutils-python openssh-server
安装 GitLab
rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm
新版本
rpm -i gitlab-ce-16.11.2-ce.0.el7.x86_64.rpm
或者
rpm -i gitlab-ce-17.0.0-ce.0.el7.x86_64.rpm
- 配置文件路径:
/etc/gitlab
- 日志文件路径:
/var/log/gitlab
- 数据文件路径:
/var/opt/gitlab
修改配置文件
vim /etc/gitlab/gitlab.rb
里面这些注释掉的就是它默认配置的
你可以将注释解开 或者额外写
这些配置很多就一个目的 节省资源 gitlab太费了
#禁用内部nginx
nginx['enable'] = false
#这个配置影响电子邮件通知、项目页面链接等 就是说如何可以访问到这个gitlab实例
#external_url 'http://原先的ip方式:9999'
external_url 'https://域名方式'
#设置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#监听方式
gitlab_workhorse['listen_network'] = "tcp"
#实例启动的端口
gitlab_workhorse['listen_addr'] = "127.0.0.1:8033"
git_data_dirs({
"default" => {
"path" => "/usr/local/gitlab/data" # 这里是默认数据储存路径,路径全部可以自定义
},
"alternative" => {
"path" => "/usr/local/gitlab/data/backup" # 这里是备用数据储存路径,为避免磁盘损坏,丢失编码
}
})
# Puma配置
puma['worker_processes'] = 2 # 工作节点数
# Sidekiq配置 该配置17.0.0版本被移除
sidekiq['max_concurrency'] = 8 # 最大并发数
# PostgreSQL配置
postgresql['shared_buffers'] = "128MB" # 缓存大小
postgresql['max_worker_processes'] = 4 # 进程数量
redis['enable'] = true
redis['bind'] = '127.0.0.1' # 绑定到本地IP
redis['port'] = 6378 # 设置内置reids的端口
# 禁用Prometheus监控
prometheus_monitoring['enable'] = false
# 禁用Grafana
grafana['enable'] = false
# 禁用Mattermost
mattermost['enable'] = false
# 禁用GitLab Pages
# 确保注释或删除以下行
# pages_external_url 'http://pages.example.com' gitlb可以配置静态页面生成器
gitlab_pages['enable'] = false
# 配置Gmail作为SMTP服务器(用于发送邮件)
gitlab_rails['smtp_enable'] = true
#gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "xxxxxx@qq.com"
gitlab_rails['smtp_password'] = "xxxxxxxxxx" # 使用生成的应用专用密码
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'
gitlab_rails['gitlab_email_from'] = 'xxxxxxxx@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'Hellojava.org'
# 配置Gmail作为IMAP服务器(用于接收邮件)
gitlab_rails['incoming_email_enabled'] = true
gitlab_rails['incoming_email_address'] = "qq号+%{key}@qq.com" # 使用Gmail的子地址功能
gitlab_rails['incoming_email_email'] = "xxxxxxxx@qq.com"
gitlab_rails['incoming_email_password'] = "xxxxxx" # 使用生成的应用专用密码
gitlab_rails['incoming_email_host'] = "imap.qq.com"
gitlab_rails['incoming_email_port'] = 993
gitlab_rails['incoming_email_ssl'] = true
gitlab_rails['incoming_email_start_tls'] = false
gitlab_rails['incoming_email_mailbox_name'] = "inbox"
gitlab_rails['incoming_email_idle_timeout'] = 60
gitlab_rails['incoming_email_expunge_deleted'] = true
sudo gitlab-rake gitlab:incoming_email:check 验证邮箱配置
保存之后初始化 这个需要点时间 完成之后 gitlab已经启动了
gitlab-ctl reconfigure 第一次是配置完自动启动
第二次配置的话 修改完配置文件 然后 gitlab-ctl reconfigure 就可以了
libarchive
是一个多功能的库,用于读取和写入压缩归档文件。它支持多种归档格式和压缩方法,如 tar、cpio、zip、7-zip、xar、ISO 和更多。libarchive
被广泛用于备份、恢复、文件传输等任务。
安装下
yum install libarchive
重新配置
重启下
gitlab-ctl restart
查看密码
cat /etc/gitlab/initial_root_password
gitlab-ctl restart #重启 GitLab 的所有服务。它先停止所有服务,然后重新启动它们。
其他命令
gitlab-ctl stop # 关闭所有服务
gitlab-ctl restart # 重启所有服务
gitlab-ctl status # 查看所有服务状态
gitlab-ctl help # 帮助
gitlab-ctl reconfigure # 修改配置文件之后,需要重新加载下
gitlab-ctl show-config # 查看所有服务配置文件信息
gitlab-ctl tail # 查看日志
外部nginx配置
#原先ip方式
#server {
# listen 9999;
# client_max_body_size 0;
# server_name 服务器ip;
# server_tokens off;
#access_log /var/log/nginx/gitlab_access.log;
#error_log /var/log/nginx/gitlab_error.log;
# location / {
# root html;
# index index.html index.htm;
# proxy_pass http://127.0.0.1:8033; #这里与前面设置过的端口一致
# proxy_read_timeout 3600;
# proxy_connect_timeout 300;
# proxy_redirect off;
# proxy_http_version 1.1;
# proxy_set_header Host $http_host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Forwarded-Proto http;
# }
# location ~ ^/(assets)/ {
# root /opt/gitlab/embedded/service/gitlab-rails/public;
# gzip_static on; # Serve pre-gzipped version
# expires max;
# add_header Cache-Control public;
# }
#}
server {
listen 80;
server_name 域名;
# 重定向所有 HTTP 请求到 HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name 域名;
ssl_certificate 域名公钥地址;
ssl_certificate_key 域名私钥地址m;
access_log /var/log/nginx/gitlab_access.log;#注意创建文件
error_log /var/log/nginx/gitlab_error.log;
location / {
proxy_pass http://127.0.0.1:8033;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
}
location /assets/ {
root /opt/gitlab/embedded/service/gitlab-rails/public;
gzip_static on; # Serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
}
#用于域名 ssl验证
#server {
# listen 80;
# server_name 域名;
# location / {
# root 访问地址; # 您的 webroot 路径
# }
# # 其他 location / 配置,用于正常的网站内容
#}
修改密码
往下拉 最下面
保存之后去修改密码
设置完成之后 会自动跳到重新登录
然后退出 重进 就看不到 那个提示了
设置SSH密钥
在本地配置 Git 的用户名和邮箱时,用户名和邮箱地址可以随意设置,并不需要与 GitLab 上的一致。不过,建议使用与 GitLab 上一致的用户名和邮箱地址,这样可以更方便地进行管理和识别
# 1. 配置用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your@example.com"
# 2. 生成 SSH 密钥
ssh-keygen -t rsa -C "your@example.com"
# 3. 查看生成的公钥内容
cat ~/.ssh/id_rsa.pub
# 4. 将公钥添加到 GitLab 的 SSH Keys 设置中
# 5. 设置 Git 的 push 默认模式
git config --global push.default simple
复制文件里的内容
如果设置了到期时间 则到期失效 不设置 则永久
添加密钥
关于群组
新建群组
即使自己搭建的 选择公开也会被没有登录的人员获取代码
比如你创建了一个test群组 选择公开 test群组里有个demo项目
那么别人就可以通过 http或者https://域名/群组/项目名访问 无须登录
新建项目
提交项目
# 进入项目内
# 将当前工作目录切换到你的项目目录。请将 /xx/project 替换为你的实际项目路径。
cd /xx/project
# 初始化
# 初始化一个新的 Git 仓库。如果该目录已经是一个 Git 仓库,这条命令不会有任何效果。
#项目下会创建.git文件
git init
# 若init后是master分支,修改本地分支名称
# 如果初始化后默认分支名称是 master,重命名为 main。
# 这种做法是因为现在许多项目使用 main 作为默认分支名称,而不是 master。
git branch -m master main
# 添加代码到缓存区
# 将当前目录下的所有文件添加到 Git 的暂存区,准备进行提交。
# git add . 表示添加当前目录及其子目录中的所有文件。
git add .
# 和远程仓库建立连接
# 将本地仓库与远程仓库连接起来,origin 是远程仓库的默认名称。
# 替换为你的实际远程仓库 URL。 SSH也是可以的
git remote add origin http://121.40.45.228:8859/gitlab-instance-c82aafb6/k8s-cicd-demo.git
# 确认本地分支名称为 main。如果已经是 main,这条命令没有影响。
git branch -M main
# 提交更改到本地仓库,其中 'xx' 是提交信息,
# 通常应替换为描述你所做更改的实际信息。
git commit -m 'xx'
# 推送代码
# 从远程仓库 origin 的 main 分支拉取最新的代码并进行变基操作。
# 这有助于保持本地提交记录的整洁。
git pull --rebase origin main
# 将本地的 main 分支强制推送到远程仓库的 main 分支。
# -u 选项会设置本地分支与远程分支的跟踪关系,
# -f 选项表示强制推送,可能会覆盖远程分支上的更改,使用时需谨慎。
git push -uf origin main
git pull --rebase origin main 拉取远程main分支的代码 第一次要求输入账密
最后推送
git push -uf origin main
有些文件不想上传
不过git上的没排除....... 可以点进去手动删除
拉取项目
git clone git地址
添加账户
点击连接
管理员可以编辑
新创建的用户登录是这样的
给新用户拉项目 用root
点击一个项目