Chef infra 厨师长:如果已经存在amazon-ssm-agent-2.2.355.0-1.x86_64,则跳过安装
如果计算机上已存在代理“amazon-ssm-agent-2.2.355.0-1.x86_64”,如何跳过ssm代理的安装 这是我的食谱:Chef infra 厨师长:如果已经存在amazon-ssm-agent-2.2.355.0-1.x86_64,则跳过安装,chef-infra,Chef Infra,如果计算机上已存在代理“amazon-ssm-agent-2.2.355.0-1.x86_64”,如何跳过ssm代理的安装 这是我的食谱: remote_file '/tmp/amazon-ssm-agent.rpm' do source 'https://s3.amazonaws.com/SMAgent/linux_amd64/amazon-ssm-agent.rpm' action :create notifies :run, 'execute[amazon-ssm-agent-
remote_file '/tmp/amazon-ssm-agent.rpm' do
source 'https://s3.amazonaws.com/SMAgent/linux_amd64/amazon-ssm-agent.rpm'
action :create
notifies :run, 'execute[amazon-ssm-agent-install]', :immediately
end
execute 'amazon-ssm-agent-install' do
command 'rpm -ivh /tmp/amazon-ssm-agent.rpm'
action :nothing
rpm -qa | grep ssm
end
使用
rpm\u包
资源代替。它了解如何检查已经存在的包。使用rpm\u包
资源。它了解如何检查已存在的包。使用包
资源或其相关资源之一(在本例中为rpm\u包
)将是处理此特定情况的最佳方法。但是,您应该查看有关厨师资源的详细信息
在您的情况下,rpm-qa | grep ssm
是正确的命令,但您需要使用not_if
防护装置来防止安装。例如:
not_如果'rpm-qa | grep ssm'
当一个字符串被传递给一个警卫时,它将作为一个shell命令运行。shell命令的结果(
true
或false
)确定资源是否将基于保护类型运行(仅当
保护返回true时运行,或不当
保护返回true时运行)。您还应该熟悉的不同选项,因为shell脚本不是唯一的选项。使用包
资源或其相关资源之一(在本例中为rpm\u包
)将是处理此特定情况的最佳方法。但是,您应该查看有关厨师资源的详细信息
在您的情况下,rpm-qa | grep ssm
是正确的命令,但您需要使用not_if
防护装置来防止安装。例如:
not_如果'rpm-qa | grep ssm'
当一个字符串被传递给一个警卫时,它将作为一个shell命令运行。shell命令的结果(true
或false
)确定资源是否将基于保护类型运行(仅当
保护返回true时运行,或不当
保护返回true时运行)。您还应该熟悉的不同选项,因为shell脚本不是唯一的选项