On Monday, April 8, 2013 3:46:40 AM UTC-5, Francesco wrote: > > Hy I m a new user in world puppet > I have installed a packge test on a node "screen" without problem > Now i want to try to uninstall it but without success. This is the file > configuration > this is my file init.pp > package {"screen-4.0.3-16.el6": > ensure=> "absent" > } > > #package and purge its config files > package {"screen-4.0.3-16.el6": > ensure => "purged" > } > > this is the path of my manifest /etc/puppet/modules/screen/manifests > this is the command that I execute to remove package screen > puppet agent --server=puppet.xxxx.xxxxI > > this is the answer > > Info: Retrieving plugin > Info: Caching catalog for node.xx.xx.x > Info: Applying configuration version '1365406267' > Notice: Finished catalog run in 0.08 seconds > Effectively screen is already installed > > Thank you in advance > I m going mad > >
Puppet is not parsing your module's manifest. It would fail with a parse error if it tried to do. I think you have a misconception: installing or creating a module in your module path does not in itself cause any declarations in any of its manifests to be applied to client nodes. At a typical site, there are multiple kinds of nodes that must be configured differently, sometimes including even special one-offs. Puppet therefore has mechanisms for assigning specific resource declarations and collections of resource declarations to clients. It assigns only those declarations. Unless you configure it specially, the master starts with <puppet-path>/manifests/site.pp (not init.pp -- that's for modules). Declarations in that file apply to all nodes, and it is typical (at least when starting with Puppet) to use node declarations to tell Puppet which declarations to apply to each particular client. For the time being, however you can define just a default node in which you declare the appropriate class from your 'screen' module: node default { include 'screen' } Puppet determines where to look for the manifest containing class 'screen's definition based on the class name. Class definitions are usually assumed to be in files <classname>.pp in directories corresponding to their module and any intermediate namespaces. Classes that have the same name as the module in which they appear are special, however: they should be in files named init.pp in their module's manifests directory. In your case that would be /etc/puppet/modules/screen/manifests/init.pp. That file should contain this: class screen { package { 'screen': ensure => 'purged' } } Note that the version and release codes are NOT part of the package name, and if putting them in happens to work in any given context then that is a happenstance on which you should not rely and from which you should not draw any conclusions. To ensure that a specific version/release of the package was installed, you would use the 'ensure' parameter: "ensure => '4.0.3-16.el6'". On the other hand, a lot of people don't care exactly which version (ensure => 'installed') or want the latest available version, whatever that happens to be (ensure => 'latest'). Note also that there can be only one declaration for package 'screen' for any given node. Puppet does not allow multiple declarations for the same resource; this helps you ensure internal consistency of your manifests. John -- 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 puppet-users+unsubscr...@googlegroups.com. To post to this group, send email to puppet-users@googlegroups.com. Visit this group at http://groups.google.com/group/puppet-users?hl=en. For more options, visit https://groups.google.com/groups/opt_out.