java - 使用 Vagrant 时为 Chef 预缓存下载

标签 java chef-infra vagrant

我正在使用 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/

相关文章:

java - 复制InputStreamReader

nginx - 将 nginx 模块与 chef nginx Recipe 一起使用

ruby - Chef - Chef::Resource::Application 中的 NoMethodError

使用 Vagrant 进行 HAML/SASS 开发时的图像显示/截断问题

raspberry-pi - Vagrant 的树莓派提供商?

mysql - 使用 salt 将 mysql 转储文件导入到 vagrant

java - 在maven中下载兼容的依赖项

java - 为什么 Java StampedLock 比 ReentrantReadWriteLock 更快

java - jms 消息不移动 websphere 中的队列

ruby - 错误引导 - 非法指令