CI持续集成系统环境---部署Gitlab环境完整记录

羽林君 2022-09-23 23:58

最近在看CI/CD集成的相关部分,发现几篇好文,转载分享一波。


来源网络:https://www.cnblogs.com/kevingrace/p/5651402.html


Gitlab是一个代码托管平台,在实际工作中,对代码管理十分有用。废话不多说,下面是对我自己搭建的Gitlab环境做一记录:
1)安装
------------------------------------------------------------------------
或者直接下载bitnami-gitlab-7.1.1-0-linux-x64-installer.run
下载地址:百度网盘 请输入提取码
提取密码:tcia

bitnami-gitlab-8.5.1-0-linux-x64-installer.run版本
下载地址:百度网盘 请输入提取码
提取密码:eq2d-------------------------------------------------------------------------
Gitlab的安装采用的是一键安装方式



  1. [root@115 ~]#cd /opt

  2. [root@115 ~]#wget https://bitnami.com/redirect/to/39039/bitnami-gitlab-8.8.4-0-linux-x64-installer.run

  3. [root@115 ~]#chmod 755 bitnami-gitlab-8.8.4-0-linux-x64-installer.run

  4. [root@115 ~]#./bitnami-gitlab-7.1.1-0-linux-x64-installer.run                       //一路回车

  5.  

  6. ---------------------------------------------------------------------

  7. Welcome to the Bitnami Gitlab Stack Setup Wizard.

  8. ---------------------------------------------------------------------

  9. Select the components you want to install; clear the components you do

  10. not want

  11. to install. Click Next when you are ready to continue.

  12. GitLab : Y (Cannot be edited)

  13. GitLab CI [Y/n] :Y

  14. Is the selection above correct? [Y/n]: Y

  15. ---------------------------------------------------------------------

  16. Installation folder

  17. Please, choose a folder to install Bitnami Gitlab Stack

  18. Select a folder [/opt/gitlab-7.4.3-0]:

  19. ---------------------------------------------------------------------

  20. Create Admin account

  21. Bitnami Gitlab Stack admin user creation

  22. Email Address [xschao@xxx.com]:

  23. Login [xschao]:

  24. Password :xxxxxxxxxxx

  25. Please confirm your password :

  26. ---------------------------------------------------------------------

  27. -------

  28. Hostname that will be used to create internal URLs. If this value is

  29. incorrect,

  30. you may be unable to access your Gitlab installation from other computers.

  31. It is

  32. advisable to use a Domain instead of an IP address for compatibility with

  33. different browsers.

  34. Domain [127.0.0.1]:                             //这里最好写外网 ip 或者域名

  35. Do you want to configure mail support? [y/N]: y

  36. ---------------------------------------------------------------------

  37. Configure SMTP Settings

  38. This is required so your application can send notifications via email.

  39. Default email provider:

  40. [1] GMail

  41. [2] Custom

  42. Please choose an option [1] : 1

  43. ---------------------------------------------------------------------

  44. Configure SMTP Settings

  45. This data is stored in the application configuration files and may be

  46. visible to

  47. others. For this reason, it is recommended that you do not use your

  48. personal

  49. account credentials.

  50. GMail address []: xschao.test@gmail.com

  51. GMail password :

  52. Re-enter :

  53. ---------------------------------------------------------------------

  54. Setup is now ready to begin installing Bitnami Gitlab Stack on your

  55. computer.

  56. Do you want to continue? [Y/n]: Y

  57. ---------------------------------------------------------------------

  58. -------

  59. Please wait while Setup installs Bitnami Gitlab Stack on your computer.

  60. Installing

  61. 0% ______________ 50% ______________ 100%

  62.  


2)启动命令

 

[root@115 ~]#/opt/gitlab-8.8.4-0/ctlscript.sh start/restart/stop

3)访问
http://ip:端口
在远程可以使用ssh方式连接gitlab并clone代码
需要先将远程客户端机器的公钥放到Gitlab的SSH Keys里面,做成无密码的信任关系
------------------------------------------------------------------------------------------------------------------------------------------

  1. 修改gitlab的访问端口,需要修改下面几个文件:

  2. /opt/gitlab-8.8.4-0/apache2/conf/httpd.conf

  3. /opt/gitlab-8.8.4-0/apache2/conf/bitnami/bitnami.conf

  4. /opt/gitlab-8.8.4-0/apps/gitlab/gitlab-shell/config.yml

  5. /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml

  6. ------------------------------------------------------------------------------------------------------------------------------------------

  7. 修改gitlab访问的ip或域名

  8. /opt/gitlab-8.8.4-0/apps/gitlab/gitlab-shell/config.yml

  9. /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml

  10.  

  11. 例如我这里修改如下:之前是ip访问(假设端口是8081,ip为111.112.113.45),现在改为域名访问(假设域名为git.huanqiu.net)

  12. [root@115 ~]# vim /opt/gitlab-8.8.4-0/apps/gitlab/gitlab-shell/config.yml

  13. .......

  14. gitlab_url: http://git.huanqiu.net:8081/

  15.  

  16. [root@115 ~]# vim /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml

  17. .......

  18. gitlab:

  19. ## Web server settings (note: host is the FQDN, do not include http://)

  20. host: git.huanqiu.net

  21. port: 8081 # Set to 443 if using HTTPS, see installation.md#using-https for additional HTTPS configuration details

  22. https: false

  23.  

  24. 最后重启服务

  25. [root@115 gitlab-8.8.4-0]# pwd

  26. /opt/gitlab-8.8.4-0

  27. [root@115 gitlab-8.8.4-0]# ./ctlscript.sh restart

  28.  

  29. 最好在/etc/hosts文件里做下映射(此步骤不是必须)

  30. [root@115 ~]# vim /etc/hosts

  31. 111.112.113.45 git.huanqiu.net



--------------------------------------------------------------------------------------------------------------------------------------
linux客户端使用ssh方式连接gitlab
其实只需要将linux客户机的公钥内容拷贝到gitlab的“Profile Settings”->"SSH Keys"里

比如:
使用“王士博”账号登陆gitlab
同一个gitlab账号下可以添加多个Keys,也就是可以对应多台客户机的Keys,也可以是同一台客户机的不同账号下的Keys;
注意Keys中公钥内容可以通过邮件去识别,也可以不跟邮件识别(比如在linux客户机和windows本地都产生公私钥,公钥内容中的邮件可以都用wangshibo@huanqiu.com)。特别注意一点:添加不同客户机上的相关账号公钥后,就只能在这个账号状态下进行git代码下载。比如下面添加了客户机的wangshibo账号下的公钥,就只能在这台主机的wangshibo账号下进行git代码下载,在root账号下是下载不了的,会一直提示输入密码.....
1)首先需要在linux客户机上生成公私钥

[root@test-huanqiu ~]# useradd wangshibo

[root@test-huanqiu ~]# su - wangshibo

[wangshibo@redmine ~]$ ssh-keygen -t rsa -C “wangshibo@huanqiu.com" //也可以不跟-C进行后面的邮件识别,一路回车

......

......

[wangshibo@test-huanqiu ~]$ cd .ssh/

[wangshibo@test-huanqiu .ssh]$ ls

id_rsa id_rsa.pub

[wangshibo@test-huanqiu .ssh]$ cp id_rsa.pub authorized_keys

[wangshibo@localhost .ssh]$ cat id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmMF2BG6uDnPYukynYfvWT7jbwYlaqEOEuN2Z3CKvIX0WhiM0mRwsRYXpR2snUXrXhki6CTR3frUzgbdIe+KMN9f9LxsnEeyWWheiGdNj6nm4UgondFA0rW6N5zGXHbDz7Q/clr/jX6K7ChhLd4iH7yKsZFCwo827xIVD0D+oFTQKRaC/eXS5FVFgsEE8FlGOt9hOwBT85dwaNBaSJ2+xfc9CADGYdyVE06FAGbbM+76QAvxllvIr8RJmVamd3dME1fi8lXgn7CLQKZE/4lTfOFNTw3BGtcgD9MwQfE2pwdrLK92tHaaaZ28kYChkAdNrlDnWL6e7ady9IkPQwGaUMw== wangshibo@huanqiu.com


2)将上面产生的公钥内容添加到gitlab上,如下:

可以在下面的“Title”处注明公钥信息,方便管理


 查看已添加的Keys

3)在客户机通过ssh连接gitlab,比如下载gitlab的test工程代码,进行操作。操作步骤如下:


注意下面在git clone代码前进行的”Git global setup“全局设置:
第一行对应的是gitlab的用户名
第二行对应的是这个用户下的Keys的名称(如果创建公私钥时,用-C “邮箱”方式进行秘钥识别,那么这里就用邮箱;如果创建公私钥时没有用-C “邮箱”识别,那么这里对应的就只是单纯的Keys的名称了,在gitlab控制台的SSH-Keys里能查看到)

注意:
使用ssh方式git clone下载代码时,本机必须要能连通gitlab机器的ssh服务端口(默认是22)。不然即便将公钥添加上,也是徒劳!

----------------------------------------------------------------------------------------------------------------------------------------------
解决Gitlab的Gravatar头像无法显示的问题,如下:

解决办法:

修改/opt/gitlab-8.8.4-0/apps/gitlab/htdocs/config/gitlab.yml文件的下面两行

.........

gravatar:

# gravatar urls: possible placeholders: %{hash} %{size} %{email}

#plain_url: "http://..." # default: http://www.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon

plain_url: "http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon"               //添加这一行

# ssl_url: "https://..." # default: https://secure.gravatar.com/avatar/%{hash}?s=%{size}&d=identicon


.........

gravatar:
enabled: false                      //由true改为false

重启服务

/opt/gitlab-8.8.4-0/ctlscript.sh restart

再次访问,gravatar图片就显示出来了

----------------------修改gitlab的logo图标----------------------

将下面路径下的gitlab_logo.png图片更换即可,注意图片名称不要变!

1

2

3

4

[root@localhost images]# pwd

/opt/gitlab-8.8.4-0/apps/gitlab/htdocs/app/assets/images

[root@localhost images]# ll gitlab_logo.png

-rw-rw-r--. 1 git git 5189 6月  10 2016 gitlab_logo.png

----------------------解决gitlab上上传头像图片不显示问题----------------------

如下,在gitlab登陆用户的设置里面上传头像

如果上传头像不显示,是因为目录权限的问题,解决办法如下:

1

2

3

[root@localhost gitlab-8.8.4-0]# pwd

/opt/gitlab-8.8.4-0

[root@localhost gitlab-8.8.4-0]# chmod -R 777 apps/gitlab/htdocs/public/uploads

-----------------------------设置gitlab里对应group的图片----------------------------------------------
Edit编辑gitlab对应group,选择"Group avatar"->点击"Choose file",上传图片即可!
如果上传的group图片不显示,修改权限:
#chmod 777 -R /opt/gitlab-8.8.4-0/apps/gitlab/htdocs/public/uploads/group

----------------------------------------------------------------------------------------------------------
下面记录在windows客户端使用TortoiseGit的ssh方式连接gitlab的记录
下面两个客户端软件的下载地址是:百度网盘-链接不存在 (提取密码:keks)




======================================
需要注意的问题:
在通过ssh方式连接gitlab的时候,明明已经上传了公钥到gitlab了,但是在连接时候还是提示输入密码!

原因:
1)注意在git clone的时候,一定要使用git方式,别使用http方式。
2)公钥上传到gitlab,并且私钥ppk文件配对后,原则上来说在git bash里面通过"ssh -p22 root@gitlab.zlibs.com"是能登录到gitlab服务器的(gitlab.zlibs.com是gitlab服务器主机名)。
3)如果gitlab.zlibs.com是通过代理层nginx转到gitlab服务器的,则需要在客户机的hosts里面做gitlab服务器ip和其主机名的绑定关系。
4)在git bash里面做git global setup:
git config --global user.name "wangshibo"
git config --global user.email "wangshibo@huanqiu.com"
git clone git@gitlab.zlibs.com:ops/ops-maintain.git
........


推荐阅读

【1】jetson nano开发使用的基础详细分享

【2】Linux开发coredump文件分析实战分享

【3】CPU中的程序是怎么运行起来的 必读

【4】cartographer环境建立以及建图测试

【5】设计模式之简单工厂模式、工厂模式、抽象工厂模式的对比

本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。

————————————————


羽林君 某嵌入式程序猿分享技术、生活、人生云云文字。如有诗云:去年今日此门中,人面桃花相映红。人面不知何处去,桃花依旧笑春风。
评论
  • 新年伊始,又到了对去年做总结,对今年做展望的时刻 不知道你在2024年初立的Flag都实现了吗? 2025年对自己又有什么新的期待呢? 2024年注定是不平凡的一年, 一年里我测评了50余块开发板, 写出了很多科普文章, 从一个小小的工作室成长为科工公司。 展望2025年, 中国香河英茂科工, 会继续深耕于,具身机器人、飞行器、物联网等方面的研发, 我觉得,要向未来学习未来, 未来是什么? 是掌握在孩子们生活中的发现,和精历, 把最好的技术带给孩子,
    丙丁先生 2025-01-11 11:35 463浏览
  • ARMv8-A是ARM公司为满足新需求而重新设计的一个架构,是近20年来ARM架构变动最大的一次。以下是对ARMv8-A的详细介绍: 1. 背景介绍    ARM公司最初并未涉足PC市场,其产品主要针对功耗敏感的移动设备。     随着技术的发展和市场需求的变化,ARM开始扩展到企业设备、服务器等领域,这要求其架构能够支持更大的内存和更复杂的计算任务。 2. 架构特点    ARMv8-A引入了Execution State(执行状
    丙丁先生 2025-01-12 10:30 471浏览
  • 流量传感器是实现对燃气、废气、生活用水、污水、冷却液、石油等各种流体流量精准计量的关键手段。但随着工业自动化、数字化、智能化与低碳化进程的不断加速,采用传统机械式检测方式的流量传感器已不能满足当代流体计量行业对于测量精度、测量范围、使用寿命与维护成本等方面的精细需求。流量传感器的应用场景(部分)超声波流量传感器,是一种利用超声波技术测量流体流量的新型传感器,其主要通过发射超声波信号并接收反射回来的信号,根据超声波在流体中传播的时间、幅度或相位变化等参数,间接计算流体的流量,具有非侵入式测量、高精
    华普微HOPERF 2025-01-13 14:18 489浏览
  • 随着全球向绿色能源转型的加速,对高效、可靠和环保元件的需求从未如此强烈。在这种背景下,国产固态继电器(SSR)在实现太阳能逆变器、风力涡轮机和储能系统等关键技术方面发挥着关键作用。本文探讨了绿色能源系统背景下中国固态继电器行业的前景,并强调了2025年的前景。 1.对绿色能源解决方案日益增长的需求绿色能源系统依靠先进的电源管理技术来最大限度地提高效率并最大限度地减少损失。固态继电器以其耐用性、快速开关速度和抗机械磨损而闻名,正日益成为传统机电继电器的首选。可再生能源(尤其是太阳能和风能
    克里雅半导体科技 2025-01-10 16:18 328浏览
  • 随着通信技术的迅速发展,现代通信设备需要更高效、可靠且紧凑的解决方案来应对日益复杂的系统。中国自主研发和制造的国产接口芯片,正逐渐成为通信设备(从5G基站到工业通信模块)中的重要基石。这些芯片凭借卓越性能、成本效益及灵活性,满足了现代通信基础设施的多样化需求。 1. 接口芯片在通信设备中的关键作用接口芯片作为数据交互的桥梁,是通信设备中不可或缺的核心组件。它们在设备内的各种子系统之间实现无缝数据传输,支持高速数据交换、协议转换和信号调节等功能。无论是5G基站中的数据处理,还是物联网网关
    克里雅半导体科技 2025-01-10 16:20 448浏览
  • 随着数字化的不断推进,LED显示屏行业对4K、8K等超高清画质的需求日益提升。与此同时,Mini及Micro LED技术的日益成熟,推动了间距小于1.2 Pitch的Mini、Micro LED显示屏的快速发展。这类显示屏不仅画质卓越,而且尺寸适中,通常在110至1000英寸之间,非常适合应用于电影院、监控中心、大型会议、以及电影拍摄等多种室内场景。鉴于室内LED显示屏与用户距离较近,因此对于噪音控制、体积小型化、冗余备份能力及电气安全性的要求尤为严格。为满足这一市场需求,开关电源技术推出了专为
    晶台光耦 2025-01-13 10:42 507浏览
  • 在不断发展的电子元件领域,继电器——作为切换电路的关键设备,正在经历前所未有的技术变革。固态继电器(SSR)和机械继电器之间的争论由来已久。然而,从未来发展的角度来看,固态继电器正逐渐占据上风。本文将从耐用性、速度和能效三个方面,全面剖析固态继电器为何更具优势,并探讨其在行业中的应用与发展趋势。1. 耐用性:经久耐用的设计机械继电器:机械继电器依靠物理触点完成电路切换。然而,随着时间的推移,这些触点因电弧、氧化和材料老化而逐渐磨损,导致其使用寿命有限。因此,它们更适合低频或对切换耐久性要求不高的
    腾恩科技-彭工 2025-01-10 16:15 102浏览
  • 数字隔离芯片是现代电气工程师在进行电路设计时所必须考虑的一种电子元件,主要用于保护低压控制电路中敏感电子设备的稳定运行与操作人员的人身安全。其不仅能隔离两个或多个高低压回路之间的电气联系,还能防止漏电流、共模噪声与浪涌等干扰信号的传播,有效增强电路间信号传输的抗干扰能力,同时提升电子系统的电磁兼容性与通信稳定性。容耦隔离芯片的典型应用原理图值得一提的是,在电子电路中引入隔离措施会带来传输延迟、功耗增加、成本增加与尺寸增加等问题,而数字隔离芯片的目标就是尽可能消除这些不利影响,同时满足安全法规的要
    华普微HOPERF 2025-01-15 09:48 83浏览
  • 电动汽车(EV)正在改变交通运输,为传统内燃机提供更清洁、更高效的替代方案。这种转变的核心是电力电子和能源管理方面的创新,而光耦合器在其中发挥着关键作用。这些不起眼的组件可实现可靠的通信、增强安全性并优化电动汽车系统的性能,使其成为正在进行的革命中不可或缺的一部分。光耦合器,也称为光隔离器,是一种使用光传输电信号的设备。通过隔离高压和低压电路,光耦合器可确保安全性、减少干扰并保持信号完整性。这些特性对于电动汽车至关重要,因为精确控制和安全性至关重要。 光耦合器在电动汽车中的作用1.电池
    腾恩科技-彭工 2025-01-10 16:14 82浏览
  • 食物浪费已成为全球亟待解决的严峻挑战,并对环境和经济造成了重大影响。最新统计数据显示,全球高达三分之一的粮食在生产过程中损失或被无谓浪费,这不仅导致了资源消耗,还加剧了温室气体排放,并带来了巨大经济损失。全球领先的光学解决方案供应商艾迈斯欧司朗(SIX:AMS)近日宣布,艾迈斯欧司朗基于AS7341多光谱传感器开发的创新应用来解决食物浪费这一全球性难题。其多光谱传感解决方案为农业与食品行业带来深远变革,该技术通过精确判定最佳收获时机,提升质量控制水平,并在整个供应链中有效减少浪费。 在2024
    艾迈斯欧司朗 2025-01-14 18:45 68浏览
  • 01. 什么是过程能力分析?过程能力研究利用生产过程中初始一批产品的数据,预测制造过程是否能够稳定地生产符合规格的产品。可以把它想象成一种预测。通过历史数据的分析,推断未来是否可以依赖该工艺持续生产高质量产品。客户可能会要求将过程能力研究作为生产件批准程序 (PPAP) 的一部分。这是为了确保制造过程能够持续稳定地生产合格的产品。02. 基本概念在定义制造过程时,目标是确保生产的零件符合上下规格限 (USL 和 LSL)。过程能力衡量制造过程能多大程度上稳定地生产符合规格的产品。核心概念很简单:
    优思学院 2025-01-12 15:43 529浏览
  • 根据Global Info Research(环洋市场咨询)项目团队最新调研,预计2030年全球无人机电池和电源产值达到2834百万美元,2024-2030年期间年复合增长率CAGR为10.1%。 无人机电池是为无人机提供动力并使其飞行的关键。无人机使用的电池类型因无人机的大小和型号而异。一些常见的无人机电池类型包括锂聚合物(LiPo)电池、锂离子电池和镍氢(NiMH)电池。锂聚合物电池是最常用的无人机电池类型,因为其能量密度高、设计轻巧。这些电池以输出功率大、飞行时间长而著称。不过,它们需要
    GIRtina 2025-01-13 10:49 198浏览
  •   在信号处理过程中,由于信号的时域截断会导致频谱扩展泄露现象。那么导致频谱泄露发生的根本原因是什么?又该采取什么样的改善方法。本文以ADC性能指标的测试场景为例,探讨了对ADC的输出结果进行非周期截断所带来的影响及问题总结。 两个点   为了更好的分析或处理信号,实际应用时需要从频域而非时域的角度观察原信号。但物理意义上只能直接获取信号的时域信息,为了得到信号的频域信息需要利用傅里叶变换这个工具计算出原信号的频谱函数。但对于计算机来说实现这种计算需要面对两个问题: 1.
    TIAN301 2025-01-14 14:15 110浏览
  • PNT、GNSS、GPS均是卫星定位和导航相关领域中的常见缩写词,他们经常会被用到,且在很多情况下会被等同使用或替换使用。我们会把定位导航功能测试叫做PNT性能测试,也会叫做GNSS性能测试。我们会把定位导航终端叫做GNSS模块,也会叫做GPS模块。但是实际上他们之间是有一些重要的区别。伴随着技术发展与越发深入,我们有必要对这三个词汇做以清晰的区分。一、什么是GPS?GPS是Global Positioning System(全球定位系统)的缩写,它是美国建立的全球卫星定位导航系统,是GNSS概
    德思特测试测量 2025-01-13 15:42 498浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦