使用puppet yumrepo资源类型的repo文件格式

时间:2014-10-28 14:35:38

标签: puppet

我正在尝试使用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, }

2 个答案:

答案 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',
}

}