On Mon, Jun 27, 2011 at 5:55 PM,  <zu...@puzzle.ch> wrote:
>> On Mon, Jun 27, 2011 at 7:27 AM, <zu...@puzzle.ch> wrote:
>>
>>> I don't know if i got the URL right, i did not find any examples on the
>>> REST API documentation for the fileserver.
>>>
>>
>> This should cover it.
>>
>> http://docs.puppetlabs.com/guides/rest_api.html#file-server
>
> This isn't still clear to me. Would appreciate if someone could give a
> concrete example how a path in a module or in the filepath would tanslate.
>
> Here is what i try:
>
> fileserver.conf
> [files]
>  path /etc/puppet/manifests/files
>  allow 127.0.0.1
>  allow *.smobi.mobicorp.test
>
>
> The file is located at /etc/puppet/manifests/files/sudo/sudoers
>
>
> [root@foo me]# ./puppet-wget file_content/sudo/sudoers
> https://foo.bar:8140/file_content/sudo/sudoers
> warning: peer certificate won't be verified in this SSL session
> /usr/lib/ruby/1.8/net/http.rb:2099:in `error!': 403 "Forbidden request:
> foo.bar(10.2.3.4) access to /sudo/sudoers [find] authenticated  at line 93
> " (Net::HTTPServerException)
>        from ./puppet-wget:56
>        from ./puppet-wget:43:in `each'
>        from ./puppet-wget:43
>
>
> AFAIK if something is wrong with the certs the server would answer with a
> 401 and not 403. It really looks to me as if i get that path wrong.
>
> ------------------
> #!/bin/env ruby
> #
> # Puppet Wget
> #
> # Downloads files from the puppetmaster without the puppet agent
>
>
> require 'optparse'
> require 'puppet/rails'
> require 'uri'
> require 'net/https'
>
>
> # Parse all Options
> options = {}
> OptionParser.new do |opts|
>  opts.banner = "Usage: puppet-wget [options] module/path/to/file"
>
>  opts.on("-r", "--recursive", "Download directory recursively") do |r|
>    options[:recursive] = r
>  end
> end.parse!
>
>
> # Get some settings for the puppet config
> Puppet[:config] = "/etc/puppet/puppet.conf"
> Puppet.parse_config
> puppet_conf = Puppet.settings.instance_variable_get(:@values)[:main]
>
>
> # default values
> puppet_conf[:server]     ||= 'puppet'
> puppet_conf[:masterport] ||= '8140'
> puppet_conf[:ssldir]     ||= '/etc/puppet/ssl'
>
>
> server    = puppet_conf[:server]
> port      = puppet_conf[:masterport]
> certpath  = puppet_conf[:ssldir] + '/certs/'        + ENV['HOSTNAME'] +
> '.pem'
> pkey_path = puppet_conf[:ssldir] + '/private_keys/' + ENV['HOSTNAME'] +
> '.pem'
>
>
> ARGV.each do |filepath|
>  url = URI.parse("https://#{server}:#{port}/#{filepath}";)
>  req = Net::HTTP::Get.new("#{url.path}?#{url.query}", "Accept" => 's')
>
>  puts url
>
>  # make ssl request
>  connection = Net::HTTP.new(url.host, url.port)
>  connection.use_ssl = true
>  connection.cert = OpenSSL::X509::Certificate.new(File.read(certpath))
>  connection.key = OpenSSL::PKey::RSA.new(File.read(pkey_path))
you are missing the CA file... something like
connection.ca_file = Puppet[:localcacert]

>  res = connection.start { |http| http.request(req) }
>
>  res.error! unless res.code_type == Net::HTTPOK
>  puts res.body
>
> end
>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To post to this group, send email to puppet-users@googlegroups.com.
> To unsubscribe from this group, send email to 
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to