1

Vagrant セットアップをプロビジョニングするための最初の Puppet ファイルに取り組んでいます。

Ruby と RubyGem のインストールを処理するために RVM モジュールを使用していますが、メイン ステージの前に実行される「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']
4

1 に答える 1

0

通常、メイン ステージでは、次のように 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

于 2013-11-13T18:21:52.507 に答える