是否有任何可用于 Vagrant 的“盒子”可供下载,它们与 Amazon EC2 实例可用的 Linux 版本和软件包密切相关?
我正在使用 Vagrant 进行本地测试,目前使用的是 Precise32 框。我正在使用“Amazon Linux AMI 2013.03”AMI 将我的代码部署到 Amazon EC2 实例。
我面临的问题是可在 Precise32 盒子上安装的软件包具有不同的名称,例如
虽然我可以通过使用 Puppet 配置文件中的变量来处理不同的包名称来解决这个问题,但这听起来有点像黑客。
那么是否有任何可用的 vagrant box 可以密切反映 Amazon EC2 环境。
或者我是否可以告诉一个 vagrant box 使用与 Amazon EC2 实例相同的包源?
澄清一件事 - 我想这样做的原因是我可以在本地进行测试,而不必先提交所有内容。尽管 Vagrant 支持 AWS 作为提供商,但这实际上并不能实现本地测试。
我们有一个要从 AWS 迁移到 Google Cloud 的系统。服务器通过 Kubernetes 进行容器化和部署。
我们有前端对后端进行 api 调用。很多时候这些 api 调用都会成功。
间歇性地,我们看到 api 调用失败并返回 400 响应,而不是访问后端,正文内容设置为通用的 Google 错误:
“400。这是一个错误。
您的客户发出了格式错误或非法的请求。我们知道的就这些。”
我们在日志中看不到到达后端的请求。就好像它在谷歌内部迷失了一样。
从前端容器内部或从我们的本地机器从命令行执行完全相同的调用每次都有效。
我的问题是:
i) 有没有人看到过类似的东西并且有解决这个问题的方法?
ii) 我们如何调试它?
仅供参考,请求是一个简单的 GET,如下所示:“ https://example.com/v1/session/12345?frontend_ip=1.2.3.4%2C+5.6.7.8&req_timestamp=2018-04-19+10%3A46 ”
我正在使用 Vagrant 设置虚拟机进行测试。我希望虚拟机内部的 apt 可以在主机上使用代理,以允许缓存所有下载内容在运行的虚拟机实例之间持续存在,不仅是为了提高速度,而且还允许我在启动 vagrant 实例时启动没有网络连接。
我已经设置了正在运行的代理,我想我已经告诉 apt 通过在 Vagrant 脚本中设置它来使用它:
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTP { Proxy "http://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; FTP { Proxy "ftp://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
config.vm.provision :shell, :inline => 'echo \'Acquire { Retries "0"; HTTPS { Proxy "https://10.0.2.2:3128"; }; };\' >> /etc/apt/apt.conf'
Run Code Online (Sandbox Code Playgroud)
它正在部分工作,即当我的 wifi 连接被禁用但 Squid 正在运行并且它的缓存中有一些条目时,对源的初始请求命中缓存并工作。我还可以从 Squids 日志文件中看到一些击中 Squid 的请求:
1367492453.816 34 127.0.0.1 TCP_REFRESH_MODIFIED/200 592 GET http://security.ubuntu.com/ubuntu/dists/precise-security/Release.gpg - …
Run Code Online (Sandbox Code Playgroud)