chef-solo失败并且' lpadmin:无法连接到服务器:传输端点未连接'

时间:2017-11-22 15:40:16

标签: linux cups

我很难找到这个厨师独奏的根本原因失败。它工作正常。我想的可能是杯子更新或有什么可能导致它,但我不确定。

Mixlib::ShellOut::ShellCommandFailed ------------------------------------ Expected process to exit with [0], but received '1' ---- Begin output of "bash" "/tmp/chef-script20171122-12850-1c8t7wf" ---- STDOUT: STDERR: lpstat: Invalid destination name in list "Packing_Station_002_DOC". lpadmin: Unable to connect to server: Transport endpoint is not connected

如果我运行命令它失败了,命令本身就可以工作,但是在厨师运行中失败了......

$ lpstat -p Packing_Station_002_DOC -l printer Packing_Station_002_DOC is idle. enabled since Mon 31 Jul 2017 02:10:00 PM BST

的信息: chef-solo版本:厨师:12.19.36

CUPS版本:cups-1.6.3-29.el7.x86_64

Cookbook Trace:
---------------
/opt/chef-solo/cookbooks/compat_resource/files/lib/chef_compat/monkeypatches/chef/runner.rb:41:in `run_action'

Resource Declaration:
---------------------
# In /opt/chef-solo/cookbooks/manhattan/recipes/add_printer.rb

 14:     bash "add printer if it doesnt exist" do
 15:         code <<-EOH
 16:         if [[ ! $(lpstat -p #{printer['name']} -l) ]]; then
 17:         lpadmin -p #{printer['name']} -E -v socket://#{printer['ip']};
 18:         fi
 19:         EOH
 20:
 21:         user 'root'
 22:     end
 23:

从json文件中读取打印机列表,并且之前一直在使用。

"wms": { "printers": [ { "name": "Packing_Station_002_DOC", "ip": "10.41.6.10" }, { "name": "Add new name here", "ip": "Add new ip here" } ]

我在/etc/cups/cupsd.conf中有localhost监听

收听/var/run/cups/cups.sock

听*:631

收听127.0.0.1:631

1 个答案:

答案 0 :(得分:0)

消息“未连接传输终结点”表示lpadmin无法与CUPS服务对话。这是我用来解决此问题的步骤:

  • 确保CUPS服务正在运行。对于您而言,这不是问题,因为该命令可从命令行运行。
  • 验证chef-solo是否以root用户身份运行。
  • 检查SELinux是否允许连接到CUPS服务器。要确认,请使用setenforce 0(当然,不在生产机器上)执行厨师运行。
  • 确保该服务正在TCP端口631上进行侦听。使用netstat -ltnp命令(不仅仅是通过查看配置文件)确认其实际上正在侦听。还要确认这些端口没有旧的杯子进程。
  • 请检查防火墙是否未阻止端口631。localhost的不太可能的原因,但是比遗憾更安全。如果这不是生产机器,只需暂时关闭防火墙以进行测试。

来源/灵感来源:https://access.redhat.com/solutions/1435563(需要订阅)。