我目前正在学习 Chef。我目前所理解的内容:
- 我必须在自己的服务器上安装 chef-server 或使用托管的 chef。
- 我必须在我想要管理的服务器上(又名节点)安装 chef-client(手动或使用 knife bootstrap)。
- 我在自己的电脑上安装了几个 Chef 工具,可以用来管理节点,例如 Knife。
现在就我而言,特色是节点位于防火墙后面/load balancer/proxy。节点可以通过 NAT 访问外部的服务器(http 可以工作,我也可以配置 chef 专用主机来工作)。但是,只能通过 ssh 隧道从外部联系它们。
关于厨师的文档确实很多,但我没有找到以下问题的答案:
- 当使用 knife 时,我在自己的电脑上手动设置 ssh 隧道就足够了,还是 chef 服务器需要联系节点?
- 使用 knife 时,我可以将其配置为自动设置 ssh 隧道吗?
- 使用 chef 服务器 Web UI 时,我可以将其配置为通过 ssh 隧道连接到节点吗?还是需要自己设置隧道(例如使用 monit)?使用托管 chef 是否可行?
- 除了使用 knife 或 web ui:我可以使用 chef-client 直接在节点上发出相同的管理命令吗?
- 您会推荐什么解决方案?
非常感谢您抽出时间帮助并回答一个或多个相关问题
答案1
chef-server 从不连接到节点。在节点上运行的 chef-client 始终连接到 chef-server,并且始终通过 HTTP/S 连接,因为 chef-server 具有 REST API。
答案2
我自己来回答这个问题:您可以在守护进程模式下运行 chef 客户端。这样,客户端就会不时地轮询服务器以获取运行列表。