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】设计模式之简单工厂模式、工厂模式、抽象工厂模式的对比

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

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


羽林君 某嵌入式程序猿分享技术、生活、人生云云文字。如有诗云:去年今日此门中,人面桃花相映红。人面不知何处去,桃花依旧笑春风。
评论
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 80浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 75浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 88浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 66浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 114浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 86浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 115浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 75浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 62浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 88浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 42浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 66浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦