将自定义Chef推送作业添加到Windows白名单

时间:2015-11-04 17:45:06

标签: windows chef

我正在尝试为pushy-client的Windows白名单添加推送作业。当我使用刀搜索时,它会在Windows节点的白名单中显示自定义作业。当我尝试运行它时,作业立即失败,在Windows端,它说该命令不在白名单中。

我在GitHub中发现了这个问题:Windows push service can't load whitelist

我想知道是否有人有解决方法,建议如何修复它,或者知道这个代码在哪里存在,我可以修补它。

1 个答案:

答案 0 :(得分:1)

在完全测试您的场景之后,我确认我遇到了同样的问题,我在 attributes / default.rb 文件中向push-jobs cookbook本身的白名单添加了一个测试命令:

default['push_jobs']['whitelist'] = { 'chef-client' => 'chef-client', 'new-command' => 'chef-client' }

并验证白名单包含这些命令,当它被写入 C:\ chef \ push-jobs.client.rb 在我试图在引导它之后运行命令的节点上推送工作菜谱:

但是,当我尝试执行该命令时:

knife job start --timeout 600 'new-command' server.fqdn

我也立刻失败了:

Started.  Job ID: db3a99728dbded7abd35ed40d4ec3d5f
Quorum_failed.
command:     new-command
created_at:  Thu, 19 Nov 2015 23:31:57 GMT
id:          db3a99728dbded7abd35ed40d4ec3d5f
nodes:
    nacked: server.fqdn
run_timeout: 600
status:      quorum_failed
updated_at:  Thu, 19 Nov 2015 23:31:57 GMT

我甚至重新启动了 Pushy客户端服务 Windows服务,以确认它在服务重启时没有重新加载该配置。

我能够让Windows服务器运行我希望它运行的作业的唯一方法是在每次运行标准 chef-client “命令”之前修改运行列表:

knife node run_list set server.fqdn 'recipe[cookbook::recipe1]'

knife job start --timeout 600 'chef-client' node.fqdn

knife node run_list set server.fqdn 'recipe[cookbook::recipe2]'

knife job start --timeout 600 'chef-client' node.fqdn

该错误似乎出现在Pushy Client Service窗口服务本身中,并且您提交的错误似乎没有任何变动。