我有一个使用apt库和puppet的stdlib的puppet类,这是代码:
class mymodule::gcc_48
{
if $::lsbdistrelease == 12.04 {
include apt
apt::ppa { 'ppa:ubuntu-toolchain-r/test': }
ensure_packages( ['gcc-4.8', 'g++-4.8'] )
exec { 'update_alternatives_gcc':
command => '/usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50',
creates => '/etc/alternatives/gcc'
}
exec { 'update_alternatives_gpp':
command => '/usr/sbin/update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50',
creates => '/etc/alternatives/g++'
}
}
}
我需要木偶按照它写的顺序完成所有这些事情(好吧,除了前两个执行官)但是我不清楚如何编写包含ensure_packages的依赖关系。我尝试使用排序箭头( - >)但这些不适用于函数(即使用ensure_packages)。
正如所写的那样,资源全部按顺序应用,并且需要几次木偶才能使一切工作。
我想尝试将所有这些代码保留在同一个类中,如果可能的话。
答案 0 :(得分:1)
这是我的理解。将课程apt::ppa
设置如下:
apt::ppa { 'ppa:ubuntu-toolchain-r/test':
# Here puts your code for this class apt::ppa,
before => Package['gcc-4.8', 'g++-4.8']
}
我建议您阅读此文档:Learning Puppet — Resource Ordering