1. 背景介绍
由于运行gitlab pipeline job遇到如下错误
1 | fatal: git fetch-pack: expected shallow list |
网上搜索原因, 是因为git的版本过低, 经查询确认, 确实很低还是1.x的git版本. 想通过yum源升级, 发现yum源上的最新版也才1.8.3.1
到目前2021-12-14为止要在centos7上安装2.x的 git还是要通过源码安装, 以下是源码安装git的全过程.
由于运行gitlab pipeline job遇到如下错误
1 | fatal: git fetch-pack: expected shallow list |
网上搜索原因, 是因为git的版本过低, 经查询确认, 确实很低还是1.x的git版本. 想通过yum源升级, 发现yum源上的最新版也才1.8.3.1
到目前2021-12-14为止要在centos7上安装2.x的 git还是要通过源码安装, 以下是源码安装git的全过程.
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
虽然git不必依赖一个中心化的仓库来工作, 但是中心化的仓库也能带来很多好处, 比如方便团队写作, 本文主要讲述, 如何配置git服务器, 让多人通过ssh协议的方式访问服务器端的代码仓库.
Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。
通俗的讲就是解决哪些鸡蛋应该放在哪些篮子的问题.
Tmux的作者是Nicholas Marriott, 网上关于Nicholas Marriott的介绍很少, 但是本人对创建如此复杂而功能强大的Tmux的开源开发者十分感兴趣, 希望知道的能补充一些关于Tmux的信息.
Tmux 是一个终端复用器(terminal multiplexer),非常有用,属于常用的开发工具。
打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与称为一次”会话”(session) 。
口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话不管有没有运行完。
登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。
窗口可以”解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候.
cygwin install and configuration
Cygwin 是一个在 windows 平台上运行的类 UNIX 模拟环境,是 cygnus solutions 公司开发的自由软件(该公司开发的著名工具还有 eCos,不过现已被 Redhat 收购)。它对于学习 UNIX/Linux 操作环境,或者从 UNIX 到 Windows 的应用程序移植,或者进行某些特殊的开发工作,尤其是使用 GNU 工具集在 Windows 上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对 Cygwin 产生了兴趣
Cygwin 提供一个 UNIX 模拟 DLL 以及在其上层构建的多种可以在 Linux 系统中找到的软件包,在 Windows XP SP3 以上的版本提供良好的支持。Cygwin 主要由 Red Hat 及其下属社区负责维护。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
GitLab是由GitLabInc.开发,使用MIT许可证的基于网络的Git仓库管理工具,且具有wiki和issue跟踪功能。使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab由乌克兰程序员DmitriyZaporozhets和ValerySizov开发,它使用Ruby语言写成。后来,一些部分用Go语言重写。截止2018年5月,该公司约有290名团队成员,以及2000多名开源贡献者。GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等组织使用。
网上大部分教程是介绍如何安装gitlab-ci-multi-runner如何安装,我也按这些教程中的一种安装了,最终发现,不能和最新的gitlab兼容,网上也很少有文章介绍gitlab-ci-multi-runner和gitlab-runner的区别, 实际上gitlab-ci-multi-runner是一个被废弃了的项目, 最新版本只到9.5.1, 而gitlab-runner已经到14.4.0了,在其gitliab仓库上已经说明 Project ‘gitlab-org/gitlab-ci-multi-runner’ was moved to ‘gitlab-org/gitlab-runner’. Please update any links and bookmarks that may still have the old path.
关于gitlab-runner与gitlab的兼容性原则,gitlab和gitlab-runner在主版本和小版本(major.minor)保持同步,具有相同主版本和小版本号的gitlab和gitlab-runner兼容性最好, 较老的runner可能可以兼容比較新的gitlab,反之亦然,但是不能完全保证.详情请参考官网关于兼容性原文
Ansible 是一款开源的 IT 配置管理工具,常被 IT 界的小伙伴们用于服务部署、配置管理等工作。配置文件采用最常见的 yaml 格式,学习起来也是比较容易,并且不像 SaltStack,Ansible 并不需要也没有 agent,只有一个控制端。该工具使用简单但功能非常强大,可以解决众多工作中繁琐的服务安装、配置等问题。
Ansible是一种无代理自动化工具,可安装在单个主机(称为控制节点)上。从控制节点,Ansible可以通过SSH、Powershell远程处理和许多其他传输远程管理整个机器和其他设备(称为托管节点),所有这些都是通过一个简单的命令行界面实现的,不需要数据库或守护程序。
本教程是安装环境为Windows, 在windows上要运行Ansible还需要安装Msys2, 主要用于运行 GNU 软件的开发和运行环境。同时它也是一个在Cygwin (POSIX 兼容性层) 和 MinGW-w64(从”MinGW-生成”)基础上产生的,追求更好的互操作性的 Windows 软件.
centos 7.7
第一步:首先配置本地可以安装的rpm仓库
第二步:然后安装apache将仓库export出去,
第三步:让局域网上其他计算机其他计算机可以使用自己创建的rpm仓库,也可以称为yum源。
第四步:如果能让internet上其他计算机可以访问该yum源,需要公网IP,如果方便用户记忆需要配置dns解析。(本文由于篇幅所限,不讲解此步骤, 可自行百度了解, 如何配置DNS解析)