使用ensure_packages的类中的资源顺序

时间:2014-12-30 19:17:14

标签: puppet

我有一个使用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)。

正如所写的那样,资源全部按顺序应用,并且需要几次木偶才能使一切工作。

我想尝试将所有这些代码保留在同一个类中,如果可能的话。

1 个答案:

答案 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