![像 Ansible 一样的 Chef 动态库存?](https://linux22.com/image/688106/%E5%83%8F%20Ansible%20%E4%B8%80%E6%A0%B7%E7%9A%84%20Chef%20%E5%8A%A8%E6%80%81%E5%BA%93%E5%AD%98%EF%BC%9F.png)
在 Ansible 中,我可以使用 shell 脚本来提供要配置的主机列表;在 Chef 中,我知道 Chef Server 提供了类似的功能。
但是,我不想安装一个重型服务器来提供此功能,有没有什么解决方法可以让我在 Chef 中做类似的事情,比如 Ansible?
答案1
Chef server 相对于 chef solo 的关键功能是搜索功能,它可以根据给定的查询找到服务器/节点。
我理解您不想托管自己的 chef 服务器来获得此功能!有很多活动部件可以提供此功能,erlang 和 rabbitmq 等等...
幸运的是零厨师或现在所称的 chef-client 的 --local 模式,支持搜索并充当其自身的微型服务器,只是暂时的。
它可以从正确目录结构中的 json node/environment/role 文件中读取,并充当 API 端点,直到 chef 运行完成。
鉴于这种结构,除了使用配方中的搜索来查找其他节点之外,还可以使用它knife search --local 'role:web-server AND chef_environment:production'
来列出匹配的节点以及knife ssh --local 'role:web-server AND chef_environment: production' 'ssh_command'
在所有服务器上执行命令。
因此,虽然这不完全是一个 ansible 风格的动态库存系统,但您可以用它做很多事情。