Hello together, I have problems with my Puppet installation. I use example42 Modules as the base of my own Modules for automated deployment of Rational Application Developer. Now I have overlaps between the modules. As example. I run Puppet on the Puppetmaster. He has included the following classes as the node configuration: include dashboard include general One of my Nodes is an tomcat server with the following includes include mysql::client include tcserver include general An other Node is a client for Rational Application developer with following Includes include rad include general Now, if i run puppet on the puppet master and tomcat server I get some overlaps with the rad class. It looks like this: PuppetMaster: rad::reqdir/File[/opt/software]/ensure: created ... These are Directories only for rad class, but not for the others. TomcatServer: err: Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate definition: Package[redhat-lsb] is already defined in file /var/data/puppet/environments/production/puppet4set/modules/ rad/manifests/reqpkg.pp at line 44; cannot redefine at /var/data/ puppet/environments/production/puppet4set/modules/tcserver/manifests/ init.pp:33 on node v00404.sbb.ch Is there maybe a bug in version 2.6.9? Thanks imase -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Jul 4, 3:48 pm, imase <igor.ma...@googlemail.com> wrote:> Hello together, > > I have problems with my Puppet installation. I use example42 Modules > as the base of my own Modules for automated deployment of Rational > Application Developer.> One of my Nodes is an tomcat server with the following includes > > include mysql::client > include tcserver > include general > > An other Node is a client for Rational Application developer with > following Includes > > include rad > include general > > Now, if i run puppet on the puppet master and tomcat server I get some > overlaps with the rad class. It looks like this: > > PuppetMaster: > > rad::reqdir/File[/opt/software]/ensure: created > ... > These are Directories only for rad class, but not for the others.Looks like your Tomcat v00404.sbb.ch node is somehow getting a "include rad", which is causing the duplicate Package clash in the "tcserver" module, confirm this by running the following on the v00404.sbb.ch node: grep rad /var/lib/puppet/classes.txt Is the "rad" module something you wrote yourself? Does "general" include "rad"? Can you post your node definitions (site.pp / node.pp). It''s not a bug, basically you''re going to have to crawl through your node and class definitions and find out how "rad" is included on the same node as "tcserver". A better idea is to make your "rad" module (assuming it''s yours and not Example42) fit better with "tcserver" by pulling Package["redhat- lsb"] out into a separate class.> TomcatServer: > err: Could not retrieve catalog from remote server: Error 400 on > SERVER: Duplicate definition: Package[redhat-lsb] is already defined > in file /var/data/puppet/environments/production/puppet4set/modules/ > rad/manifests/reqpkg.pp at line 44; cannot redefine at /var/data/ > puppet/environments/production/puppet4set/modules/tcserver/manifests/ > init.pp:33 on node v00404.sbb.ch > > Is there maybe a bug in version 2.6.9? > > Thanks > > imase-- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
Hey Luke, thank you for your reply. The module tcserver is almost default from example42. The module RAD is fully new written by me. I confirmed that the module tcserver does not include the module rad. Also the general does not include rad. I checked the classes.txt File when the confusions happend again and found on the puppet master (also troubles, see above) some rad classes. After I change something and deployed again with capistrano, the classes rad in the .txt-file were away. But after the next time deploying it they were back again. Here my nodes: # Management servers node ''v00401'' inherits basenode { $puppet_server_local = true $puppet_allow = [ "XXXX" ] $puppet_nodetool = "dashboard" $puppet_externalnodes = "no" $dashboard_db = "mysql" $puppet_storeconfigs = "yes" $puppet_storeconfigs_thin = "yes" $puppet_db = "XXXX" $puppet_db_server = "XXXX" $puppet_db_user = "XXXX" $puppet_db_password = "XXXX" $puppet_passenger = "no" $dashboard_monitor_port = "3000" $dashboard_monitor_url_pattern = "success" $rsyslog_use_loganalyzer = "yes" $rsyslog_loganalyzer_url = "http://download.adiscon.com/ loganalyzer/loganalyzer-3.0.4.tar.gz" $rsyslog_loganalyzer_dirname = "loganalyzer-3.0.4" $rsyslog_db = "mysql" $rsyslog_db_name = "Syslog" $rsyslog_db_server = "XXXX" $rsyslog_db_user = "XXXX" $rsyslog_db_password = "XXXX" $syslog_server_local = true $nagios_check_external_commands = "no" $documentroot_real = "/var/www/html" $puppi_server_local = true include dashboard include general } node ''v00404'' inherits basenode { import "webapps.pp" include mysql::client tcserver::instance { ''crowd'': httpport => ''8080'', service_enable => true, } include crowd apache::vhost { ''v00404'': priority => ''20'', port => ''80'', docroot => ''/var/www/html'', template => ''puppet4set/virtualhosts/crowd.conf.erb'', } include general } # WAS-Nodes node ''v00408'' inherits basenode { include rad $puppet_environment = "production" $installtype = "admin" include general } node ''v00407'' inherits basenode { include rad $puppet_environment = "integration" $installtype = "admin" include general } and my site.pp # Example42 common module has to be explicitely imported # (contains defines used by other modules that won''t autoload) import "common" # Baselines classes include modules that have to be applied to all nodes. # import "baselines/*.pp" # The layout of your Infrastructure may be defined here import "infrastructures/*.pp" # On a medium/big sized infrastructure it makes sense to provide a role for each node. import "role/*.pp" # Nodes definitions are here import "nodes/*.pp" # Training Nodes definitions are here import "training/*.pp" # General settings for standard types Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin" } Best regards imase On Jul 4, 5:10 pm, Luke Bigum <Luke.Bi...@lmax.com> wrote:> On Jul 4, 3:48 pm, imase <igor.ma...@googlemail.com> wrote: > > > > > > > Hello together, > > > I have problems with my Puppet installation. I use example42 Modules > > as the base of my own Modules for automated deployment of Rational > > Application Developer. > > One of my Nodes is an tomcat server with the following includes > > > include mysql::client > > include tcserver > > include general > > > An other Node is a client for Rational Application developer with > > following Includes > > > include rad > > include general > > > Now, if i run puppet on the puppet master and tomcat server I get some > > overlaps with the rad class. It looks like this: > > > PuppetMaster: > > > rad::reqdir/File[/opt/software]/ensure: created > > ... > > These are Directories only for rad class, but not for the others. > > Looks like your Tomcat v00404.sbb.ch node is somehow getting a > "include rad", which is causing the duplicate Package clash in the > "tcserver" module, confirm this by running the following on the > v00404.sbb.ch node: > > grep rad /var/lib/puppet/classes.txt > > Is the "rad" module something you wrote yourself? Does "general" > include "rad"? Can you post your node definitions (site.pp / node.pp). > > It''s not a bug, basically you''re going to have to crawl through your > node and class definitions and find out how "rad" is included on the > same node as "tcserver". > > A better idea is to make your "rad" module (assuming it''s yours and > not Example42) fit better with "tcserver" by pulling Package["redhat- > lsb"] out into a separate class. > > > > > TomcatServer: > > err: Could not retrieve catalog from remote server: Error 400 on > > SERVER: Duplicate definition: Package[redhat-lsb] is already defined > > in file /var/data/puppet/environments/production/puppet4set/modules/ > > rad/manifests/reqpkg.pp at line 44; cannot redefine at /var/data/ > > puppet/environments/production/puppet4set/modules/tcserver/manifests/ > > init.pp:33 on node v00404.sbb.ch > > > Is there maybe a bug in version 2.6.9? > > > Thanks > > > imase- Hide quoted text - > > - Show quoted text -- Hide quoted text - > > - Show quoted text --- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.
On Jul 5, 2:51 pm, imase <igor.ma...@googlemail.com> wrote:> After I change something and > deployed again with capistrano, the classes rad in the .txt-file were > away. But after the next time deploying it they were back again.... So, what did you change? ;)> node ''v00404'' inherits basenode { > import "webapps.pp" > > include mysql::client > > tcserver::instance { ''crowd'': > httpport => ''8080'', > service_enable => true, > } > > include crowd > > apache::vhost { ''v00404'': > priority => ''20'', > port => ''80'', > docroot => ''/var/www/html'', > template => ''puppet4set/virtualhosts/crowd.conf.erb'', > } > > include general > > }Ok, without reading through all of your manifests I''d resort to some quick and dirty black box testing. Take node ''v00404'', comment out everything and then add in includes one by one until you can eliminate each of the as having the stray "rad" module. I''d also look over your site.pp and all the other imports you do (roles/*.pp) and see what includes that class. "grep -R ''include rad''" perhaps :) I don''t use Capistrano but a quick Google makes me think you''re using it for remote file deployment of manifests to your Puppet master(s)? Could you have old/broken versions of manifests lying around somewhere? Puppet catalogs shouldn''t change between runs - unless you''re relying on resources/classes being defined/tagged when Puppet applies things in random order. -Luke -- 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+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.