Puppet Vcsrepo (git):出现错误“存在但不是所需的存储库。”

Puppet Vcsrepo (git):出现错误“存在但不是所需的存储库。”

我正在使用 vcsrepo 和 git 来维护 ubuntu 系统上的一堆软件。我循环使用这段 puppet 代码来使文件保持最新

      vcsrepo { "/usr/local/tools/$repo":
        ensure   => latest,
        provider => git,
        user     => 'tools',
        source   => "https://[email protected]/uoa/$repo.git";
      }

我用过latestpresent但没明显效果

Error: Path /usr/local/tools/common-library exists and is not the desired repository.使用所有的 Ubuntu 系统,除了一个仍在运行 16.04 的旧系统

Vcsrepo 版本是 3.0.0,puppet 版本是 5。是的,我知道这些都是旧的,但这超出了我的控制范围。我最好的猜测是 git 中发生了一些变化。

答案1

是的,git 的 CVE 补丁打破了您现有的配置。这是过去几天在 Debian Buster 上发布的,导致系统 puppet (5.5.10-4) 出现故障。似乎没有针对 vcsrepo 3.2.1 的补丁,最新版本支持 Puppet 5。我不确定为什么我的 Bullseye 机器似乎没有受到影响。作为一种解决方法,此 WFM:

一次:

  case $::facts['os']['distro']['codename'] {
    'buster' : {
      concat { '/etc/gitconfig' :
        owner   => 'root',
        group   => 'root',
        mode    => '0644',
      }
    }
  }

然后在我的项目处理类中:

  case $::facts['os']['distro']['codename'] {
    'buster' : {
      concat::fragment { "gitconfig_$project" :
        target  => '/etc/gitconfig',
        content => "[safe]\n\tdirectory = /usr/local/repos/$project\n\n",
        before  => Vcsrepo["/usr/local/repos/$project"],
      }
    }
  }

显然,需要根据您的操作系统/路径调整变量。

相关内容