我怎样才能使用&pupratelabs / rabbitmq'模块设置HA rabbitMQ?

时间:2016-09-15 16:58:12

标签: rabbitmq puppet

我绝不是RabbitMQ的专家,但我试图将RabbitMQ集群的设置变得愚蠢。在我的同事写的文档中,我需要实现相当于执行......

rabbitmqctl set_policy HA '^(?!amq.).*' '{"ha-mode": "all"}

......在我的傀儡清单中。我试过这个......

  rabbitmq_policy { 'HA':
      pattern    => '^(?!amq.).*',
      priority   => 0,
      applyto    => 'all',
      definition => {
         'ha-mode'      => 'all',
         'ha-sync-mode' => 'automatic',
      },
  }

...但是当我做我的"木偶代理时,我得到了这个错误-t"在我的兔子代码上:

Error: Failed to apply catalog: Parameter name failed on Rabbitmq_policy[HA]: Invalid value "HA". Valid values match /^\S+@\S+$/. at /etc/puppetlabs/code/environments/production/modules/core/wraprabbitmq/manifests/init.pp:59

我做错了什么?我也有/需要这样的东西......

rabbitmq_vhost { 'myvhost':
  ensure => present,
}

...如果我正在设置HA rabbitMQ?

更新:谢谢马特。

我现在正在使用它:

   rabbitmq_policy { 'HA@/':
      pattern    => '^(?!amq.).*',
      priority   => 0,
      applyto    => 'all',
      definition => {
         'ha-mode'      => 'all',
         'ha-sync-mode' => 'automatic',
      },
   }

我也不需要使用它:

rabbitmq_vhost { 'myvhost':
  ensure => present,
}

1 个答案:

答案 0 :(得分:1)

在此处查看源代码:https://github.com/puppetlabs/puppetlabs-rabbitmq/blob/master/lib/puppet/type/rabbitmq_policy.rb#L21-L24

我们看到该类型的name参数需要是策略@vhost的组合来创建策略。'你的价值是' HA'不遵循该命名法,因此无法检查/^\S+@\S+$/

的正则表达式

您需要按照' policy @ vhost'的格式输入名称。对于rabbitmq_policy资源,然后您的代码将编译。