使用puppet第三方模块

时间:2014-02-26 09:16:47

标签: puppet puppetlabs-apache

我安装了一个模块:

Puppet Redis Module

现在我的目录结构如下:

enter image description here

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. 的区别
  3. 运行清单时出错:   enter image description here

1 个答案:

答案 0 :(得分:1)

  • 对于您的第一个问题,class{'redis':}将启动默认实例,因此我认为您不需要实例化redis:instance,除非您希望在框中运行两个不同的实例。

  • 第二个问题

 include redis 

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

这里你实例化了两次redis类。

   include redis

几乎相当于

   class {'redis' :
   }

所以第二类['redis']给你这个错误

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

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

node 'nodename'{
    class{'redis':
       version    => '2.6.14',
       redis_port => '7000'
    }
}