On Friday, August 24, 2012 5:32:57 AM UTC-5, Matthew Smith wrote:
>
> Hi,
>
> I've been looking at an odd issue, we have a module that I can prove is 
> being loaded and run on both the agent and server end but no changes are 
> being made.
>
> I have validated that changes should have been applied and using notify I 
> get alerts when it is run on the agent, but the file it should have created 
> does not get created.
> The puppet master was on 2.7.17 and agent on 2.7.18 so I have updated both 
> to 2.7.19
>
> The module that seems to not be working correctly is 
> alfresco::cloud_alfresco, from the server debug you can see it has been 
> loaded: (logs below)
>
> debug: importing 
> '/etc/puppet/modules/alfresco/manifests/cloud_alfresco.pp' in environment 
> production
> debug: Automatically imported alfresco::cloud_alfresco from 
> alfresco/cloud_alfresco into production
> debug: importing '/etc/puppet/modules/alfresco/manifests/cloud_params.pp' 
> in environment production
> debug: Automatically imported alfresco::cloud_params from 
> alfresco/cloud_params into production
> debug: Scope(Class[Alfresco::Cloud_alfresco]): Retrieving template 
> alfresco/global/alfresco-global.properties
> debug: 
> template[/etc/puppet/modules/alfresco/templates/global/alfresco-global.properties]:
>  
> Bound template variables for 
> /etc/puppet/modules/alfresco/templates/global/alfresco-global.properties in 
> 0.00 seconds
> debug: 
> template[/etc/puppet/modules/alfresco/templates/global/alfresco-global.properties]:
>  
> Interpolated template 
> /etc/puppet/modules/alfresco/templates/global/alfresco-global.properties in 
> 0.05 seconds
>
> And on the agent side: (more logs below)
>
> Found the file: debug: 
> /Stage[main]/Alfresco::Cloud_alfresco/File[/var/lib/tomcat6/shared/classes/alfresco-global.properties]/require:
>  
> requires Class[Alfresco::Install]
> Ran the file (but made no changes)
> notice: after if else logic
> notice: /Stage[main]/Alfresco::Cloud_alfresco/Notify[after if else 
> logic]/message: defined 'message' as 'after if else logic'
> debug: /Stage[main]/Alfresco::Cloud_alfresco/Notify[after if else logic]: 
> The container Class[Alfresco::Cloud_alfresco] will propagate my refresh 
> event
> notice: Should Create File 
> /var/lib/tomcat6/shared/classes/alfresco-global.properties
> notice: /Stage[main]/Alfresco::Cloud_alfresco/Notify[Should Create File 
> /var/lib/tomcat6/shared/classes/alfresco-global.properties]/message: 
> defined 'message' as 'Should Create File 
> /var/lib/tomcat6/shared/classes/alfresco-global.properties'
> debug: /Stage[main]/Alfresco::Cloud_alfresco/Notify[Should Create File 
> /var/lib/tomcat6/shared/classes/alfresco-global.properties]: The container 
> Class[Alfresco::Cloud_alfresco] will propagate my refresh event
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: file_metadata supports formats: b64_zlib_yaml pson raw yaml; using 
> pson
> debug: Service[mcollective](provider=redhat): Executing '/sbin/service 
> mcollective status'
> debug: Puppet::Type::Service::ProviderRedhat: Executing '/sbin/chkconfig 
> mcollective'
> notice: Before if else logic
> notice: /Stage[main]/Alfresco::Cloud_alfresco/Notify[Before if else 
> logic]/message: defined 'message' as 'Before if else logic'
> debug: /Stage[main]/Alfresco::Cloud_alfresco/Notify[Before if else logic]: 
> The container Class[Alfresco::Cloud_alfresco] will propagate my refresh 
> event
>
>
> The section in the module that generates the debug output is as follows: 
>
> notify {"Before if else logic":}
>   # If extra config set do concatinate
>   if ($extra_config) {
>     file {
>       
> "${application_container_home}${application_container_instance}/shared/classes/alfresco-global.properties":
>       content => template("${global_properties}","${extra_config}"),
>       mode    => 0640,
>     }
>     notify {"Should Create File 
> ${application_container_home}${application_container_instance}/shared/classes/alfresco-global.properties
>  
> with extra config":}
>   } else {
>     file {
>       
> "${application_container_home}${application_container_instance}/shared/classes/alfresco-global.properties":
>       content => template("${global_properties}"),
>       mode    => 0640,
>     }
>     notify {"Should Create File 
> ${application_container_home}${application_container_instance}/shared/classes/alfresco-global.properties":}
>   }
> notify {"after if else logic":}
>

That code does not do quite what you might expect, on account of the fact 
that there are no resource relationships to enforce any particular order 
for applying the resources.  Inasmuch as you cut out some pieces of the 
fuller agent log, that log doesn't prove anything either.

You should set appropriate before / requires parameters on your resources 
to ensure an appropriate order of application.  Without them, the truncated 
log abstract proves nothing about whether the File resource was applied; it 
wouldn't need to have been between the Notify resources that are declared 
around it.


 

> So regardless of the logic something should get pushed onto the OS called 
> alfresco-global properties:
> [root@opsalfrescon3 tomcat6]# updatedb
> [root@opsalfrescon3 tomcat6]# locate alfresco-glo
> [root@opsalfrescon3 tomcat6]# 
>

Who knows whether the path containing your file may be excluded from the 
locate DB for one reason or another?  How about checking the actual 
expected path:

ls /var/lib/tomcat6/shared/classes/alfresco-global.properties

Indeed, if the manifests were working earlier in the day, then they must 
have applied the file then.  You wouldn't expect it to disappear from the 
server simply on account of Puppet ceasing to manage it, so it ought still 
to be there.

 

> There are no errors generated to do with the template, this module was 
> working earlier in the day and we had made some re-factors to it over the 
> course of the day, but now it appears to be running it and not applying any 
> configuration.
>

The agent log shows the File's 'require' parameter being honored, so the 
File appears in the catalog.  Are you sure it's not being applied?  How 
about grepping the agent's debug output for "alfresco-global.properties" to 
be sure you aren't overlooking the message.  Also, you could try tweaking 
your template (add a comment or something) to see whether the target node 
gets updated.

 

> If anyone has any idea why this might be the help is appreciated
> [...]
>
Agent debug log:
>
> [...]
> debug: 
> /Stage[main]/Alfresco::Cloud_alfresco/File[/var/lib/tomcat6/shared/classes/alfresco-global.properties]/require:
>  
> requires Class[Alfresco::Install]
> < Abridged >
> debug: /Stage[first]/Tomcat6::Install/File[/var/spool/abrt]/require: 
> requires File[/var/cache/tomcat6/abrt]
> debug: 
> /Stage[first]/Tomcat6::Install/File[/var/cache/tomcat6/temp]/require: 
> requires Package[tomcat6]
> < Abridged >
> debug: /Stage[first]/Tomcat6::Install/File[/var/cache/tomcat6]/require: 
> requires Package[tomcat6]
> debug: 
> /Stage[main]/Mcollective::Install/File[/var/lib/puppet/ssl/mcollective_clients/opspuppet.alfresco.pri.pem]/require:
>  
> requires File[/var/lib/puppet/ssl/mcollective_clients]
>

You appear to be missing relative ordering of your "first" stage with 
respect to your "main" stage.  That is unlikely to be related to your 
present issue, but it could cause you trouble in the future if you actually 
expect any relative order to be observed.

As to your issue, I'm not convinced you have one.  You may simply have been 
surprised by the order of resource application changing, so that the 
messages you were looking for in Puppet's log output were not where you 
were used to seeing them.  Such changes are likely whenever you modify your 
manifests, though they should not happen otherwise in relatively recent 
versions of Puppet.

 
John

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/AOIE8D6YJAUJ.
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