从我的包openvpn安装到哪里?

时间:2013-11-25 13:10:18

标签: amazon-s3 ubuntu-12.04 chef chef-recipe knife

当我写下我的食谱时:

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还是别的。

,我可以采用第二种方式吗?

1 个答案:

答案 0 :(得分:2)

  1. Openvpn由Ubuntu打包,因此它来自Ubuntu软件包库。 Chef为apt资源使用package包提供程序。这意味着当您在配方中说package "openvpn"时,Chef会查看节点的平台(例如,ubuntu 12.04)并使用apt-get install进行安装。如果您使用的是CentOS,则会使用yum。

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

  3. 示例:

    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替换为您的实际版本,或以其他方式更改文件名以符合您的偏好)