GitLab私有仓库概述及环境部署

news/2024/11/19 6:09:17/文章来源:https://www.cnblogs.com/yinzhengjie/p/18554087

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

目录
  • 一.gitlab概述
    • 1.gitlab介绍
    • 2.gitlab架构
    • 3.gitlab推荐配置
  • 二.部署gitlab前准备
    • 1.ubuntu系统环境安装前准备
      • 1.1 配置Ubuntu主机名
      • 1.2 配置Ubuntu远程链接
      • 1.3 配置ubuntu仓库
      • 1.4 修改终端颜色
      • 1.5 重启虚拟机
    • 2.RHEL系统环境安装前准备
      • 2.1 修改centos主机名
      • 2.2 关闭centos防火墙并禁用selinux
      • 2.3 配置epel源
      • 2.4 修改终端颜色
      • 2.5 重启虚拟机
  • 三.部署gitlab
    • 1.选择gitlab的安装方式
    • 2. 下载gitlab软件包
      • 2.1 从gitlab官方下载软件包
      • 2.2 从国内镜像仓库下载软件包
    • 3 安装gitlab软件包
      • 3.1 ubuntu安装gitlab
      • 3.2 centos安装gitlab
    • 4.初始化gitlab
      • 4.1 gitlab相关目录说明
      • 4.2 测试邮箱是否正常
      • 4.3 gitlab初始化配置
    • 5.gitlab服务基础管理
    • 6.在K8S集群部署gitlab
    • 7.其他部署方式

一.gitlab概述

1.gitlab介绍

gitlab是一个基于Ruby on Rails构建用于仓库管理系统的开源项目,使用git作为代码管理工具,提供了web界面进行访问公开或者私有的项目。gitlab优势:- 开源免费- 开源作为git代码仓库- 提供了方便易用的web管理界面- 支持离线提交- 安全性高,开源对不同的用户设置不同的权限,并且支持不同用户只能访问特定的代码,实现代码部分可见

2.gitlab架构

如上图所示,gitlab是一个复杂的系统,由很多应用组成。如下图所示,gitlab服务由多个组件构成:- nginx:提供静态web服务器。- gitlab-shell:用于处理git命令和修改authorized keys列表。- gitlab-workhorse:轻量级的反向代理服务器,它旨在充当智能反向代理,以帮助整个gitlab加速。- postgresql:数据库。- redis:缓存数据库。- sidekiq:用户在后台执行队列任务(异步执行)- unicorn:gitlab rails应用托管在这个服务器上面的。参考链接:https://panlw.github.io/15365441001781.htmlhttps://docs.gitlab.com/ee/development/architecture.html

3.gitlab推荐配置

- gitlab硬件和软件的环境要求:https://docs.gitlab.com/ee/install/requirements.html- gitlab服务的安装文档https://docs.gitlab.com/ee/install/install_methods.html- 硬件配置要求:CPU:- CPU需求取决于用户数量和预期工作负载,比如:4核心支持500用户8核心支持1000用户- 如果有更多的用户需求,可参考官网:https://docs.gitlab.com/ee/administration/reference_architectures/index.htmlmemory:- 根据您的需求配置相应内存即可,比如:4GB内存支持500用户8GB内存支持1000用户- 如果有更多的用户需求,可参考官网:https://docs.gitlab.com/ee/administration/reference_architectures/index.html- 建议设置至少2GB的交换内存,尽管您有足够的物理内存空间:如果可用内存发生变化,交换有助于减少发生错误的机会。并将"swappiness"的值设置为10以充分利用物理内存。Disk:根据您的gitlab存储预期配置相应的存储大小即可。支持nfs,lvm等技术栈。DataBase:如下图所示,gitlab 12.1版本开始就移除了对MySQL数据库的支持,PostGreSQL是目前唯一支持的数据库哟。其他更详细文档可参考:https://docs.gitlab.com/ee/install/requirements.html温馨提示:学习环境中,建议搭大家使用2c4G基本上够用了。

二.部署gitlab前准备

1.ubuntu系统环境安装前准备

1.1 配置Ubuntu主机名

# hostnamectl set-hostname ubuntu11.yinzhengjie.com

1.2 配置Ubuntu远程链接

# grep ^PermitRootLogin /etc/ssh/sshd_config

1.3 配置ubuntu仓库

# cat /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu focal main restricted
deb http://mirrors.aliyun.com/ubuntu focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu focal universe
deb http://mirrors.aliyun.com/ubuntu focal-updates universe
deb http://mirrors.aliyun.com/ubuntu focal multiverse
deb http://mirrors.aliyun.com/ubuntu focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu focal-security universe
deb http://mirrors.aliyun.com/ubuntu focal-security multiverse参考链接:https://developer.aliyun.com/mirror/ubuntu

1.4 修改终端颜色

cat <<EOF >>  ~/.bashrc 
PS1='[\[\e[30;1m\]\u@\[\e[0m\]\[\e[31;1m\]\H\[\e[0m\]\[\e[32;1m\] \W\[\e[0m\]]# '
EOF
source ~/.bashrc 

1.5 重启虚拟机

# reboot 

2.RHEL系统环境安装前准备

2.1 修改centos主机名

# hostnamectl set-hostname centos10.yinzhengjie.com

2.2 关闭centos防火墙并禁用selinux

# systemctl disable firewalld
# sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

2.3 配置epel源

# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.4 修改终端颜色

cat <<EOF >>  ~/.bashrc 
PS1='[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\] \W\[\e[0m\]]# '
EOF
source ~/.bashrc 

2.5 重启虚拟机

# reboot 

三.部署gitlab

1.选择gitlab的安装方式

如上图所示,gitlab有很多种安装方式,咱们选择包安装方式。如下图所示,我们需要手动下载对应的软件包。参考链接:https://docs.gitlab.com/ee/install/install_methods.htmlhttps://docs.gitlab.com/omnibus/installation/

2. 下载gitlab软件包

2.1 从gitlab官方下载软件包

如上图所示,我们要去访问官方的仓库。如下图所示,我们选择docker-ce版本进行安装即可。参考链接:https://packages.gitlab.com/gitlab/gitlab-ce

2.2 从国内镜像仓库下载软件包

如上图所示,我们也可以在国内网站进行下载哟。如果从官网下载速度较慢的小伙伴们,可以使用给你的镜像地址即可,也可以使用迅雷下载速度会更快哟!参考链接:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/

3 安装gitlab软件包

3.1 ubuntu安装gitlab

# dpkg -i gitlab-ce_15.6.7-ce.0_amd64.deb 

3.2 centos安装gitlab

# yum -y localinstall gitlab-ce-15.6.7-ce.0.el7.x86_64.rpm 

4.初始化gitlab

4.1 gitlab相关目录说明

- /etc/gitlab/配置文件目录。- /run/gitlab运行目录,存放很多数据库文件。该目录需要运行gitlab服务后会自动生成。- /opt/gitlab/gitlab安装目录。- /var/opt/gitlab数目目录,源代码存放在此目录。初次运行gitlab服务会自动生成初始化数据哟。- /var/log/gitlab/日志目录。

4.2 测试邮箱是否正常

	(1)安装mail服务
# yum -y install mailx(2)修改配置文件
# vim /etc/mail.rc 
...
set from=2771787258@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=2771787258@qq.com
set smtp-auth-password=crpdkjfvmoymdggd(3)测试邮箱是否能够正常发送,测试结构如上图所示。
# echo JasonYin2020 | mail -s hello y1053419035@qq.com

4.3 gitlab初始化配置

	(1)修改配置文件
# grep "^[a-Z]" /etc/gitlab/gitlab.rb
...
# 对外暴露服务的uri地址,注意配置hosts文件解析哟~
external_url 'http://gitlab11.yinzhengjie.com'
# 可选邮箱通知配置~
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "2771787258@qq.com"
gitlab_rails['smtp_password'] = "crpdkjfvmoymdggd"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "2771787258@qq.com"# 新增版本中,为gitlab的webUI设置root用户初始登录密码~
gitlab_rails['initial_root_password'] = "yinzhengjie"(2)将配置文件生效
# gitlab-ctl reconfigure(3)添加hosts文件解析
cat >> /etc/hosts <<EOF
10.0.0.11 gitlab11.yinzhengjie.com
EOF(4)查看gitlab的状态,如上图所示
# gitlab-ctl status(5)访问gitlab的WebUI
如下图所示。温馨提示:如果没有在配置文件中对密码做初始化设置,可以从"/etc/gitlab/initial_root_password"文件中找到初始密码。

5.gitlab服务基础管理

- gitlab-ctl status查看服务状态。- gitlab-ctl stop停止gitlab服务。- gitlab-ctl start启动服务。- gitlab-ctl reconfigure重新配置应用。- gitlab-ctl -h查看帮助信息。

6.在K8S集群部署gitlab

	1.导入镜像到harbor仓库
[root@master231 ~]# wget http://192.168.13.253/Resources/Kubernetes/images/Project/DevOps/yinzhengjie-gitlab-ce-v17.5.2.tar.gz[root@master231 ~]# docker load -i yinzhengjie-gitlab-ce-v17.5.2.tar.gz 2.编写资源清单
[root@master231 case-demo]# cat 06-devops-gitlab.yaml 
apiVersion: v1
kind: Namespace
metadata:name: devops---apiVersion: v1
kind: ReplicationController
metadata:name: yinzhengjie-gitlabnamespace: devops
spec:replicas: 1selector:apps: gitlabtemplate:spec:nodeName: worker233containers:- name: c1# image: gitlab/gitlab-ce:17.5.2-ce.0image: harbor.yinzhengjie.com/yinzhengjie-devops/gitlab-ce:17.5.2-ce.0# 配置宿主机的端口映射ports:# 定义容器的端口- containerPort: 80# 绑定到宿主机的端口hostPort: 8080metadata:labels:apps: gitlab
[root@master231 case-demo]# 3.创建资源
[root@master231 case-demo]# kubectl apply -f 06-devops-gitlab.yaml 
namespace/devops created
replicationcontroller/yinzhengjie-gitlab created
[root@master231 case-demo]# 
[root@master231 case-demo]# 
[root@master231 case-demo]# kubectl get pods -o wide -n devops 
NAME                     READY   STATUS    RESTARTS   AGE    IP            NODE        NOMINATED NODE   READINESS GATES
yinzhengjie-gitlab-sw2n6   1/1     Running   0          6m1s   10.100.2.60   worker233   <none>           <none>
[root@master231 case-demo]# 
[root@master231 case-demo]# kubectl -n devops exec -it yinzhengjie-gitlab-sw2n6 -- bash
root@yinzhengjie-gitlab-sw2n6:/# netstat -untal | egrep ":80"
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      
..
root@yinzhengjie-gitlab-sw2n6:/# 4.查看默认的root密码
[root@master231 case-demo]# kubectl -n devops exec yinzhengjie-gitlab-sw2n6 -- cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.Password: Pm9uyDtMdoR1FEw4rGcKsjl55VQQ3iOGxrNFuz/Dj9o=# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
[root@master231 case-demo]# 5.windows修改root密码
http://10.0.0.233:8080/推荐阅读:https://docs.gitlab.com/ee/install/docker/installation.html#install-gitlab-by-using-docker-compose默认的密码存放路径:/etc/gitlab/initial_root_password

7.其他部署方式

如上图所示,官方提供了多种安装方式供咱们选择。推荐阅读:https://docs.gitlab.com/ee/install/install_methods.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/836605.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RHEL8.10上搭建dhcp-relay服务

日期:2024.11.17 目的:在rhel8上搭建dhcp-relay服务,让搭建在lan网段(10.31.0.0/24)中的DHCP服务器rocky9(10.31.0.1/24),可以给dmz网段(172.31.0.0/24)中的主机提供服务 参照:鸟哥Linux私房菜 https://linux.vbird.org/linux_server/rocky9/0220dhcp_ntp.php#9.3 3…

ROCKY9.4上搭建DHCP服务

日期:2024.11.14 内容:在虚拟的LAN网络中(10.31.0.0/24)的ROCKY9.4(10.31.0.1/24)上搭建DHCP服务器,供LAN网络中其余主机自动获取IP地址 参照:鸟哥Linux私房菜 马哥教育王晓春老师课程安装DHCP服务 [root@ROCKY9 ~]# dnf info dhcp-server Last metadata expiration check:…

dyld: 神秘的 __dso_handle

dyld: 神秘的 __dso_handleiOS动态链接器dyld中有一个神秘的变量__dso_handle: // dyld/dyldMain.cpp static const MachOAnalyzer* getDyldMH() { #if __LP64__// 声明 __dso_handleextern const MachOAnalyzer __dso_handle;return &__dso_handle; #else... #endif // __…

攻防世界-转轮机加密

解法1:参考:https://blog.csdn.net/weixin_45556441/article/details/110851390解法2:book = ["NACZDTRXMJQOYHGVSFUWIKPBEL","FHTEQGYXPLOCKBDMAIZVRNSJUW","QGWTHSPYBXIZULVKMRAFDCEONJ","KCPMNZQWXYIHFRLABEUOTSGJVD","SXCD…

攻防世界-栅栏密码

原理加密分为经典型和W型题目解题 W型解密(多数默认)链接: https://www.a.tools/Tool.php?Id=264 https://ctf.bugku.com/tool/railfence

攻防世界-safer_than_rot13(替代密码)

题目解题解密链接:http://quipqiup.com/ 参考:https://blog.csdn.net/xiao__1bai/article/details/121692829

如何在notion中复制表格

Notion有个非常二货的地方: 不能直接复制表格,如果想把表格A中内容复制到表格B中,需要先把A中想复制的内容放到excel中,再从excel中放入B中,且需要在B中指定放置范围。 例如:表格A直接在notion中复制该表格A后,无法在下面的表格B中直接粘贴:表格B 如何才能将A中内容复制…

考研打卡(21)

开局(21) 开始时间 2024-11-18 20:08:09 结束时间 2024-11-19 01:07:55今天凌晨两点渴醒了,然后起床喝水,耍手机刷到两点多才睡着数据结构在一棵二叉树中有30个叶子结点,仅有一个孩子的结点有20个, 则该二叉树共有_____ 个结点(北京师范大学 2017年) A 79 B 76 C 56 D 81…

DQL(1)

多重条件查询 select*from 表名 where 列名 条件 (如like‘ ’) 连接词(and ,or等)条件排序查询 select * from 表名 order by 列名 asc|desc,列名 asc|desc;(正序|倒序)聚集函数(一般用作统计) count([distinct]*)统计所有的行数(distinct表示去重再统计) count (…