在 puppet 中定义硬链接

rvs*_*rvs 3 chroot puppet

有没有办法在木偶清单中定义硬链接?

似乎文件类型只能定义符号链接,但我需要它是硬链接才能使我的一些 chroot 应用程序工作。例如,我需要硬链接

/etc/hosts -> $chroot/etc/hosts
/etc/resolvf.com -> $chroot/etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)

等等。

存档的最简单方法是什么?

更新:谢谢,我已经结束了以下定义:

define hardlinkdir(source=$name, target) {                                                                                                                   
    exec {                                                                                                                                                   
        "hardlinkdir-$name":                                                                                                                                 
            command => "cp -r --link $target $source",                                                                                                       
            path    => "/usr/bin:/bin",                                                                                                                      
            creates => $source;                                                                                                                              
    }                                                                                                                                                        
}                                                                                                                                                            

define hardlink(source=$name, target) {                                                                                                                      
    exec {                                                                                                                                                   
        "hardlink-$name":                                                                                                                                    
            command => "ln --force $target $source",                                                                                                         
            path    => "/usr/bin:/bin",                                                                                                                      
            unless  => "test $source -ef $target";                                                                                                           
    }                                                                                                                                                        
}
Run Code Online (Sandbox Code Playgroud)

当然,它们并不完美,但它们可以胜任,这是我需要的一切。

感谢您的帮助!

小智 6

如果找不到任何其他方式,也可以使用语句“exec”。

exec { "hardlink1":
    command => "ln target source",
    path    => "/usr/local/bin:/bin",
    creates => "yourhardlink"
}
Run Code Online (Sandbox Code Playgroud)