我对 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