技术教程 · 2019年12月5日 0

如何设置Gitlab以在CentOS上进行持续集成和部署

在本教程中,我将解释如何为CI(持续集成)/ CD(持续部署)操作设置本地Gitlab服务器。像尚不了解它的任何人一样,GitLab是作为单个应用程序交付的完整的DevOps平台。从项目计划和源代码管理(通过CI / CD)到监视和安全。它允许团队在单个对话中进行协作和工作,而不是跨多个工具管理多个线程。通过在整个DevOps生命周期中提供单个数据存储库,用户界面和授权模型,团队可以进行大量协作,缩短周期时间,并专注于快速构建每个应用程序。

随着每种业务方法变得更大和更全面,所有产品必须具有比其竞争对手更出色的功能。为此,一旦准备就绪,就必须引入和开发多个模块,必须将它们快速推向市场,并进行全面测试和验证。这样,如果Gitlab是唯一可以促进向DevOps实践过渡的应用程序源,那么它将真正有助于实现这一里程碑。

1.持续集成和持续部署如何工作

使用GitLab作为代码平台,在软件开发过程的整个生命周期中都有可能采取的行动的逻辑顺序。目标是从实施新产品的第一阶段到在生产中实施新产品的最后阶段,为团队提供一致而有效的支持。下图显示了工作流程的摘要:

持续集成(CI)

由于DevOps的范围很大,因此本教程着重于在本地条件下设置Gitlab服务器。我们将使用Gitlab社区版在我们的本地环境中进行设置。

2.安装阶段

在安装阶段,首先,我们将以前提条件设置服务器为前提,假设每个服务器都处于最低服务器配置之下。步骤如下:

 [root@MyGitLab ~]# cat /etc/resolv.conf 
 [root@MyGitLab ~]# yum updateinstall -y curl policycoreutils-python openssh-server 
 

进行上述操作是可选的,只是为了确保我们的安装和审查工作顺利进行。安装完成后,您将获得如下屏幕截图

然后根据需要启动postfix服务。下面是命令。

 [root@MyGitLab ~]# systemctl start postfix 
 [root@MyGitLab ~]# systemctl status postfix 
 [root@MyGitLab ~]# systemctl enable postfix 
 

完成后,您将获得如下屏幕截图

 

接下来,我们需要安装wget以采用GitLab本身提供的自动化脚本进行安装。您还可以使用其他方式进行安装,例如使用Curl等,在本练习中,我将使用wget下载脚本。一旦安装了wget软件包,我们将从此处下载脚本并将其放入我们的本地服务器。步骤如下:

 [root@MyGitLab ~]# yum install -y wget 
 [root@MyGitLab ~]# wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh 
 [root@MyGitLab ~]# chmod +x script.rpm.sh 
 [root@MyGitLab ~]# ./script.rpm.sh 
 

过程如下:

接下来,我们将开始准备GitLab服务及其依赖项。步骤如下:

 [root@MyGitLab ~]# EXTERNAL_URL="http://10.124.12.133:80" 
 [root@MyGitLab ~]# echo $EXTERNAL_URL 
 http://10.124.12.133 
 [root@MyGitLab ~]# yum install -y gitlab-ce 
 

一切完成后,您将看到如下所示的进度

大!现在一切就绪,让我们继续安装服务及其依赖项的过程。由于GitLab是将DevOps集成在一起的可靠应用程序,因此将有多个软件包并配置配置。因此,通常花费的时间会比安装任何正常服务的时间更长。在开始安装之前,让我们确认是否已按预期配置了主URL。以下是步骤:-

 [root@MyGitLab ~]# cat /etc/gitlab/gitlab.rb 
 external_url='http://10.124.12.133' 
 
 [root@MyGitLab ~]# gitlab-ctl reconfigure 
 

如果进度顺利进行,您将获得以下截图

现在,在安装部分完成所有操作后,让我们做最后的接触,这将使Gitlab可以使用端口。以下是步骤:-

 [root@MyGitLab ~]# firewall-cmd --permanent --add-service ssh 
 [root@MyGitLab ~]# firewall-cmd --permanent --add-service http 
 [root@MyGitLab ~]# firewall-cmd --reload 
 [root@MyGitLab ~]# iptables -L -n 
 

以下是屏幕截图

现在我们已经完成了安装GitLab的工作,现在我们可以开始登录自己的GitLab服务器并根据需要进行项目配置了。作为最终结果,您可以通过我们先前配置的URL通过浏览器查看GitLab服务,在本例中为http://10.124.12.133。它将自动将您重定向到主页,然后根据需要设置您的初始管理员密码。在这种情况下,默认的admin用户是root。下面是示例:

3.测试阶段

完成所有操作后,让我们充当一个团队的用户,该团队定义一个使用GitLab作为项目开发存储库的项目。首先让我们创建一个新项目,单击“ 创建项目”并根据需要定义详细信息。示例如下:

完成后,您将按照以下说明重定向到项目的主页

现在,作为一个项目,将有几个用户加入该存储库。要重新创建场景,我们创建一个用户,稍后该用户将加入该项目。返回主页并单击“ 添加人员”。您将重新定向到如下所示的成员创建页面。创建一个用户并根据需要填写。

现在,一旦完成,请返回您的主项目页面,转到设置并单击成员。下面是示例:

它将带您进入Project成员页面,包括您已创建的新用户,并定义要赋予该用户的角色,如下例所示。对于角色和权限的每个定义,您可以单击“ 阅读更多”以获取更多详细信息

完成后,您将按照以下示例看到已授予团队成员的列表:-

现在,让我们通过从其他服务器访问并以我们创建的新用户身份登录并创建要提交到项目中的新文件,来测试项目工作流的贡献。首先,让我们使用要从其他服务器或工作站克隆的项目的URL。您可以从以下示例中获取项目URL链接:-

准备就绪后,让我们登录测试工作站并克隆要由其他用户访问的项目。以下是步骤:-

 [root@Test1 ~]# yum install -y git 
 [root@Test1 ~]# git clone http://10.124.12.133/root/my-first-project.git 
 

您需要提供用户访问权限来克隆项目,使用刚才创建的新用户,如下所示:-

完成后,将在您的工作站下创建一个具有项目名称的新文件夹。现在进入文件夹并创建一个空文件。这只是为了测试项目可以由任何工作站的任何团队成员贡献,并且项目存储库将始终同步更新。以下是步骤:-

 [root@Test1 ~]# cd ls 
 anaconda-ks.cfg my-first-project 
 [root@Test1 ~]# cd my-first-project/ 
 [root@Test1 my-first-project]# ls 
 README.md 
 [root@Test1 my-first-project]# touch myfile.txt 
 

完成所有操作后,让我们提交更改以使其与项目主存储库同步。以下是步骤:-

 [root@Test1 my-first-project]# git add myfile.txt 
 [root@Test1 my-first-project]# git commit -m "added new file" 
 [root@Test1 my-first-project]# git push -u origin master 
 

完成上述命令后,过程将显示如下示例:-

大!完成所有操作后,让我们返回浏览器并刷新页面。您会注意到用户shahril提交的新文件显示在主项目页面上