在一些厨师零运行(将节点状态保存为本地 .json 文件)之后,我很沮丧地在节点文件中找到了这一点:
...
"ssmtp": {
"auth_username": "secret user name",
"auth_password": "even-more-secret password"
}
在 Chef Server 上运行相同的操作会将节点数据保存在服务器上。这当然是一个问题,我将不得不更换凭据,修改食谱等。我仍在调查最初是什么原因造成的,但我的问题是:
如何为配方创建 rspec/chefspec 测试以验证特定节点属性是否未永久保存在节点的 .json 文件或 Chef 服务器上?
我想将此添加到我的规格中,以确保它不再发生。
结语
这里的重要教训是,任何进入任何节点属性的方式最终都会保存在节点对象表示中。