genebean
02/25/2025, 9:39 PMcsharpsteen
02/25/2025, 9:40 PMaggregate
block that can execute logic over all the values returned by the chunk
blocks:
https://www.puppet.com/docs/puppet/8/fact_overview#building-structured-fact-progressivelygenebean
02/25/2025, 9:40 PMgenebean
02/25/2025, 9:40 PMcsharpsteen
02/25/2025, 9:41 PMaggregate
you also have to handle merging the chunks together in addition to generation of any new values.CVQuesty
02/25/2025, 9:43 PMgenebean
02/25/2025, 9:43 PMcsharpsteen
02/25/2025, 9:45 PMtuxmea
02/26/2025, 8:13 AMBrian Schonecker
03/07/2025, 12:15 PMJerry Way
03/13/2025, 10:02 PMfile { 'choco_endpoint_ps':
ensure => file,
path => "${host_location}/choco_endpoint.ps1",
source => 'puppet:///modules/tools_installer/choco_endpoint.ps1',
}
file { 'choco_endpoint_script':
ensure => file,
path => "${host_location}/register-c4bendpoint.ps1",
source => 'puppet:///modules/tools_installer/register-c4bendpoint.ps1,',
}
Then in the PE log I see the following right after the metadata error:
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb292in `block in inline_metadata'
org/jruby/RubyArray.java1981in `each'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb215in `inline_metadata'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb364in `block in compile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb59in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb53in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb363in `block in compile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb190in `block in benchmark'
uriclassloader/META-INF/jruby.home/lib/ruby/stdlib/benchmark.rb311in `realtime'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb189in `benchmark'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb362in `block in compile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb59in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb53in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb338in `block in compile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb190in `block in benchmark'
uriclassloader/META-INF/jruby.home/lib/ruby/stdlib/benchmark.rb311in `realtime'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util.rb189in `benchmark'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb336in `compile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb81in `block in find'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/node/environment.rb490in `with_text_domain'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/catalog/compiler.rb77in `find'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/indirector/indirection.rb230in `find'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb116in `do_find'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb54in `block in call'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb64in `override'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb292in `override'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/indirected_routes.rb53in `call'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/api/server/v3.rb18in `block in wrap'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb85in `block in process'
org/jruby/RubyArray.java1981in `each'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb84in `process'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb91in `process'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/route.rb91in `process'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb88in `block in process'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb71in `block in with_request_profiling'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler/around_profiler.rb59in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/util/profiler.rb53in `profile'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb67in `with_request_profiling'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb87in `block in process'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb94in `respond_to_errors'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/network/http/handler.rb86in `process'
uriclassloader/puppetserver-lib/puppet/server/master.rb69in `block in handleRequest'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/context.rb64in `override'
/opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet.rb292in `override'
uriclassloader/puppetserver-lib/puppet/server/master.rb68in `handleRequest'josh
03/14/2025, 12:43 AMsource
parameterjosh
03/14/2025, 12:44 AMps1,’,
Jerry Way
03/14/2025, 2:24 PMbastelfreak
03/18/2025, 4:04 PMbastelfreak
03/18/2025, 4:09 PMjosh
03/18/2025, 4:57 PMminitar
so that we guarantee minitar > 1 is installed. However, the presence of the minitar
gem will cause that to be preferred when running puppet module install
https://github.com/puppetlabs/puppet/blob/e227c27540975c25aa22d533a52424a9d2fc886a/lib/puppet/module_tool/tar.rb#L11-L18 Using minitar is slower than native tar
and we have to be aware of security issues (that may be handled in native tar, but not minitar) like zipslip. Alternatively, we could add the runtime/hard dependency, but only use minitar
if tar
is unavailable. A third option it to leave minitar
is a soft/feature and raise if the installed version isn't 1.0 or greater. I definitely don't want to support both the old and new minitar interfaces.bastelfreak
03/18/2025, 4:58 PMjosh
03/18/2025, 5:00 PMbastelfreak
03/18/2025, 5:03 PMbastelfreak
03/18/2025, 5:05 PMbastelfreak
03/18/2025, 5:06 PMjosh
03/18/2025, 5:11 PMminitar
installed, so we need to verify the minitar version and not assume > 1bastelfreak
03/18/2025, 5:15 PMJerry Way
03/20/2025, 10:22 PM$store = New-Object System.Security.Cryptography.X509Certificates.X509Store(
[System.Security.Cryptography.X509Certificates.StoreName]::Root,
[System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine
)
This is different from the sslcertificate module only in that the module tries to take both of these values in an array. I split them up here designating the StoreName and StoreLocation.
This is how the sslcertificate module does it and it sticks it into the intermediate store.
$store = new-object System.Security.Cryptography.X509Certificates.X509Store("<%= @store_dir %>","<%= @root_store %>")
sslcertificate { 'Root Certificate':
name => '<certname>-2021.cer',
location => 'D:/Certificates',
store_dir => 'Root',
root_store => 'LocalMachine',
require => File['D:/Certificates/<certname>-2021.cer'],
thumbprint => 'ce1b9f2f5d2fc0c88d3b7d52b773cd<truncated>',
Thoughts?
Thanks,
JerryDr Bunsen Honeydew
03/20/2025, 10:22 PMpuppetlabs-sslcertificate
module at https://forge.puppet.com/puppetlabs/sslcertificate?src=slack&channel=puppet-devJerry Way
04/21/2025, 4:49 PMDanny Tung
04/24/2025, 2:11 AMYury Bushmelev
04/24/2025, 2:16 AMDanny Tung
04/24/2025, 2:17 AM