配置管理软件 (Chef) 的文件缓存代理服务器

配置管理软件 (Chef) 的文件缓存代理服务器

我使用 Chef 管理多台服务器。它们都属于同一个网络,与外部互联网的带宽相比,它们之间的带宽很大。

问题是:很多时候需要从互联网上下载一些档案。当我在需要的每台服务器上运行 chef-client 时,它们都会访问互联网并从那里下载。这需要一些时间,而它们可以先访问 LAN 内的某个服务器并检查此文件是否已经存在。

我需要的是一些代理服务器apt-cacher-ng,但对于普通文件,它们可以根据 url 或文件校验和进行存储。这样,每个 chef-client 都可以先在这个缓存器中检查文件,然后如果缓存中没有所需的文件,则只在互联网上检查。理想情况下,这个缓存器可以充当代理 - 这样,一旦它收到某个 url 的请求,它就会下载文件本身,将其存储在某处并将其返回给请求者。

问题是:我可以配置apt-cacher-ng怎么做?或者还有其他方法吗?代理人或者缓存有哪些有用的服务器(apache、nginx)?

我只需要对此代理服务器进行配置的帮助,因为一旦它准备就绪,我就可以自己更改 chef-clients 的配置。

答案1

我认为你只需要配置http_proxy选项,那么 chef 将使用它进行 http 下载。

当然,代理服务器本身必须由您自己设置。您可以使用 squid、Apache mod_proxy 和 IIRC 以及 ngnix 来设置缓存代理。Polipo 也是一款非常出色的代理。

答案2

Squid 是一种常见的缓存代理,您可以将其用于此目的。Nginx 和 apache 并非真正为执行您所需的正向代理和缓存而构建。

http_proxy基本上,只要按照您喜欢的方式进行设置即可,对于基本的缓存代理来说,它并不太复杂,然后在 chef 配置中将chef 指向它。

答案3

根据您的需要,您可能需要在 http 缓存(像鱿鱼),或者实际上将二进制文件存储在本地存储库服务器中。

工艺品是一个优秀的存储库服务器,可以存储二进制文件,也可以作为包的缓存(如 nuget、npm、gem 等)。

如何解决这个问题还取决于您的网络设计、您需要存储缓存文件的时间长度以及缓存的稳健性。

一般来说,二进制存储库服务器是一种更为强大的文件存储方法,但它也需要更多的基础设施和更多的治理。

相关内容