• 搭建企业级代码托管仓库-gitlab,k8s+jenkins部署cicd必备组件


    前言

    不管是在企业,还是个人,对于源码的安全性,是我们特别需要考虑的事情。

    GitLab 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 Web 服务。

    Gitlab 是被广泛使用的基于 git 的开源代码管理平台, 基于 Ruby on Rails 构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab 主要针对 group 和 project 两个维度进行代码和文档管理, 其中 group 是群组, project 是工程项目, 一个 group 可以管理多个project , 可以理解为一个群组中有多项软件开发任务, 而一个 project 中可能包含多个 branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

    安装Gitlab

    1. # 下载安装包(包比较大,建议下载离线包)
    2. wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm
    3. # 安装前置依赖
    4. yum install -y curl policycoreutils-python openssh-server
    5. # 安装
    6. rpm -i gitlab-ce-15.9.1-ce.0.el7.x86_64.rpm

    安装成功的界面~

    修改配置文件: vim /etc/gitlab/gitlab.rb

    1. # 编辑 /etc/gitlab/gitlab.rb 文件
    2. # 修改 external_url 访问路径(自己节点ip加自定义端口[访问端口在这里写什么就是什么],这个属性配置成什么,外部就通过这个访问~) http://<ip>:<port>
    3. # 其他配置修改如下,修改这些配置的意义:避免占用太大内存,如果不修改,可能会将你内存占满
    4. gitlab_rails['time_zone'] = 'Asia/Shanghai' # 修改时区
    5. puma['worker_processes'] = 2 # 工作节点数
    6. sidekiq['max_concurrency'] = 8 # 最大并发数
    7. postgresql['shared_buffers'] = "128MB" # 缓存大小(占用内存大小,一般是内存1/4,最大14G)
    8. postgresql['max_worker_processes'] = 4 # 进程数量
    9. prometheus_monitoring['enable'] = false # 默认开启,比较占用资源(内存、CPU),设置关闭
    10. # 其他配置
    11. nginx['listen_port'] = 8080 # 这里配置的端口号,和 external_url 开启的端口号必须一致
    12. git_data_dirs({ # 这是设置数据存储区域,一个是默认区域,一个是备份区域
    13. "default" => { # 这是默认数据存储区域
    14. "path" => "/xxx/xxx/gitlab/data" # 路径全部可以自定义
    15. },
    16. "alternative" => { # 这是备份数据存储区域,为避免磁盘损坏,丢失源码
    17. "path" => "/xxx/xxx/gitlab/data/backup" # 路径全部可以自定义
    18. }
    19. })

    修改后,更新配置并重启

    1. gitlab-ctl reconfigure # 初始化 -----这么会比较久
    2. gitlab-ctl restart # 开启服务
    3. # 其他命令
    4. gitlab-ctl stop # 关闭所有服务
    5. gitlab-ctl restart # 重启所有服务
    6. gitlab-ctl status # 查看所有服务状态
    7. gitlab-ctl help # 帮助
    8. gitlab-ctl reconfigure # 修改配置文件之后,需要重新加载下
    9. gitlab-ctl show-config # 查看所有服务配置文件信息
    10. gitlab-ctl tail # 查看日志

    初始化成功,会看到初始账户和密码,初始密码是密文,必须去,目录下文件查看~

    页面配置

    1. # 查看默认密码
    2. cat /etc/gitlab/initial_root_password
    3. # 登录后修改默认密码 > 右上角头像 > Perferences > Password
    4. # 默认的服务使用的是外网的服务,可以关闭~
    5. # 修改系统配置(关闭头像配置):点击左上角三横 > Admin
    6. # Settings > General > Account and limit > 取消 Gravatar enabled > Save changes
    7. # 关闭用户注册功能(一般内网,员工账号等都是自己配置,无需外面注册)
    8. # Settings > General > Sign-up restrictions > 取消 Sign-up enabled > Save changes
    9. # 开启 webhook 外部访问
    10. # Settings > Network > Outbound requests > Allow requests to the local network from web hooks and services 勾选 > Save changes
    11. # 设置语言为中文(全局)
    12. # Settings > Preferences > Localization > Default language > 选择简体中文 > Save changes
    13. # 设置当前用户语言为中文
    14. # 右上角用户头像 > Preferences > Localization > Language > 选择简体中文 > Save changes

    卸载

    1. # 停止服务
    2. gitlab-ctl stop
    3. # 卸载 rpm 软件(注意安装的软件版本是 ce 还是 ee)
    4. rpm -e gitlab-ce
    5. # 查看进程
    6. ps -ef|grep gitlab
    7. # 干掉第一个 runsvdir -P /opt/gitlab/service log 进程
    8. # 删除 gitlab 残余文件
    9. find / -name *gitlab* | xargs rm -rf
    10. find / -name gitlab | xargs rm -rf

    使用

    配置SSH秘钥

    1. git config --global user.name "Your Name"
    2. git config --global user.email your@example.com
    3. # 生成公钥私钥(cd ~/.ssh)
    4. ssh-keygen -t rsa -C "your@example.com"
    5. # 打开gitlab的找到User Settings下的SSH Keys,在Add an SSH key中,复制 id_rsa.pub中的内容到key里,在Title这里给这个key设置一个名字,点击Add key就可以了
    6. # 此设置是 Git 命令 push 的默认模式为 simple,当我们执行 git push 没有指定分支时,自动使用当前分支,而不是报错。
    7. git config --global push.default simple

    会在.ssh文件下生成俩个文件:id_rsaid_rsa.pub

    gitlab界面右上角点击头像 - Preferences(偏好设置) - 左列SSH秘钥 - 将id_rsa.pub内容复制到秘钥 - 点击保存即可

    到期时间可以不设置,不设置表示永不过期!!

    创建空白项目

    点击左上角仪表盘回到首页 - 新建项目 - 创建空白项目 - 填入对应信息 - 新建项目

    点击左上角仪表盘回到首页,可以看到我们创建的项目 - 点击进入可以看到项目信息,分支,代码拉取方式等等

     

    初始化本地项目 提交 远程git仓库

    1. # 进入项目内
    2. cd /xx/project
    3. # 初始化
    4. git init
    5. # 若init后是master分支,修改本地分支名称
    6. git branch -m master main
    7. # 添加代码到缓存区
    8. git add .
    9. # 和远程仓库建立连接
    10. git remote add origin http://121.40.45.228:8859/gitlab-instance-c82aafb6/k8s-cicd-demo.git
    11. git branch -M main
    12. git commit -m 'xx'
    13. # 推送代码
    14. git pull --rebase origin main
    15. git push -uf origin main

    添加账户

    左上角三个横杠 - admin(管理员)

    在概述内 - 用户(可以看到所有已存在的用户) - 新用户

    设置账户密码

    • 若邮箱收到验证,点开即可设计密码

    若邮箱未收到验证,即可保存后再次点击编辑,然后设置初始密码(这里的操作是root账户)

    新用户 首次登录时重新设置新的密码

    注册方式添加用户

     需要在设置提前开启注册,可以参考页面配置

    点击登录界面的注册连接

    填写注册信息 ,注册后不会立马生效,需要等管理员审核后才能登录

     

    进入管理员账户 - 左上角三个横 - 概览 - 用户 - 等待批准

    用户删除

    进入管理员账户 - 左上角三个横 - 概览 - 用户

    给用户拉项目

    进入项目 - 项目信息 - 成员 - 邀请成员

    输入成员名称 ,可以设置成员权限角色、访问到期时间

    常见问题

    问题一:首次界面502访问失败  

    解决方法:

    若是你使用 gitlab-ctl stop后,再restart,访问是502,需要等等,内部组件启动需要时间~

    若是首次界面502的话,需要注意如下三点:

    1. # 大问题就是服务器: 1.端口号冲突 2.cpu占用过高、内存不足 3.版本兼容性
    2. # 看下是否是服务器端口冲突了
    3. ss -ntulp | grep 8080
    4. # 查看内存
    5. free -mh
    6. # 版本问题
    7. # 可能是你对应的操作系统不兼容该版本,那只能下载 v10.几的版本了。

  • 相关阅读:
    Elasticsearch终端命令行用法大全
    为什么学完了 C#觉得自己什么都干不了?
    git 新建 branch 推送 到服务器
    软考高级系统架构论文 注意事项
    特征工程优化
    智能合约漏洞,价值 50 万美元 BNO 攻击事件原理分析
    equals和==的区别你真的知道吗?
    C/C++特殊求和 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
    25. HA Kubernetes cluster的高可用不是LB
    WhatsApp账号被封?看看是不是你的原因!
  • 原文地址:https://blog.csdn.net/pleaseContinue/article/details/136176196