Azure 如何使用“除非”检查软件包是否已安装?
我已经创建了一个puppet脚本来安装Azure客户端,在使用yum install之前的最后一步中,我想确保以前没有安装该包,以防止重复安装 我的想法是 如果az-help的输出没有给出任何表示没有Azure安装的内容,则执行脚本 如果你们有更好的选择,请指导我,谢谢 我的代码是Azure 如何使用“除非”检查软件包是否已安装?,azure,puppet,puppet-enterprise,Azure,Puppet,Puppet Enterprise,我已经创建了一个puppet脚本来安装Azure客户端,在使用yum install之前的最后一步中,我想确保以前没有安装该包,以防止重复安装 我的想法是 如果az-help的输出没有给出任何表示没有Azure安装的内容,则执行脚本 如果你们有更好的选择,请指导我,谢谢 我的代码是 #install azure client exec { 'install-azure': command => '/bin/yum install azure-
#install azure client
exec { 'install-azure':
command => '/bin/yum install azure-cli -y',
path => '/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:',
unless => 'az --help',
#require => Exec['yumrepolist']
}
代码似乎有问题,我已经使用
puppet agent -t
注意:
/Stage[main]/Os\u preparation::Azure\u安装/Exec[yumrepolist]/返回:
已成功执行错误:
/Stage[main]/Os\u准备::Azure\u安装/Exec[install Azure]:无法
未评估:找不到命令“az”
有什么想法吗?谢谢您应该使用软件包资源安装azure cli。此外,还应将其Yum存储库添加为yumrepo资源
尝试下面的方法,它复制了上的说明
您不为此使用包资源的原因是什么?你似乎在重新发明轮子。实际上,我不确定exec或package是否应该使用。因为它是随yum安装而来的。我不懂。如果您想通过yum安装它,那么为什么不适合通过包资源管理它呢?
yumrepo { 'azure-cli':
descr => 'Azure CLI',
baseurl => 'https://packages.microsoft.com/yumrepos/azure-cli',
enabled => 1,
gpgcheck => 1,
gpgkey => 'https://packages.microsoft.com/keys/microsoft.asc',
}
package { 'azure-cli':
ensure => installed,
require => Yumrepo['azure-cli'],
}