对于我的服务器安装,我需要 wget 并编译源包(geos、GeoIP 和 py 绑定)。是否有预定义的 puppet 类来获取包源并进行编译?
答案1
看一下:
https://github.com/example42/puppi/blob/master/manifests/netinstall.pp
使用示例:
netinstall { 'postgis':
url => 'http://postgis.refractions.net/download/postgis-1.5.5.tar.gz',
extracted_dir => 'postgis-1.5.5',
destination_dir => '/tmp',
postextract_command => '/tmp/postgis-1.5.5/configure && make && sudo make install'
}
答案2
看来 puppet 并不是在目标系统上编译源包的最佳工具。最好的方法可能是提供一个 deb 包或任何目标系统需要的包,然后使用 puppet 安装该包。
使用 puppet 编译软件的问题是您需要使用 puppet 运行多个 exec { } 命令。每次您都必须根据系统中的某些事实(文件存在、服务存在与否等)确定是否必须执行 exec。这对于源编译来说非常繁琐且容易出错,因为中间步骤的结果可能不再存在。因此很难确定源编译和安装的可靠事实。