我使用vcsrepo和git来维护ubuntu系统上的一堆软件。我使用循环中的这个伪代码来保持文件的更新。
vcsrepo { "/usr/local/tools/$repo":
ensure => latest,
provider => git,
user => 'tools',
source => "https://xxxxx@bitbucket.org/uoa/$repo.git";
}我正在使用latest,然后切换到present,没有明显的效果。
我在我所有的ubuntu系统上都有Error: Path /usr/local/tools/common-library exists and is not the desired repository.,除了一个还在运行16.04的旧系统
Vcsrepo版本是3.0.0,木偶是5岁。是的,我知道这些都是旧的,但这超出了我的控制范围,我最好的猜测是git中有些东西发生了变化。
发布于 2022-12-16 22:14:59
是的,用于git 破产了的CVE修补程序是您现有的配置。这是在过去几天在Debian Buster上发布的,在系统傀儡(5.5.10-4)上造成了破坏。似乎没有适用于vcsrepo 3.2.1的修补程序,这是最新的支持Puppet 5的修补程序。我不知道为什么我的牛眼机器没有受到影响。作为解决办法,这个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"],
}
}
}显然,调整您的操作系统/路径的变量。
https://serverfault.com/questions/1101645
复制相似问题