从一个节点在厨师 运行 外面开刀

Knifing outside a chef run from a node

我有一个 Jenkins 服务器,我想将一些代码部署到一些服务器。要选择正确的服务器,我希望 jenkins 作业向 chef 查询具有特定角色的节点。

但是,我不确定这是个好主意还是反模式,我也不确定在实践中如何去做。

jenkins 服务器已经被列为非管理员客户端,所以我想知道我是否可以使用现有凭据进行某些操作,或者我是否应该创建一个 jenkins 管理员并在 Jenkins 中设置 knife.rb家。

您可能想要使用 Chef 脚本库之一,例如 chef-api (Ruby)、PyChef (Python) 或 Jclouds (Java ) 而不是刀本身。使用 Jenkins 进行部署有点靠不住,因为它并不是真正意义上的部署,但您可以让它发挥作用。 Push Jobs、Fabric 和 RunDeck 等工具可能更适合,并且都像您描述的那样与 Chef 的节点目录直接集成。