Actions
Bug #17566
closedTFTP provisioning fails when grub2 directory does not exist
Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
TFTP
Target version:
-
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.
Actions