背景

使用GitLab的时候,开发者是可以随意设置其用户名和邮箱的。

git config --global user.name "abc"
git config --global user.email "123"

像我这样设置,代码依然可以正常提交,在gitlab上查看的时候显示的用户名是“abc”。

git-commit-username.png

Git本身精神就是协作,是自由、平等,而非集权式的代码库。这样设计也没毛病,但是在公司的代码管理中,这样就很不好,尤其是在开发 Leader review 代码的时候,如果没有正确配置用户名可能都不知道这代码是谁写的。

- 阅读剩余部分 -

背景

大多数团队都会使用 GitLab 作为代码管理平台,通常采用的都是通过单个安装包(Omnibus)进行安装,安装包内已捆绑了运行 GitLab 所需的所有服务与工具。若是你所在的团队人数比较多或者为了解决单机部署所带来的单点故障问题,那么可用的方案有以下两种:

  • 多台主机安装 Omnibus 包,通过 /etc/gitlab/gitlab.rb 配置文件开启/禁用所需组件,控制组件的数量来达到高可用部署和性能需求
  • 通过 Helm Chart 部署到 Kubernetes 中

现在对比一下各个方案的优劣:

  • 单机部署

    • 优点:维护简单
    • 缺点:存在单点故障、不足以支撑1000+用户使用
      gitlab-single-server.png

- 阅读剩余部分 -

众所周知的原因,在国内访问Jenkins的插件站点不是很稳定,经常访问很慢或者超时。

如果你网上搜索Jenkins更换国内源等关键字,大多数文章都会告诉你做以下三个步骤:

  • 修改"Manage Jenkins"--->"Manage Plugins"--->"Advanced" --->"Update Site" URL为国内源,如https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
  • /var/jenkins_home/updates/default.json文件内容中https://updates.jenkins.io/download替换为国内源,如https://mirrors.tuna.tsinghua.edu.cn/jenkins
  • 重启Jenkins

第一步有一个坑:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json下载的是始终是最新的插件,和旧版本的Jenkins是不兼容的,要替换为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-VERSION/update-center.json才能装到匹配的插件版本,其中VERSION是当前Jenkins的版本。如果不是LTS版本,则dynamic-stable-VERSION要换成dynamic-VERSION

第二步修改了之后,过一段时间你想再装插件你会发现/var/jenkins_home/updates/default.json这个文件又被恢复成官方的了。此举并不是一劳永逸的,因为Jenkins会定时更新这个文件。

那么有没有更好的办法呢?答案是有的,下面就教大家如何一劳永逸地将Jenkins插件站点换为你想要的任何镜像站点。

方法示意图:

Jenkins.png

  • 修改hosts,使updates.jenkins.io指向nginx的IP
  • 配置nginx反向代理,指向你所希望访问的Jenkins插件站点

需要解决一个问题,Jenkins源站点是https协议的,Jenkins会校验SSL证书的有效性,因此我这里将使用nginx的sub_filter模块将update-center.json返回的内容修改为http协议的。

- 阅读剩余部分 -

前言

禅道作为常用的项目管理工具,在很多公司都有使用。其官方文档中介绍的部署方式主要是安装LAMP集成环境的方式来部署的,虽然其官方也提供了Docker部署,但是他提供的Docker镜像(easysoft/zentao)是集成了httpd+php+mysql在里面的,不满足容器的最佳实践原则。

在容器时代,禅道所推崇的部署方式显然显得比较的落后了,其官方更没有关于部署到Kubernetes的相关文档。社区论坛是有一些提问的,但是提供的方案大多都是使用 easysoft/zentao 这个仓的镜像。

本来是打算自己制作镜像的,在翻阅资料的时候发现 easysoft/quickon-zentao 这个仓,看了一下是满足我的需求的。

部署架构

zetao.drawio.png

- 阅读剩余部分 -

Rancher创建的Kubernetes集群(RKE),kubernetes版本为1.24.x。在Rancher上安装了Monitoring应用,无法查看Pod监控指标数据。Grafana显示为no data

grafana-pod-nodata.png

在Prometheus界面上通过PromQL查询,发现指标数据缺失container、image、name、namespace、pod等标签,如下:

prom-query.png

- 阅读剩余部分 -