GitLab服务器搭建
1.概述
搭建与使用过微软的AzureDevops之后,我还尝试了Jenkins,现在准备尝试GitLab。AzureDevops三个月的试用期,之后就要收费了,价格也是很高的。Jenkins虽然功能非常的强大,而且免费,但是操作起来还是有些麻烦,特别是下载安装插件,我都不知道我自己那里有问题,而且,明明设置了清华的镜像,还是下载很慢,暂时就搁置了。最后,是GitLab,最近刚刚听说,也准备要上手了。
GitLab分为社区版和企业版,推荐安装企业版,即使不想花钱,但是依然可以在企业版的基础上使用社区版的功能,如果哪一天想要贡献点力量或者企业做大了,稍微花点钱买服务,也不是不用费什么事,直接就申请开通企业账户就行了,省事。
我一直想找到官方网站的安装指导,在首页上点击try gitlab free,结果总会跳到注册登录页面
最后是在Resources条目下找到GitLab Installation的,我打开的方式不对。
【1】.gitlab 社区版或企业版 的区别
【2】.GitLab 搭建自己的私有 GitHub
【3】.Install GitLab Runner on Windows
【4】.Manually Downloading and Installing a GitLab Package
【5】.关于极狐GitLab版本说明 GitLab 有三个版本:企业版(EE)、社区版(CE)和极狐版(JH),极狐GitLab(JH)是建立在社区版之上的企业级中国发行版,在此基础上增加了额外的特性和功能。
【6】.2024 年适合 DevOps 团队的 5 款最佳 CI/CD 工具 1.Bitbucket;2.Bamboo;3.Jira Software;4.Confluence;5.Bitbucket Pipelines
2.安装依赖
1 | sudo yum install -y curl policycoreutils-python openssh-server |
1.在CentOS 7 1804 中 安装 使用 GitLab 11.4.3-ee (企业版、社区版最新版、或任意版本)
2.CentOS 7安装gitlab-ee企业版
3.CentOS7安装GitLab
3.安装邮件服务器
根据自己的需求,是否安装邮件服务器,可以发送邮件通知给个人。
1 | sudo yum install postfix |
4.添加GitLab仓库
1 | curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash |
【1】.GitLab服务器IP地址设置
【2】.Gitlab 服务器url修改后,项目path的修改
【3】.学习笔记:记录UOS Server V20 1070e安装极狐GitLab过程 UOS不能用以上办法配置,需要手工配置yum源。和Centos一样,UOS的e版本也是用yum工具安装软件包的,在/etc/yum.repo.d/目录中创建gitlab-jh.repo文件
5.安装
1 | EXTERNAL_URL="http://192.168.1.60" yum install -y gitlab-ee |
没有问题的化,结果安装成功。
如果yum安装不成功的话,可能需要 手工下载 安装,GitLab EE 仓库,可以选择自己需要的版本。
6.系统配置
(1) 安装成功后,就可以在浏览器中输入EXTERNAL_URL中填入的url地址,进入系统了。 Use the default account’s username root to login.使用默认的账户root进行登录,他会让你修改密码,你可以直接输入新的密码,确认就可以了。
(2) 设置了root用户的密码之后,就可以直接使用用户名root和刚刚设置的密码进行登录了。
(3) 创建用户
这些简单的操作其实也没必要花费经历去做了,自己摸索,看看界面都会的吧。
上面这张图是我已经使用管理员账户登入系统,并创建了一个用户和一个项目之后的控制面板,如果是一个刚安装的gitlab,首页不是长这样的。
(4) 端口配置
gitlab的配置文件在:/etc/gitlab/gitlab.rb,
1 | # 为服务器对外的地址或域 |
(5)获取登陆密码
1 | # Linux安装包方式: |
(6)修改git ssh端口
默认的gitlab ssh端口是22,但是如果直接使用的话,会出现问题,特别是修改了服务器的ssh端口号:ssh: connect to host 192.168.1.8 port 22: Connection refused。修改了/etc/gitlab/gitlab.rb中的
1 | gitlab_rails['gitlab_shell_ssh_port']= 10014 |
修改仓库地址:
1 | git remote add gitlab ssh://git@192.168.1.8:10014/zjhjkj/drone-cloud.git |
【1】.gitlab 修改访问端口 nginx[‘listen_port’] = 8000
【2】.CentOS7.9安装gitlab最新版本,并修改端口配置邮件-记录一下 nginx[‘listen_port’] = 8081
【3】.linux安装gitlab并修改gitlab默认端口号 这里提到了 unicorn[‘port’],但是我好像没有找到
【4】.Changing unicorn port in /etc/gitlab/gitlab.rb does not work
【5】.gitlab修改ssh端口 这里是修改 gitlab 的ssh端口
【6】.git 如何指定ssh端口 这里修改了 ~/.ssh/config 配置文件
【7】.git拉取和推送如何指定远程服务器的ssh端口 git remote set-url origin ssh://git@11.22.33.44:9999/home/git/work.git
【8】.gitlab修改ssh端口 这里修改了端口号,给了截图
【9】.从 Unicorn 切换到 Puma 从 13.0 版本开始,Puma 是默认的 Web 服务器,并且 Unicorn 已被禁用。 在 14.0 版本中,Unicorn 已从 Linux 包中删除,不再受支持
【10】.软件包默认值 除非在 /etc/gitlab/gitlab.rb 文件中指定配置,软件包将采用如下所述的默认值
7.编辑CI/CD
使用GitLab有一点不好的地方,就是如果要创建管道,也就是使用pipeline,需要自己手动写一些任务和阶段,而像AzureDevops发扬了其一贯的作风,虽然也提供了yml方式的配置文件,但是也提供了可视化配置页面。
GitLab提供持续集成服务。如果添加一个.gitlab-ci.yml文件到项目根目录,并配置GitLab项目使用某个Runner,然后每一次提交或者是推送都会触发CI pipeline.
8.其他操作
可以在命令行中直接输入:gitlab-ctl命令,可以查询基本的命令有哪些。
1 | ## 启动 |
9.卸载
1 | ## 停止 |
1.彻底完美卸载Gitlab
问题
1.获取 GPG 密钥失败
[Errno 12] Timeout on https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey: (28, ‘Resolving timed out after 30547 milliseconds’)
也没有解决,只是又重新执行了:yum install,把程序安装了一遍,结果问题就解决了。
2.ssh连接很慢GSS failure解决办法
编辑/etc/ssh/ssh_config,找到:GSSAPIAuthentication no 这一行,去掉前面的#符号。(不起作用)
3.git clone 报错:git-upload-pack: command not found
(1) 查找gitlab安装的git目录
1 | find / -name git |
然后设置软连接:
1 | ln -s /opt/gitlab/embedded/libexec/git-core/git/git-upload-pack /usr/bin/git-upload-pack |
4.安装时卡住
卸载了gitlab之后,安装时总是卡在这里。
(1) 第一次尝试
1 | rm -f /var/lib/rpm/__db* |
(2) 第二次找到了一篇文章参考文章3,介绍的方法
1、没关系上趟厕所多等一会(10分钟)
2、按住CTRL+C强制结束
3、运行:sudo systemctl restart gitlab-runsvdir
4、再次执行:sudo gitlab-ctl reconfigure
好像出现了错误:STDERR: sysctl: cannot open “/etc/sysctl.d/90-omnibus-gitlab-kernel.sem.conf”: No such file or directory
(3) 虽然不知道这两句化的含义但是还是照着做了。
1 | touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.sem.conf |
1.yum无响应问题
2.yum卡住/rpm -qa卡住的解决方法
3.CentOs 7 安装 GitLab、完全卸载GitLab (这个比较实用)
4.STDERR: sysctl: cannot open “/etc/sysctl.d/90-omnibus-gitlab-kernel.sem.conf”: No such file or directory
5.Installing problem
5.占用资源过高
自从装了 gitlab 之后,服务器的cpu就一直在满载状态,导致了我很多其他的服务基本上无法使用了。
【解决方案】
后来还是通过修改配置文件解决了这个东西。
1 | vim /etc/gitlab/gitlab.rb |
【1】.2024-05-31: KAS behaving abnormally, huge CPU usage
【2】.gitlab部署+cpu使用过高调优 这里使用了docker部署的gitlab仓库,系统是2核4G的。主要调整的是限制内存的使用,调整postgresql的缓存以及进程,关闭prometheus监控。
【3】.记录gitlab仓库占用CPU和内存过高问题解决 2核16G云服务器上架着的gitlab总是占用着80%以上的CPU资源, 并且内存占用量总是会缓慢的升高, 每天都要重启服务很烦躁, 今天找到了大神的配置, 效果显著
【4】.解决 GitLab CPU 占用偏高 于是接下来彻底关闭 Prometheus
【5】.GitLab内存占用过高的解决方法 postgresql[‘shared_buffers’] //减少数据库缓存(默认为256MB 改为128MB),postgresql[‘max_worker_processes’] //减少数据库并发数(默认为8 改为4),sidekiq[‘concurrency’] //减少sidekiq并发数(默认为25 改为 15)