使用Vagrant时,Chef的预缓存下载

时间:2012-07-18 08:28:22

标签: java chef vagrant

我正在使用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共享的文件夹,但这似乎不起作用。

2 个答案:

答案 0 :(得分:0)

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

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

当然,这并未解决您在Oracle JDK中遇到的具体问题,因为您无法将其作为配方的一部分下载。

答案 1 :(得分:0)

使用社区java食谱并设置

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

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