`package {
"apache2_2.4.7-1ubuntu4_amd64(1)":
ensure => present,
provider => 'dpkg',
source => "/home/apache/apache2_2.4.7-1ubuntu4_amd64(1).deb",
require => File["/home/apache/apache2_2.4.7-1ubuntu4_amd64(1).deb"],
subscribe => Exec["dpkg --install"],
install_options => ["INSTLLDIR=/usr/bin:/usr/sbin:/sbin"],
}
package {
"apache2-bin_2.4.7-1ubuntu4_amd64":
ensure => present,
provider => 'dpkg',
source => "/home/apache/apache2-bin_2.4.7-1ubuntu4_amd64.deb",
require => File["/home/apache/apache2-bin_2.4.7-1ubuntu4_amd64.deb"],
subscribe => Exec["dpkg --install"],
install_options => ["INSTLLDIR=/usr/bin:/usr/sbin:/sbin"],
}
package {
"libapr1_1.5.0-1_amd64":
ensure => present,
provider => 'dpkg',
source => "/home/apache/libapr1_1.5.0-1_amd64.deb",
require => File["/home/apache/libapr1_1.5.0-1_amd64.deb"],
subscribe => Exec["dpkg --install"],
install_options => ["INSTLLDIR=/usr/bin:/usr/sbin:/sbin"],
}`
当我安装具有大量依赖性的包时,我必须在包部分中编写此代码而不是在包的多个部分中编写。 因为代码非常冗长。 那么当包具有更多依赖性并在一个包部分时如何编写代码? 例如 我必须在一个包部分编写整个包依赖代码,如
package {
}
如何在小号行中减少此代码? 请帮帮我。
答案 0 :(得分:0)
在您的具体情况下 - 只是不要。设置本地apt
存储库并停止复制.deb
个文件。
一般来说,为了避免复制/粘贴:
创建一个已定义的类型来包装资源。
define common_package($ensure=present, $source, $provider='dpkg') {
package {
$title:
ensure => $ensure,
provider => $provider,
source => $source,
require => File[$source],
subscribe => Exec["dpkg --install"],
install_options => ["INSTLLDIR=/usr/bin:/usr/sbin:/sbin"],
}
}
然后像这样使用它:
common_package {
'apache2_2.4.7-1ubuntu4_amd64(1)':
source => '/home/apache/apache2_2.4.7-1ubuntu4_amd64(1).deb';
'apache2-bin_2.4.7-1ubuntu4_amd64':
source => '/home/apache/apache2-bin_2.4.7-1ubuntu4_amd64.deb';
'libapr1_1.5.0-1_amd64':
source => '/home/apache/libapr1_1.5.0-1_amd64.deb';
}