如何使用除非检查软件包是否已安装?

时间:2019-03-26 13:16:45

标签: azure puppet puppet-enterprise

我已经创建了一个木偶脚本来安装Azure客户端,并且在使用yum install之前的最后一步中,我想确保之前没有安装该软件包,以防止重复安装。

我的概念是 如果az --help的输出没有任何结果(这意味着没有安装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_preparation :: Azure_install / Exec [yumrepolist] /返回:   执行成功错误:   / Stage [main] / Os_preparation :: Azure_install / Exec [install-azure]:可以   无法评估:找不到命令'az'

有什么想法吗?谢谢

1 个答案:

答案 0 :(得分:1)

您应该使用cloud: consul: host: consul //container name port: 8500 资源安装azure-cli。另外,您应该将其Yum存储库添加为package资源。

尝试以下类似方法,该方法复制了https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-yum?view=azure-cli-latest上的说明。

yumrepo