【问题标题】:Pre-caching downloads for Chef when using Vagrant使用 Vagrant 时为 Chef 预缓存下载
【发布时间】:2012-07-17 05:51:36
【问题描述】:

我正在使用 Vagrant 和 Chef 来自动设置开发节点。我需要安装 Oracle Java,遗憾的是不能再从 Oracle 自动下载:

重要提示 自 2012 年 3 月 26 日起,您将无法再直接下载 Oracle 网站上的 JDK,无需使用成熟的浏览器。 出于这个原因,java::oracle 配方会强制您设置一个 可通过 HTTP 访问的私有存储库。最好覆盖 使用角色的虚拟 URL。

我想将下载的 JDK 与我的 Vagrantfile 捆绑在一起,这样它就可以自动安装,而无需在内部 Web 服务器上发布 JDK。有没有办法可以将文件注入到 chef-solo 的文件缓存中,以便在安装配方时找到它?

chef-solo 食谱似乎不支持 file_cache_path 属性。我曾想过将其设置为 Vagrant 共享的文件夹,但这似乎不起作用。

【问题讨论】:

  • 我认为当前的 Vagrant 版本不可能做到这一点。我已经修改了主厨供应商以启用此功能,但在我提出拉取请求之前需要对其进行清理。同时,如果有人想出一种无需修补 Vagrant 即可工作的方法,我会接受它作为答案。
  • 我很高兴接受这样的对 Vagrant 的拉取请求。 :) 把它贴出来,我会审查。
  • @Mitchell 我会尽力清理它并在周末提交。
  • 创建一个特殊的食谱怎么样,把你想要安装java的文件放在那里(到文件/默认/)。并使用 cookbook_fileexecute 从配方运行 java 安装?

标签: java chef-infra vagrant


【解决方案1】:

对于我们安装的许多软件包,我们如何解决这个问题是创建一个本地 squid 代理服务器,供我们使用 Vagrant 启动的实例使用。

我们第一次下载包时,它会按照您的预期运行。但是在接下来的运行中,东西被缓存在本地并且运行得更快。

当然,这并不能解决您使用 Oracle JDK 的具体问题,因为您无法将其作为配方的一部分下载。

【讨论】:

    【解决方案2】:

    使用社区 java 食谱并设置

    override['java']['oracle']['accept_oracle_download_terms'] = true
    

    这就是我在所有服务器上安装 java 的方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多