windows feature module for converting user shell between core/minimal/gui?

28 views
Skip to first unread message

Jason McMahan

unread,
Nov 9, 2016, 12:49:35 PM11/9/16
to Puppet Users

Good day,

We are attempting to minimize our template size, to do this we create a windows 2012r2 core template.

However we will need to convert from core > minimal > gui and or back or forth.


Our first thought is to copy the wim to the a directory on the template.

C:\install\install.wim

this allows us to ensure the wim is local and we can use it if binaries are needed


then use the following


class profile::windowsfeature_shell_gui {
  windowsfeature {'Server-Gui-Shell':
    ensure  => present,
    restart => true
    source => 'wim:c:\install\install.wim:2'
  }
}

If I remove that syntax in source the windows feature command doesn't know where the binaries are from the wim, I only have the path fails with the following syntax.

Error: Could not retrieve catalog from remote server: Error 500 on SERVER: {"message":"Server Error: Syntax error at 'restart' at /etc/puppetlabs/code/environments/production/site/profile/manifests/windowsfeature_shell_gui.pp:5:5 on node server.domain.com","issue_kind":"RUNTIME_ERROR","stacktrace":["/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/pops/parser/parser_support.rb:127:in `on_error'","/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/META-INF/jruby.home/lib/ruby/1.9/racc/parser.rb:271:in `_racc_evalact'","/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/META-INF/jruby.home/lib/ruby/1.9/racc/parser.rb:202:in`_racc_yyparse_rb'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/pops/parser/lexer2.rb:712:in `scan'","/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/META-INF/jruby.home/lib/ruby/1.9/racc/parser.rb:174:in `_racc_yyparse_rb'","org/jruby/RubyKernel.java:1242:in `catch'","/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!

/META-INF/jruby.home/lib/ruby/1.9/racc/parser.rb:168:in `_racc_yyparse_rb'","(eval):3:in `yyparse'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/pops/par

ser/parser_support.rb:240:in `_parse'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/pops/parser/parser_support.rb:84:in `parse_file'","/opt/puppetlabs/pu

ppet/lib/ruby/vendor_ruby/puppet/pops/parser/evaluating_parser.rb:41:in `parse_file'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/e4_parser_adapt

er.rb:31:in `parse'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/type_loader.rb:86:in `parse_file'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/

puppet/parser/type_loader.rb:123:in `load_files'","org/jruby/RubyArray.java:1613:in `each'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/type_load

er.rb:107:in `load_files'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/type_loader.rb:97:in `import_from_modules'","/opt/puppetlabs/puppet/lib/ru

by/vendor_ruby/puppet/parser/type_loader.rb:68:in `try_load_fqname'","org/jruby/RubyArray.java:1613:in `each'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/pupp

et/parser/type_loader.rb:66:in `try_load_fqname'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/type_collection.rb:234:in `find_or_load'","/opt/p

uppetlabs/puppet/lib/ruby/vendor_ruby/puppet/resource/type_collection.rb:176:in`find_hostclass'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/com

piler.rb:382:in `evaluate_classes'","org/jruby/RubyArray.java:2409:in `collect'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:381:in `

evaluate_classes'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:252:in `evaluate_node_classes'","/opt/puppetlabs/puppet/lib/ruby/vendo

r_ruby/puppet/parser/compiler.rb:180:in `compile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'","/opt/p

uppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:180:in `co

mpile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `override'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:241:in `override

'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/compiler.rb:162:in `compile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/parser/compiler.

rb:33:in `compile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:266:in `compile'","/opt/puppetlabs/puppet/lib/ruby/vendor

_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'","/opt/puppe

tlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:264:in `compile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb:223:in `be

nchmark'","/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/META-INF/jruby.home/lib/ruby/1.9/benchmark.rb:295:in `realtime'","/opt/puppetlabs

/puppet/lib/ruby/vendor_ruby/puppet/util.rb:222:in `benchmark'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:262:in `compi

le'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb:53:in `find'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indire

ctor/indirection.rb:194:in `find'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:121:in `do_find'","/opt/puppetlabs/

puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb:48:in `call'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb:65:in `ove

rride'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb:241:in `override'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirecte

d_routes.rb:47:in `call'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:82:in `process'","org/jruby/RubyArray.java:1613:in `each'","

/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:81:in `process'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route

.rb:87:in `process'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb:87:in `process'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/pup

pet/network/http/handler.rb:60:in `process'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb:58:in `profile'","/opt/puppetl

abs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb:51:in `profile'","/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb:58:in `proc

ess'","file:/opt/puppetlabs/server/apps/puppetserver/puppet-server-release.jar!/puppetserver-lib/puppet/server/master.rb:42:in `handleRequest'","Puppet$$Server$

$Master_829428564.gen:13:in `handleRequest'","request_handler_core.clj:273:in `invoke'","jruby_request.clj:46:in `invoke'","jruby_request.clj:31:in `invoke'","r

equest_handler_service.clj:34:in `handle_request'","request_handler.clj:3:in `invoke'","request_handler.clj:3:in `invoke'","core.clj:2493:in `invoke'","master_c

ore.clj:428:in `invoke'","ring.clj:21:in `invoke'","ring.clj:12:in `invoke'","comidi.clj:249:in `invoke'","ring_middleware.clj:284:in `invoke'","core.clj:168:in

 `invoke'","core.clj:211:in `invoke'","core.clj:45:in `invoke'","core.clj:343:in `invoke'","core.clj:51:in `invoke'","ringutils.clj:86:in `invoke'","legacy_rout

es_core.clj:114:in `invoke'","legacy_routes_core.clj:94:in `invoke'","legacy_routes_core.clj:184:in `invoke'","legacy_routes_core.clj:151:in `invoke'","ring.clj

:21:in `invoke'","ring.clj:12:in `invoke'","comidi.clj:249:in `invoke'","jetty9_core.clj:424:in `invoke'","normalized_uri_helpers.clj:80:in `invoke'"]}

Warning: Not using cache on failed catalog

Error: Could not retrieve catalog; skipping run


suggestions and or help are greatly appreciated.


Thank you

Akai

unread,
Nov 9, 2016, 4:01:36 PM11/9/16
to Puppet Users

Am Mittwoch, 9. November 2016 18:49:35 UTC+1 schrieb Jason McMahan:

Error: Could not retrieve catalog from remote server: Error 500 on SERVER: {"message":"Server Error: Syntax error at 'restart' at /etc/puppetlabs/code/environments/production/site/profile/manifests/windowsfeature_shell_gui.pp:5:5 on node 

 Your first Error Message said you have a syntax error in your ressource declaration at 'restart'. Take a look - you forget a comma at

restart => true ,

Not sure if i can help on your main problem, but for all readers it might be helpful if you fix your code first to be formal right and then post your new error output again.

Best Regards

Akai

Jason McMahan

unread,
Nov 9, 2016, 10:17:41 PM11/9/16
to Puppet Users
Thank you,
You are correct that was an oversight on my part.
I corrected that in my code when I ran the apply and still had the error.

For now I have decided to instead install windows 2012 r2 gui, then convert to core. This ensure the binaries are still present and I can convert back and forth easily but requires roughly 18gb os disk.

Thank you and have a great night.
Reply all
Reply to author
Forward
0 new messages