0

から1つのモジュールをインストールしました:

Puppet Redis モジュール

今、私は次のようなディレクトリ構造を持っています:

ここに画像の説明を入力

g_redis.pp の内容:

class g_redis{
   include redis 

   class {'redis' : 
      version => '2.6.14',
      redis_port => '7000' ----->A
   }

   redis::instance{ 'redis-7000'
      redis_port => '7000', ----->B
   }
}    

site.pp の内容は次のとおりです。

import 'classes/*.pp'

node default{}

node 'nodename'{
    include g_redis
}

今、私は次のような質問があります:

  1. (A) と (B) の違いは何ですか
  2. マニフェストの実行中にエラーが発生しています: ここに画像の説明を入力
4

1 に答える 1

1
  • 最初の質問でclass{'redis':}は、デフォルトのインスタンスが開始されるため、ボックスで 2 つの異なるインスタンスを実行する必要がない限り、redis:instance をインスタンス化する必要はないと思います。

  • 2 番目の質問について

 include redis 

 class {'redis' : 
    version => '2.6.14',
    redis_port => '7000' ----->A
 }

ここでは、redis クラスを 2 回インスタンス化しています。

   include redis

とほぼ同等

   class {'redis' :
   }

したがって、2番目の Class['redis'] はこのエラーを返します

基本的な redis セットアップを使用するか、カスタマイズしたセットアップを使用するかを選択する必要があります。2 つの異なるバージョンの redis を同時に実行したい場合は、レシピに一生懸命取り組む必要があります。

  • ポート 7000' でリッスンする redis 2.6.14 が必要な場合は、次のようにします。

node 'nodename'{
    class{'redis':
       version    => '2.6.14',
       redis_port => '7000'
    }
}
于 2014-02-26T16:32:28.140 に答える