I have a problem that starts to make me think that puppet is not usable to install packages. I will explain:
There is a common situation when you put some code on the %post when creating rpm.
In my case I am executing some db migrations after the installation has been performed. The problems rises when something goes wrong in the scriptlet because the yum command will ignore the failure end exits with a succesful code. To add more complexity the yum provider performs a yum -q command, that means no output on your logs. So you don't know if the installation has ended ok or not.