我正在尝试为pushy-client的Windows白名单添加推送作业。当我使用刀搜索时,它会在Windows节点的白名单中显示自定义作业。当我尝试运行它时,作业立即失败,在Windows端,它说该命令不在白名单中。
我在GitHub中发现了这个问题:Windows push service can't load whitelist
我想知道是否有人有解决方法,建议如何修复它,或者知道这个代码在哪里存在,我可以修补它。
答案 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窗口服务本身中,并且您提交的错误似乎没有任何变动。