在 ubuntu lucid 上安装 varnish 3.0 的 Chef 配方?

在 ubuntu lucid 上安装 varnish 3.0 的 Chef 配方?

这是我的问题。我想要 Varnish 3.0,但 Lucid 只有 2.1 版可用。

因此,使用 Chef,我需要制作一个安装配方,将 varnish-cache.org 存储库添加到 apt 源并安装 varnish-3.0 包。

(我可以选择从源代码构建它(对吗?),但如果我这样做,我将无法获得 /etc/init.d 脚本(对吗?))。

因此,我正在编写一个 apt_install.rb 配方,该配方可能会添加存储库:

apt_repository "varnish-3.0" do
  uri "http://repo.varnish-cache.org/ubuntu/"
  repo_name "varnish-3.0"
  distribution "lucid"
  components ["varnish-3.0"]
  key "http://repo.varnish-cache.org/debian/GPG-key.txt"
  deb_src true
  action :add
end

事实上,这会在 /etc/apt/sources.list.d 中添加一个 varnish-3.0-source.list,其内容为:

# Created by the Chef apt_repository LWRP
deb http://repo.varnish-cache.org/ubuntu/ lucid main

然后我有

package "varnish" do
  source "http://repo.varnish-cache.org/ubuntu/"
  action :install
end

它会在我的服务器上安装 2.1 版本,而不是 3.0 版本。

如果我在包块中指定“版本”,则会收到“未找到版本”的信息。

我在这里遗漏了什么? 一定是一些简单的东西。

答案1

我最大的问题是 apt cookbook 的版本太旧了。即便如此,Varnish 发行版的名称还是有点不寻常。这是我的配置:

apt_repository "varnish-3.0" do
  uri "http://repo.varnish-cache.org/ubuntu/"
  repo_name "varnish-3.0"
  distribution "lucid"
  components ["varnish-3.0"]
  key "varnish-cache.org.gpg-key.txt"
  deb_src true
  action :add
end

package "varnish" do
  source "http://repo.varnish-cache.org/ubuntu/"
  version "3.0.2-1~1lucid1"
  options "--force-yes"
  action :install
end

存储库密钥以菜谱文件形式包含在内。

在现有 Varnish 2.3 安装上运行此配方时,第一次 chef-client 运行在尝试处理 apt 升级的配置文件对话框时失败。在我的例子中,第二次 chef-client 运行干净且正确。

答案2

我认为楼主回答的方法是正确的。

然而,如果由于某种原因这是不可接受的,您可以做的另一件事是从源代码创建自己的 .deb 包。

就我个人而言,我不会使用每个包管理器的不同版本的 Crazy,而是使用Jordan Sissel 的 FPM。FPM 使制作不同风格的软件包变得非常容易,文档将引导您完成具体的示例,例如用例 - 使用“make install”进行打包

(个人说明:这是流浪汉

相关内容