0

我从以下位置安装了一个模块:

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':}将启动一个默认实例,因此我认为您不需要实例化 redis:instance,除非您希望在您的框中运行两个不同的实例。

  • 对于你的第二个问题

 include redis 

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

在这里,您要实例化两次 redis 类。

   include redis

几乎等同于

   class {'redis' :
   }

所以 second Class['redis'] 给你这个错误

您应该选择使用基本的 redis 设置或自定义设置。如果您希望同时运行两个不同版本的 redis,您将不得不在配方上努力工作。

  • 如果你想让 redis 2.6.14 监听端口 7000',你想要的只是:

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