Hi David Schmitt,
I create de new module, class and provider with pdk the according this site
puppet. My puppet is version 'puppet --version . 5.5.6'.
But, the return error: *Could not autoload puppet/type/foo: no such file to
load -- puppet/resource_api *
*My type is:*
*cat lib/puppet/type/foo.rb *
require 'puppet/resource_api'
Puppet::ResourceApi.register_type(
name: 'foo',
docs: <<-EOS,
This type provides Puppet with the capabilities to manage ...
EOS
features: [],
attributes: {
ensure: {
type: 'Enum[present, absent]',
desc: 'Whether this resource should be present or absent on the
target system.',
default: 'present',
},
name: {
type: 'String',
desc: 'The name of the resource you want to manage.',
behaviour: :namevar,
},
},
)
*My provider:*
*cat lib/puppet/provider/foo/foo.rb *
require 'puppet/resource_api/simple_provider'
# Implementation for the foo type using the Resource API.
class Puppet::Provider::Foo::Foo < Puppet::ResourceApi::SimpleProvider
def get(_context)
[
{
name: 'foo',
ensure: 'present',
},
{
name: 'bar',
ensure: 'present',
},
]
end
def create(context, name, should)
context.notice("Creating '#{name}' with #{should.inspect}")
end
def update(context, name, should)
context.notice("Updating '#{name}' with #{should.inspect}")
end
def delete(context, name)
context.notice("Deleting '#{name}'")
end
end
*My init.pp*
*class first_type {*
foo{ 'my_type':
ensure => present,
}
}
What`s problem : *Could not autoload puppet/type/foo: no such file to load
-- puppet/resource_api *
The provider write the ruby, is possible create provider with python? If
yes, is change ruby to python?
Em sáb, 22 de set de 2018 às 05:29, David Schmitt <[email protected]>
escreveu:
> Hi Rafael,
>
> if you are just starting out with this, I'd highly recommend looking into
> the Resource API. It makes the development of types much easier, is a
> supported part of this week's puppet 6 release, and available as a separate
> download for previous puppet versions. The PDK also has support for getting
> you started with a ready to go skeleton using 'pdk new provider'.
>
> See https://puppet.com/docs/puppet/6.0/custom_resources.html for all the
> details.
>
> Cheers, David
>
> On Fri, Sep 21, 2018 at 9:34 PM Rafael Tomelin <[email protected]>
> wrote:
>
>> Hi guys,
>>
>> I am creating a type in custom provider, but I am not able to understand
>> the following question.
>>
>> I created a basic type to understand the concept of things, as follows:
>> Puppet::Type.newtype(:mydir) do
>> @doc = "First custom type."
>>
>> ensurable do
>> defaultvalues
>> defaultto :present
>> end
>>
>> newparam(:name, :namevar => true) do
>> end
>>
>> newparam(:install_location) do
>> end
>> end
>>
>>
>> After creating the provider, but does not recognize the same and displays
>> the following error:
>> Error: Could not find a suitable provider for mydir
>> Notice: Applied catalog in 0.63 seconds
>>
>> Puppet::Type.type(:mydir).provide(:linux) do
>>
>> defaultfor :operatingsystem => :linux
>> confine :operatingsystem => :linux
>>
>> commands :mkdir => "mkdir"
>> commands :rm => "rm"
>>
>> def exists?
>> Puppet.info("checking if is already deployed")
>> deploy_dir = "#{resource[:install_location]}/#{resource[:name]}"
>>
>> File.directory?(deploy_dir) and Dir.entries(deploy_dir).size > 2
>> end
>>
>> def create
>> Puppet.info("Deploying the appliction")
>> deploy_dir = "#{resource[:install_location]}/#{resource[:name]}"
>>
>> mkdir('-p', deploy_dir)
>> end
>>
>> def destroy
>> Puppet.info("Removing the appliction")
>> deploy_dir = "#{resource[:install_location]}/#{resource[:name]}"
>> rm('-rf',deploy_dir)
>> end
>> end
>>
>> What I did not envisage is how Puppet identifies the provider to be
>> used in the OS?
>> --
>>
>> Atenciosamente,
>>
>> Rafael Tomelin
>>
>> skype: rafael.tomelin
>>
>> E-mail: [email protected]
>>
>> RHCE - Red Hat Certified Engineer
>> PPT-205 - Puppet Certified Professional 2017
>> Zabbix - ZABBIX Certified Specialist
>> LPI3
>> ITIL v3
>>
>> --
>>
> You received this message because you are subscribed to the Google Groups
>> "Puppet Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/puppet-users/CAGEUqbCtgp2bo7CN8STqDxq5L4WZLCJXNT%2Buq7-qzpvVYaL3%2Bg%40mail.gmail.com
>> <https://groups.google.com/d/msgid/puppet-users/CAGEUqbCtgp2bo7CN8STqDxq5L4WZLCJXNT%2Buq7-qzpvVYaL3%2Bg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
> Cheers, David
>
> https://twitter.com/dev_el_ops
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/CALF7fHa5_QY%2BjKzW5tzw8YL4FVXSBzAvheHKp_i1VbhOLXXhhg%40mail.gmail.com
> <https://groups.google.com/d/msgid/puppet-users/CALF7fHa5_QY%2BjKzW5tzw8YL4FVXSBzAvheHKp_i1VbhOLXXhhg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
--
Atenciosamente,
Rafael Tomelin
skype: rafael.tomelin
E-mail: [email protected]
RHCE - Red Hat Certified Engineer
PPT-205 - Puppet Certified Professional 2017
Zabbix - ZABBIX Certified Specialist
LPI3
ITIL v3
--
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/CAGEUqbB-PsmNt0hzjoJWARd7285O%2BgHwAeqqC4qNv_zH1dWLPA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.