I want to run
mysql_tzinfo_to_sql whenever the tzinfo package (on Ubuntu Server) changes. I figured Puppet can take care of this.
I thought that either Puppet would react to a change in the package version, or if not, then to a change in timestamps of a file contained in the package.
The only way I can see to do this is to have a resource with no direct action, and have an exec depending on it.
The questions I have are:
- Is it possible to define a file that is only used to Notify another resource (such as exec)?
- Is it possible to define a package resource so that another resource (such as exec) is activated when the package changes or updates?
- Is it possible to define an exec resource that runs a shell command line (with pipes and redirection for instance) instead of a command from the filesystem?
Taken all together, it seems overwhelming.
FOLLOWUP: Fantastic answers! In the interest of completeness (and for the record), I should note the following:
- The complete shell command of interest is
mysql_tzinfo_to_sql | mysql -u root -p password(it loads tzinfo into a MySQL database for MySQL use).
- Auditing of
/etc/tzinfowould be futile as this is merely the local time zone configuration; the goal is to watch for changes in the tzinfo data itself (thus the watching of
- Likewise, the contents would be the wrong thing to watch - as they're likely not to change; the best would be to watch the mtime or all since the filetimes should change after every tzinfo update.