2014-10-28 50 views
0

我試圖用木偶來管理我的/etc/yum.repos.d/CentOS-Base.repo文件。內置的puppet yumrepo資源類型添加了預期的baseurl值,但它將該行放置在文件中的下一個repo的註釋之後[更新]。回購文件格式與木偶yumrepo資源類型

我該如何強制傀儡更格式化[基地]回購?理想情況下,我希望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] 

這裏是木偶的代碼片斷:

類回購{ 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

yumrepo類型(因爲它代表)不能夠任何格式的。

您可能可以將它與augeas結合做一些修補,但它可能不值得一提。

當每個存儲庫都有自己的文件時,您的里程可能會最好。但是這些設置仍然會相當混亂。

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

}