使用 puppet 安装源包

使用 puppet 安装源包

对于我的服务器安装,我需要 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。这对于源编译来说非常繁琐且容易出错,因为中间步骤的结果可能不再存在。因此很难确定源编译和安装的可靠事实。

相关内容