使用 puppet 配置 Corosync

使用 puppet 配置 Corosync

我对 puppet 还比较陌生,我正在尝试用 puppet 创建一个配置,以便生成一个可立即使用的生产系统,就像我们目前正在使用的那样。

我使用 Debian Jessie 和 Puppet 3.7.2 作为 Puppet 主服务器和客户端。我已经从 backport 安装了 corosync,现在我正尝试使用 puppetlabs-corosync 模块将其配置为类似于生产系统。

问题 1:

我的生产配置有一行:

meta target-role="Started"

对于大多数原语,而我的新系统却没有,我怎样才能得到那条线呢?

原语示例:

primitive ws.client.tld_IP ocf:heartbeat:IPaddr2 \
    params ip="10.0.7.30" cidr_netmask="24" nic="eth0" \
    op monitor interval="120s" timeout="20s" \
    meta target-role="Started"

傀儡代码:

cs_primitive { 'ws.client.tld_IP':
  cib => 'client',
  primitive_class => 'ocf',
  provided_by     => 'heartbeat',
  primitive_type  => 'IPaddr2',
  parameters      => { 'ip' => '10.0.7.30', 'cidr_netmask' => '24', 'nic' => 'eth0' },
  operations      => { 'monitor' => { 'interval' => '120s', timeout=> '20s' } },
}

我尝试在原始配置中添加“元数据”行,但无法获得正确的语法,也没有找到示例。

问题2:

我添加了一行:

cib => 'client',

到每个原始、位置、主机托管、组以及 cs_shadow 配置项,它们都添加到该影子 cib - 但未添加到实时集群。如何通过 puppet 将影子 cib 应用于实时集群?

问题3:

我该如何修复这些警告?

Warning: Found multiple default providers for cs_shadow: crm, pcs; using crm
Warning: Found multiple default providers for cs_commit: crm, pcs; using crm

Warning: Puppet::Util::SUIDManager.run_and_capture is deprecated; please use Puppet::Util::Execution.execute instead.
   (at /usr/lib/ruby/vendor_ruby/puppet/util/suidmanager.rb:174:in `run_and_capture')

我有一行:

provider  =>  'crm',

在 cs_shadow 项中,但警告没有消失。另外,我不应该直接使用 cs_commit(而且我没有使用),所以我不能在那里添加类似的行。

答案1

关于问题 1:

您实际上不需要该行,因为target-role=Started这是默认设置。我预计您的生产节点会有这些行,因为过去某个时间点有人通过 crm shell 停止/启动了资源。

例如,如果您运行,# crm resource stop ws.client.tld_IP您将在配置中看到以下内容:

primitive ws.client.tld_IP ocf:heartbeat:IPaddr2 \
params ip="10.0.7.30" cidr_netmask="24" nic="eth0" \
op monitor interval="120s" timeout="20s" \
meta target-role="Stopped"

我快速浏览了以下模块,但它们似乎都不支持设置 Pacemaker 资源的“元”选项: https://forge.puppet.com/modules?utf-8=%E2%9C%93&sort=rank&q=pacemaker

相关内容