Puppet未卸载软件包
我正试图用puppet卸载packageA,但是puppet没有卸载 我的包资源如下所示:Puppet未卸载软件包,puppet,rpm,configuration-management,puppet-enterprise,Puppet,Rpm,Configuration Management,Puppet Enterprise,我正试图用puppet卸载packageA,但是puppet没有卸载 我的包资源如下所示: package { 'packageA': ensure => absent, provider => rpm, alias => 'packageA', name => 'packageA', uninstall_opt
package {
'packageA':
ensure => absent,
provider => rpm,
alias => 'packageA',
name => 'packageA',
uninstall_options => ['--nodeps'],
}
以下是该软件包的--debug
傀儡日志:
Debug: /Package[packageA]: Provider rpm does not support features targetable; not managing attribute command
Debug: Executing: '/bin/rpm --version'
Debug: Executing '/bin/rpm -qa --nosignature --nodigest --qf '%{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n' | sort'
Debug: Executing: '/bin/rpm -q packageA --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n'
Debug: Executing: '/bin/rpm -q packageA --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION} %{RELEASE} %{ARCH}\n --whatprovides'
Debug: /Package[packageA]: Nothing to manage: no ensure and the resource doesn't exist
我没有看到puppet在任何地方执行rpm-e--nodeps packageA
。我错过什么了吗
请注意,如果在exec
资源中有rpm-e packageA--nodeps
,它将卸载该包。但是我想知道上面的包资源有什么问题
提前谢谢
我没有看到木偶在任何地方执行rpm-e——nodeps packageA。我错过什么了吗
是的,不是,也许
你看到了吗
??这说明PackagepackageA
一开始就没有安装。在这种情况下,木偶不需要做任何事情来使它缺席。特别是,它不会对(最初)未安装的包执行rpm-e
命令
然而,这条信息也表示“不保证”。这可能显示了一个bug,但它似乎在告诉您,它所应用的包
没有表示sure
属性,这意味着所显示的输出与所显示的代码不符。不过,这并没有改变上一段中的任何内容。试试这个
package { 'packageA':
ensure => absent,
alias => 'packageA-<version or arch>',
uninstall_options => ['--nodeps'],
}
package{'packageA':
确保=>缺席,
别名=>“packageA-”,
卸载\u选项=>['--nodeps'],
}
不指定提供程序是一种很好的做法,Puppet的优点之一是抽象层,它会为您找到正确的提供程序,这样您的代码就可以在任何操作系统上运行,您可能会发现Puppet通过yum成功地删除了此包。把这种复杂性留给木偶来解决
只有当包可能被称为不同名称时,才需要别名,yum info应该告诉您这一点或rpm-qa-packageA
,这对于添加到原始问题中很有用
通常不需要指定名称,因为它默认为资源标题
package { 'packageA':
ensure => absent,
alias => 'packageA-<version or arch>',
uninstall_options => ['--nodeps'],
}