Project

General

Profile

Actions

Bug #17566

closed

TFTP provisioning fails when grub2 directory does not exist

Added by Matt Spaulding about 8 years ago. Updated over 3 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
TFTP
Target version:
-
Difficulty:
trivial
Triaged:
Yes
Fixed in Releases:
Found in Releases:

Description

After installation of the OS is complete the PXE boot configuration does not get switched to boot off the local disk. This is because the REST call to the tftp smart proxy fails with the following error:

D, [2016-12-02T19:11:06.479408 #2523] DEBUG -- : require_ssl_client_verification: skipping, non-HTTPS request
E, [2016-12-02T19:11:06.480301 #2523] ERROR -- : TFTP: Failed to create pxe config file: Permission denied - /tftpboot/grub2
D, [2016-12-02T19:11:06.480358 #2523] DEBUG -- : Permission denied - /tftpboot/grub2 (Errno::EACCES)
/usr/share/ruby/fileutils.rb:245:in `mkdir'
/usr/share/ruby/fileutils.rb:245:in `fu_mkdir'
/usr/share/ruby/fileutils.rb:219:in `block (2 levels) in mkdir_p'
/usr/share/ruby/fileutils.rb:217:in `reverse_each'
/usr/share/ruby/fileutils.rb:217:in `block in mkdir_p'
/usr/share/ruby/fileutils.rb:203:in `each'
/usr/share/ruby/fileutils.rb:203:in `mkdir_p'
/usr/share/foreman-proxy/modules/tftp/server.rb:51:in `write_file'
/usr/share/foreman-proxy/modules/tftp/server.rb:11:in `block in set'
/usr/share/foreman-proxy/modules/tftp/server.rb:10:in `each'
/usr/share/foreman-proxy/modules/tftp/server.rb:10:in `set'
/usr/share/foreman-proxy/modules/tftp/tftp_api.rb:23:in `block in create'
/usr/share/foreman-proxy/lib/proxy/helpers.rb:14:in `log_halt'
/usr/share/foreman-proxy/modules/tftp/tftp_api.rb:23:in `create'
/usr/share/foreman-proxy/modules/tftp/tftp_api.rb:49:in `block in <class:Api>'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:1292:in `call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:1292:in `block in compile!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:860:in `[]'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:860:in `block (3 levels) in route!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:876:in `route_eval'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:860:in `block (2 levels) in route!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:897:in `block in process_route'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:895:in `catch'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:895:in `process_route'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:859:in `block in route!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:858:in `each'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:858:in `route!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:963:in `block in dispatch!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `block in invoke'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `catch'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `invoke'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:960:in `dispatch!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:794:in `block in call!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `block in invoke'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `catch'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:946:in `invoke'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:794:in `call!'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:780:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/commonlogger.rb:33:in `call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:161:in `call'
/usr/share/foreman-proxy/lib/proxy/log.rb:63:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/xss_header.rb:18:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/path_traversal.rb:16:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/json_csrf.rb:18:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/base.rb:49:in `call'
/usr/share/gems/gems/rack-protection-1.5.3/lib/rack/protection/frame_options.rb:31:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/nulllogger.rb:9:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/head.rb:13:in `call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/showexceptions.rb:21:in `call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:124:in `call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:1417:in `block in call'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:1499:in `synchronize'
/usr/share/gems/gems/sinatra-1.3.5/lib/sinatra/base.rb:1417:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:66:in `block in call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `each'
/usr/share/gems/gems/rack-1.6.4/lib/rack/urlmap.rb:50:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/builder.rb:153:in `call'
/usr/share/gems/gems/rack-1.6.4/lib/rack/handler/webrick.rb:88:in `service'
/usr/share/ruby/webrick/httpserver.rb:138:in `service'
/usr/share/ruby/webrick/httpserver.rb:94:in `run'
/usr/share/ruby/webrick/server.rb:295:in `block in start_thread'
I, [2016-12-02T19:11:06.480913 #2523]  INFO -- : 10.123.0.100 - - [02/Dec/2016:19:11:06 +0000] "POST /tftp/PXEGrub2/00:50:56:84:35:df HTTP/1.1" 400 75 0.0051

When I create the grub2 directory installations succeed and PXE boot gets switched to local disk like expected. It doesn't appear that any files get written to the grub2 directory so not sure why the check is needed.


Related issues 1 (0 open1 closed)

Related to Katello - Bug #17639: Upgrade fails if /var/lib/tfpboot/grub2 is not pre-createdClosedEric Helms12/12/2016Actions
Actions

Also available in: Atom PDF