使用Chef recipe确保节点具有特定版本的apache

使用Chef recipe确保节点具有特定版本的apache,apache,chef-infra,Apache,Chef Infra,我最近一直在和Chef打交道,以便对其进行评估,并将其用作部署和基础架构选项。有一件事让我很困惑,那就是Apache 我运行这个节点的Ubuntu虚拟机附带的Apache版本是2.2.22。我希望确保每当我的节点聚合时(使用chef客户端),它都会升级到2.4(如果还没有达到该版本的话)。我一直在使用的食谱/食谱使用apt软件包管理器。我知道我可以使用apt手动升级Apache,但我认为必须有一种方法告诉我的主食谱来实现这一点。请参阅apt\u包的此链接 您可以指定 默认值[:apache][:

我最近一直在和Chef打交道,以便对其进行评估,并将其用作部署和基础架构选项。有一件事让我很困惑,那就是Apache


我运行这个节点的Ubuntu虚拟机附带的Apache版本是2.2.22。我希望确保每当我的节点聚合时(使用chef客户端),它都会升级到2.4(如果还没有达到该版本的话)。我一直在使用的食谱/食谱使用apt软件包管理器。我知道我可以使用apt手动升级Apache,但我认为必须有一种方法告诉我的主食谱来实现这一点。

请参阅apt\u包的此链接

您可以指定

默认值[:apache][:version]=“2.4”

在您的attributes/default.rb中

然后在配方中

apt_package "name_of_package" do
  version node[:apache][:version]
end

有关apt_软件包,请参阅此链接

您可以指定

默认值[:apache][:version]=“2.4”

在您的attributes/default.rb中

然后在配方中

apt_package "name_of_package" do
  version node[:apache][:version]
end

“包的名称”,应该是“apache2”还是其他什么?我尝试使用“apache2”运行它,并得到以下消息:“在资源”apt_package[apache2]上执行操作时出错
install
;Chef::Exceptions::Exec;apt get-q-y install apache2=2.4返回100,预期为0”无需考虑,我只需将
操作:升级
参数添加到您添加的配方片段中。但它实际上并没有执行升级,因为当我使用
apache2-v
命令时,它仍然显示2.2.22“包的名称”,应该是“apache2”还是其他什么?我尝试使用“apache2”运行它,并得到以下消息:“在资源”apt_package[apache2]上执行操作时出错
install
;Chef::Exceptions::Exec;apt get-q-y install apache2=2.4返回100,预期为0”无需考虑,我只需将
操作:升级
参数添加到您添加的配方片段中。但它实际上并没有执行升级,因为当我使用
apache2-v
命令时,它仍然显示2.2.22