概述
这篇文章先来预热一下,我们在自己的虚拟机里搭建一套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的同时,我们还配置了邮件发送,当我们提交代码后,邮箱会收到相应的提示信息。