我正在尝试使用puppet来管理我的/etc/yum.repos.d/CentOS-Base.repo文件。内置的puppet yumrepo资源类型正在添加预期的baseurl值,但是它会在文件中的下一个repo的注释之后放置该行,[更新]。
如何强制木偶更精美地格式化[基础]回购?理想情况下,我希望puppet用" #released updates"之后的行替换注释的baseurl条目,如下所示。
[base]
name=CentOS-$releasever - Base
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
#released updates
baseurl=http://SERVERXXX/distros/CentOS/$releasever/os/$basearch/
[updates]
以下是puppet代码段:
class repos {
case $operatingsystem {
"CentOS", "RedHat": {
yumrepo { "base":
baseurl => 'http://SERVERXXX/distros/CentOS/$releasever/os/$basearch/',
gpgcheck => "1",
gpgkey => "file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6",
mirrorlist => absent,
}
答案 0 :(得分:2)
yumrepo
类型(原样)无法进行任何格式化。
您可以将它与augeas
结合起来进行修补,但这可能不值得麻烦。
当每个存储库都有自己的文件时,您的里程可能是最佳的。但是这些设置仍然会以混乱的方式进行排序。
答案 1 :(得分:1)
你最好的选择是使用另一个资源作为类的一部分来添加注释行(augues,line in file,template)以及其他几种处理方法,或者只使用descr属性以便清单和它的效果更清晰,你不需要额外的评论,因为名称将提供更多的信息。
class repos {
yumrepo { 'epel-testing-source':
ensure => 'present',
descr => 'Extra Packages for Enterprise Linux 6 - Testing - $basearch - Source',
enabled => '0',
failovermethod => 'priority',
gpgcheck => '1',
gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6',
mirrorlist => 'https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel6&arch=$basearch',
}
}