Summary
We've explored Puppet's file
resource in detail, covering file sources, ownership, permissions, directories, symbolic links, and file trees. We've learned how to manage packages by installing specific versions, or the latest version, and how to uninstall packages. We've covered Ruby gems, both in the system context and Puppet's internal context. Along the way, we met the very useful puppet-lint
tool.
We have looked at service
resources, including the hasstatus
, pattern
, hasrestart
, restart
, stop
, and start
attributes. We've learned how to create users and groups, manage home directories, shells, UIDs, and SSH authorized keys. We saw how to schedule, manage, and remove cron jobs.
Finally, we've learned all about the powerful exec
resource, including how to run arbitrary commands, and how to run commands only under certain conditions, or only if a specific file is not present. We've seen how to use the refreshonly
attribute to trigger an exec
resource when other resources are updated...