当我写下我的食谱时:
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还是别的。
,我可以采用第二种方式吗?答案 0 :(得分:2)
Openvpn由Ubuntu打包,因此它来自Ubuntu软件包库。 Chef为apt
资源使用package
包提供程序。这意味着当您在配方中说package "openvpn"
时,Chef会查看节点的平台(例如,ubuntu 12.04)并使用apt-get install
进行安装。如果您使用的是CentOS,则会使用yum。
如果您想使用S3存储配置文件,您可以使用远程文件将源指定为实际文件的URI:
示例:
remote_file "/etc/openvpn/openvpn.conf" do
source "https://your-bukket.s3.amazonaws.com/openvpn.conf"
action :create
end
如果存储桶是私有的,您需要使用Opscode's "aws" cookbook中的aws_s3_file
替代资源。有关如何使用该资源的信息,请参阅自述文件 - 它会传入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替换为您的实际版本,或以其他方式更改文件名以符合您的偏好)