我很难找到厨师单飞失败的根本原因。工作正常。我想可能是杯具更新或者是什么原因造成的,但我不确定。
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
如果我运行命令它失败了,命令本身就可以工作,但它在chef运行时失败了。。。
$ lpstat -p Packing_Station_002_DOC -lprinter Packing_Station_002_DOC is idle. enabled since Mon 31 Jul 2017 02:10:00 PM BST
信息:
厨师独奏版:厨师: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
听/var/run/cups/cups.sock
听:631
听127.0.0.1:631

最佳答案

消息“Transport endpoint is not connected”表示lpadmin无法与CUPS服务通信。以下是解决此问题的步骤:
确保CUPS服务正在运行。在您的例子中,这不是问题所在,因为命令是从命令行工作的。
验证chef solo是否以根用户身份运行。
检查SELinux是否允许连接到CUPS服务器。要确认,请使用setenforce 0执行chef运行(当然,不是在生产机器上)。
确保服务正在侦听TCP端口631。确认它实际上是在使用netstat-ltnp命令监听,而不仅仅是通过查看配置文件。还要确认没有旧的cups进程占用这些端口。
检查防火墙是否未阻塞端口631。不太可能是本地主机的原因,但比抱歉更安全。如果这不是生产机器,只需暂时关闭防火墙进行测试。
来源/灵感:https://access.redhat.com/solutions/1435563(需要订阅)。

关于linux - Chef-solo失败,并显示“lpadmin:无法连接到服务器:传输端点未连接”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47438636/

10-11 20:38