我正在使用 Vagrant 和 Chef 自动设置开发节点。我需要安装 Oracle Java,不幸的是,它不能再从 Oracle 自动下载:
IMPORTANT NOTE As of 26 March 2012 you can no longer directly download the JDK from Oracle's website without using a full-fledged browser. For that reason, the java::oracle recipe forces you to set up a private repository accessible by HTTP. It is best to override the dummy URL using a role.
我想将下载的 JDK 与我的 Vagrantfile 捆绑在一起,这样它就可以自动安装,而无需在内部 Web 服务器上发布 JDK。有没有一种方法可以将文件注入(inject) chef-solo 的文件缓存中,以便在安装 Recipe 时找到它?
chef-solo 配方似乎不支持 file_cache_path 属性。我曾想将其设置为 Vagrant 共享的文件夹,但这似乎不起作用。
最佳答案
我们如何解决我们安装的许多软件包的这个问题是创建一个本地 squid 代理服务器,供我们使用 Vagrant 启动的实例使用。
我们第一次下载包时,它按您预期的方式运行。但是在接下来的运行中,事情会缓存在本地并且运行得更快。
当然,这不能解决您与 Oracle JDK 相关的具体问题,因为您无法将其作为配方的一部分下载。
关于java - 使用 Vagrant 时为 Chef 预缓存下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11537233/