【问题标题】:Assigning a class to a custom stage (Puppet)将类分配给自定义阶段(Puppet)
【发布时间】:2013-11-14 02:21:52
【问题描述】:

我正在处理我的第一个 Puppet 文件以配置 Vagrant 设置,但我有点卡住了。

我正在使用 RVM 模块来处理 Ruby 和 RubyGem 安装,但显然它们使用自己的自定义阶段,称为“rvm-install”,在主阶段之前运行。

为了安装 RVM 的依赖项(包资源),我需要在“rvm-install”阶段之前运行它们。我意识到这意味着我需要在此之前运行一个自定义阶段。

我已经编写了包含需要完成的事情的这个类......但我不明白如何将这个类分配给一个阶段......PuppetLabs 的文档似乎没有涵盖你应该如何做当你在课堂上已经有一大堆东西时这样做。

class before-rm { 

  exec { "apt-get update":
    command => "/usr/bin/apt-get update"
  }

  package { "libxml2":
    ensure => present,
    require => Exec['apt-get update']
  }

  package { "nodejs":
    ensure => present,
    require => Exec['apt-get update']
  }

}

任何帮助将不胜感激。这就是我在同一个文件中定义舞台的方式:

# Custom stage!
stage { 'before-rvm':
  before => Stage['rvm-install']
}

Stage['before-rvm'] -> Stage['rvm-install']

【问题讨论】:

    标签: rvm vagrant puppet


    【解决方案1】:

    通常你会像这样在主阶段实例化 before-rm 类:

    include before-rm
    

    相当于

    class { 'before-rm': } 
    

    要为另一个阶段实例化一个类,您可以使用元参数(不是类的参数,一般是所有类)stage

    class { 'before-rm': 
      stage => before-rvm
    }
    

    这是文档中的链接:http://docs.puppetlabs.com/puppet/2.7/reference/lang_run_stages.html#assigning-classes-to-stages

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-03
      • 2017-09-05
      • 2016-11-23
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-13
      相关资源
      最近更新 更多