Puppet包“ensure => latest”并不总是有效

前端之家收集整理的这篇文章主要介绍了Puppet包“ensure => latest”并不总是有效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个独特的情况,Puppet包确保=>最新指令仅适用于我的一些系统.在30台服务器中,软件包在除4之外的所有服务器上都正确更新.我正在尝试从<软件套件中获取主要版本的软件. 9.40至9.50.我可以指定一个硬级别,但我会遇到 the multiple architecture wildcard issue.

清单代码段:

# Install packages
$spppackages = [ "hp-snmp-agents","hpssa","hp-health","hp-smh-templates","hpsmh","hpssacli","hponcfg",]

package { $spppackages:
  ensure  => latest,require => Yumrepo['HP-spp'],}

集体地位:

mco package hp-snmp-agents status

Summary of Ensure:

   9.50-2564.40.rhel6 = 14
   9.50-2564.34.rhel5 = 9
   9.40-2506.37.rhel6 = 4 <== This is what I'm trying to fix!
   9.50-2564.35.rhel5 = 1

我试过在受影响的系统上调试这个:

puppet apply --verbose --debug --execute 'package { hp-snmp-agents: ensure => latest }'

导致:

Info: Applying configuration version '1393411670'
Debug: Prefetching yum resources for package
Debug: Executing '/bin/rpm --version'
Debug: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} :DESC: %{SUMMARY}\n''
Error: Could not prefetch package provider 'yum': invalid byte sequence in US-ASCII
Debug: Executing '/bin/rpm -q hp-snmp-agents --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} :DESC: %{SUMMARY}\n''
Debug: Finishing transaction 11762680
Debug: Storing state
Debug: Stored state in 0.09 seconds

运行yum list更新hp-snmp-agents显示yum可以更新软件包,并且有更新版本可用:

Installed Packages
hp-snmp-agents.x86_64                                   9.40-2506.37.rhel6                                   @HP-spp
Available Packages
hp-snmp-agents.x86_64                                   9.50-2564.40.rhel6                                   HP-spp

似乎问题可能是rpm版本查询格式.手动运行产生:

# /bin/rpm -q hp-snmp-agents --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} :DESC: %{SUMMARY}\n'
hp-snmp-agents 0 9.40 2506.37.rhel6 x86_64 :DESC: Insight Management Agents(SNMP) for HP ProLiant Systems

如果我确保=> hp-snmp-agents包上的9.50-xxx,我可以强迫它在顽固系统上工作.即使输入伪造的版本号,似乎也会快速启动目录构建,并且随后的木偶代理运行正常工作和更新.我只是好奇为什么这个服务器可以在30台服务器中的26台上无缝工作,并且需要按摩其余部分.

请注意,我通过Mcollective完成所有yum清洁作为初始故障排除步骤

我相信相关问题是这样的:
Debug: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH} :DESC: %{SUMMARY}\n''
Error: Could not prefetch package provider 'yum': invalid byte sequence in US-ASCII

在这个bug中讨论了这个问题:https://tickets.puppetlabs.com/browse/PUP-736

基本上,在rpm -qa …输出的某个地方,你得到一个UTF-8(或其他非ASCII)字符,这导致傀儡认为“yum”提供者不好.由于“rpm”后备提供程序没有确保=>最新的支持,它忽略了,你得到旧版本.

你可以升级到puppet 3.4.3,其中包括一个修复,或者比较/ bin / rpm -qa … |在工作正确且无法正常查找罪魁祸首包的框之间对输出进行排序.从LANG = C更改为LANG = en_US.UTF-8(或任何其他有效的UTF-8 LANG)也应暂时解决此问题.

原文链接:https://www.f2er.com/bash/385718.html

猜你在找的Bash相关文章