0

当我在我的食谱中写道:

package "openvpn" do
  action :install
end

软件包正在安装,但是

我想知道我的包是从哪里安装的。

我想以不同的方式进行 - 我想下载 openvpn 软件并将其放入 S3 中,我想将其取回。

package "openvpn" do 
  action :install
end

remote_file "\etc\openvpn" do
  source "I want to take it from S3"
  action :install
end

如果是的话,我可以用第二种方法吗?我的包名应该是 openvpn 或其他。

4

1 回答 1

2
  1. Openvpn 由 Ubuntu 打包,因此它来自 Ubuntu 软件包存储库。Chef 使用资源的apt包提供程序package。这意味着当您package "openvpn"在食谱中说时,Chef 在幕后查看节点的平台(例如,ubuntu 12.04)并使用apt-get install它来安装它。如果您使用的是 CentOS,它将使用 yum 代替。

  2. 如果您想使用 S3 存储配置文件,您可以将源指定为带有远程文件的实际文件的 URI:

例子:

remote_file "/etc/openvpn/openvpn.conf" do
  source "https://your-bukket.s3.amazonaws.com/openvpn.conf"
  action :create
end

如果存储桶是私有的,您将需要使用aws_s3_file来自Opscode 的“aws”食谱的替代资源。有关如何使用该资源的信息,请参阅自述文件 - 它传入 AWS 凭证以访问存储桶中的项目。

如果你想提供你自己的 openvpn 包并从 S3 下载它,你可以这样做:

remote_file "/tmp/openvpn-VERSION.deb" do
  source "https://your-bukket.s3.amazonaws.com/openvpn-VERSION.deb"
  action :create_if_missing
end

dpkg_package "openvpn" do
  source "/tmp/openvpn-VERSION.deb"
  action :install
end

(将 VERSION 替换为您的实际版本,或更改文件名以适合您的偏好)

于 2013-11-25T22:56:52.847 回答