概述

这篇文章先来预热一下,我们在自己的虚拟机里搭建一套GitLab环境,然后自己就可以使劲折腾。具体搭建步骤如下。

系统环境

系统:CentOS 8.1

内存:4G起步

硬盘:50G(仅供测试环境)

IP:192.168.0.104

具体操作步骤

一、CentOS 8.1安装

1、到CentOS官网(https://www.centos.org/)下载最新版的安装镜像,如下图所示:

2、使用VirtualBox安装CentOS 8.1的虚拟机。首先在VirtualBox中选择新建虚拟机,然后在弹出的面板中输入虚拟机相关的信息,包括虚拟机名称、存放目录、虚拟机类型、虚拟机内存、硬盘大小等,设置完后点击确定即可完成一个虚拟机的初始创建,如下:

3、初始化后的虚拟机是没有关联镜像的,所以我们接下来进行关联镜像。点击【设置】菜单,然后选择【存储】选项卡,打开存储设置面板,如下:

在此面板选择控制器下的“没有盘片”字样,然后点击图中位置进行镜像文件的选择和关联,如下:

点击确定后即可完成镜像文件的关联操作。

4、同样的在设置面板选择【系统】选项卡,然后将光驱启动设置为第一启动项,如下图所示:

5、点击【启动】菜单按钮,开始虚拟机的安装,如下:

6、点击启动按钮后,虚拟机CentOS 8.1的安装过程其实就和我们普通的CentOS系统安装没有任何区别了,我们只需要简单的配置下安装时候所需要的一些信息即可,比如我配置了安装桌面选项,如下图(这个过程中的有些参数如果有不明白的,直接网上找资料即可,资料是非常多的,没必要在此处做重复的介绍):

如果点击重启后又重新进入到了安装界面,我们只需要点击上方的【控制】菜单,然后打开设置面板,在存储选项卡下将我们之前添加的CentOS镜像盘片卸载掉即可,因为这时候系统已经安装好了,它就没有存在的必要了。卸载之后重启虚拟机即可正常进入系统了,如下:

7、如上所示,CentOS 8.1系统安装成功。

二、GitLab部署

通过以上操作我们完成了CentOS 8.1虚拟机的安装,接下来就开始部署GitLab。使用XShell等工具连接安装的CentOS 8.1虚拟机,在连接过程中如果发现虚拟机的IP是10.0.2.15或者说虚拟机压根就没有IP信息,这就需要我们为虚拟机配置网络信息和启动网卡,具体操作步骤请查阅网络资料即可。

虚拟机网络配置正常后,我们接下来进行GitLab的配置。

1、GitLab的安装部署其实直接看官网的文档即可,里面描写的很清楚,地址如下:

https://about.gitlab.com/install/#centos-8

2、首先我们使用以下命令来打开防火墙中的HTTP、HTTPS、SSH通道,如下:

sudo dnf install -y curl policycoreutils openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
# Check if opening the firewall is needed with: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

3、然后通过以下命令来安装Postfix来实现邮件通知功能,如下:

sudo dnf install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

4、接下来进行安装和配置GitLab,如下:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://localhost" dnf install -y gitlab-ee

5、安装完成后,使用如下命令安装Vim编辑器:

yum install vim -y

6、使用如下命令配置gitlab的访问IP和端口:

vim /etc/gitlab/gitlab.rb

将我们安装是指定的localhost改成虚拟机IP,端口指定一个另外的端口,如上图所示。修改成功后,使用如下命令使配置生效,并且重启gitlab:

gitlab-ctl reconfigure
gitlab-ctl restart

7、通过以下命令开放8088端口:

firewall-cmd --zone=public --list-ports #查看开放端口
firewall-cmd --zone=public --add-port=8088/tcp --permanent #开放8088端口
firewall-cmd --reload   #重新加载配置
#如果不需要,也可以直接关闭防火墙
systemctl stop firewalld.service

8、浏览器通过地址"http://192.168.0.104:8088/"地址来访问gitlab,初次访问会被重定向到密码修改界面,初始账户为:

初始账户: root 密码:5iveL!fe

登录修改密码后,页面会自动会到登录界面,我们用新密码登录即可进入到部署的GitLab,如下所示:

9、使用如下命令进入到虚拟机网卡设置目录,设置虚拟机静态IP,如下:

cd /etc/sysconfig/network-scripts/
vi ifcfg-enp0s3

然后在文件中做如下修改:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"#动态ip
#BOOTPROTO="dhcp"#静态IP
BOOTPROTO=static
IPADDR=192.168.0.104 ## 你想要的静态ip
NETMASK=255.255.255.0 #子网掩码为物理机子网掩码(subnet mask)
GATEWAY=192.168.0.1 #跟物理机网关相同DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp0s3"
UUID="0dd666ac-c97e-4b6a-898e-0765ba16246d"
DEVICE="enp0s3"
ONBOOT="yes"

保存退出后,使用如下命令重启网卡:

nmcli c reload

至此,虚拟机静态IP设置成功。

10、使用如下命令进行邮箱配置:

vim /etc/gitlab/gitlab.rb

然后在配置文件中添加如下信息:​

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "2250685378@qq.com"
gitlab_rails['smtp_password'] = "ddddddddddwwwww"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = :login
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = '2250685378@qq.com'#修改gitlab配置的发信人
gitlab_rails['gitlab_email_from'] = "2250685378@qq.com"
user["git_user_email"] = "2250685378@qq.com"  # 必须是一个具体的邮箱。不能瞎编

配置保存之后,使用如下命令进行配置生效和gitlab重启:

gitlab-ctl reconfigure
gitlab-ctl restart

重启成功后,使用如下命令开启虚拟机的465端口,如下:

firewall-cmd --zone=public --list-ports #查看开放端口
firewall-cmd --zone=public --add-port=465/tcp --permanent #开放465端口
firewall-cmd --reload   #重新加载配置
#如果不需要,也可以直接关闭防火墙
systemctl stop firewalld.service

然后使用如下命令进行邮箱配置的测试:

gitlab-rails console
Notify.test_email('2250685378@qq.com','X北辰北','测试邮件').deliver_now

如果出现以下报错信息,是因为我们的邮箱没有开启SMTP服务导致:

我们打开QQ邮箱的设置界面,然后切换到【账户】选项卡,在页面底部选择打开相应的服务,打开后会给我们一段授权码,然后我们将授权码粘贴到gitlab的配置文件中,重新使之生效和启动gitlab,如下:

使用命令打开gitlab配置文件,替换配置文件中的邮箱密码为生成的授权码:

然后同样的,使用如下命令使配置生效和重启gitlab:

gitlab-ctl reconfigure
gitlab-ctl restart

gitlab重启后,我们使用上述的测试命令再次进行测试,如果邮件成功发送,则说明邮箱配置成功,如下:

11、打开"C:\Users\用户名\.ssh"目录,将里面id_rsa.pub文件里的信息复制粘贴到gitlab,就完成了gitlab的ssh配置,然后我们接下来进行测试。

12、我们在gitlab中新建一个项目,然后将它git clone到本地,如下:

然后修改里面的README文档或者自己新建一个html页面,使用git将它提交,如果成功提交,则说明我们的gitlab到目前为止完成了基础的配置,如下:

此时我们的GitLab环境安装部署成功。

总结

这篇文章在部署成功GitLab的同时,我们还配置了邮件发送,当我们提交代码后,邮箱会收到相应的提示信息。

02【前端工程化初探】GitLab本地部署相关推荐

  1. 项目管理 之六 详解 Gitlab 本地部署全过程、Gitlab Pages、企业版 PATCH

    gitlab-ee 和 gitlab-ce   需要注意,Gitlab 分为 SaaS 和 Self-Managed 两种版本,其中,SaaS 即 gitlab.com 这个在线版本(这个其实就是官方 ...

  2. 前端类名优秀命名例子_这是一篇需要花费你15分钟阅读的干货!浅谈前端工程化...

    01前端工程化的背景 随着业务的扩展.业务需求更加复杂.项目团队的壮大以及项目的增多等.制定一套适用于团队的前端工程化方案很有必要. 02前端工程化是什么 前端工程化是一个很广泛的话题.涉及的技术与解 ...

  3. 【学习日记2023.4.25】之 前后端分离_前端工程化_Vue组件库Element_Vue路由_打包部署

    文章目录 1. 前后台分离开发 1.1 前后台分离开发介绍 1.2 YAPI 1.2.1 YAPI介绍 1.2.2 接口文档管理 2. 前端工程化 2.1 前端工程化介绍 2.2 前端工程化入门 2. ...

  4. 前端工程化实践:从开发到构建测试部署——由此及彼

    前端工程化实践 前端工程化实践 什么叫前端工程化 从实践方面来说 从理论角度来讲 前端工程化的意义: 1.规范化(从源头处约束到优雅-聚沙成塔) 1. 制定各项开发规范,让工作有章可循 2. 针对于版 ...

  5. 【几乎最全/全网最长的 2 万 字】前端工程化完整流程:从头搭到尾(vue3 + vite + qiankun + docker + tailwindcss + iview......)

    文章目录 一.完整构建流程 1.在指定目录下执行 pnpm init,初始化 package.json 2.执行 pnpm install vite -D,安装 vite. 3.package.jso ...

  6. 前端工程化实践总结 | QQ音乐商业化Web团队

    蓝字关注,回复"加群"加入前端技术群 与大家一起成长 | 导语本文主要介绍在前端工程化的一些探索和实践,结合移动端的基础库重构和UI组件库开发这两个项目详细介绍工程化方案 . 随着 ...

  7. 前端进阶垫脚石-前端工程化

    什么是前端工程化 前端工程化,就是降本提效的体现 广义上,前端工程化包含一切以降低成本.提高效率.保障质量为目的的手段 通过一系列的规范.流程.工具达到研发提效.自动化.保障质量.服务稳定.预警监控等 ...

  8. 【CSDN软件工程师能力认证学习精选】 什么是前端工程化?

    CSDN软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网CSDN制定并推出的一个能力认证标准.C系列认证历经近一年的实际线下调研.考察.迭代.测试,并梳理出软件工程师开发过程中所需的各项技 ...

  9. 前端工程化:从切图仔到前端 Leader,如何跨越式成长

    前端的小伙伴应该能够很明显地感觉到,在面试过程中,各大公司面试官已经非常注重前端工程化能力的考察了. 前端工程化的演进可以极大地提升开发效率.前端发展到现在,社区涌现出大量的优秀框架和工具,得以将前端 ...

最新文章

  1. DeepMind悄咪咪开源三大新框架,深度强化学习落地希望再现
  2. 2020-08-20如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)
  3. linux检测远程端口是否打开
  4. JDBC Statement PrepareStatement
  5. newlisp debugger
  6. 利用Python随机或暴力生成密码
  7. python virtualenv conda_在vscode中启动conda虚拟环境的思路详解
  8. Android编程之仿微信显示更多文字的View
  9. dubbo服务压力测试
  10. mat格式数据集转换为arff与txt格式
  11. java创建包顺序_Java中包含继承关系时对象的创建与销毁顺序详解(附源码)
  12. 禾川Q1系列PLC官方教程
  13. Line-in和Mic-in及Line-out的使用和介绍
  14. MATLAB实现遥感图像分类——K均值算法
  15. pano2vr 6.0转换为html,全景图转换器(Pano2VR)
  16. 【qstock量化】数据篇之宏观指标和财经新闻文本
  17. Microsoft Teams 思维导图的4大好处,你知道怎样创建吗?
  18. vb里的lbound和ubound的用法
  19. The requested resource (Servlet action is not available) is not available.这个问题让我通宵了一个晚上
  20. linux 的top命令详解

热门文章

  1. (新物料)远翔FP5207B,外置MOS大功率升压芯片
  2. DVWA详细安装教程
  3. [7]云计算相关-理解云计算|角色与边界|云使能技术|unit4云安全|云安全威胁|威胁作用者
  4. bat调用python脚本并获取返回值_python生成bat脚本,并且执行bat脚本
  5. Easy Save3游戏存档安全分析
  6. 802.11ax(Wi-Fi6)TWT定时唤醒机制
  7. vue中的路由跳转方法,详细(vue路由跳转)
  8. 10个神奇的jQuery文本效果插件
  9. 鸿蒙幼儿园名称分析,好听的幼儿园名字大全
  10. 重庆华清远见--面向对象技术总结