用户和虚拟资源

How good the design is doesn’t matter near as much as whether the design is getting better or worse. If it is getting better, day by day, I can live with it forever. If it is getting worse, I will die.

— Kent Beck

在本章中,我们将学习如下内容:

  • 使用虚拟资源

  • 使用虚拟资源管理用户

  • 管理用户基于密钥的 SSH 访问

  • 管理用户的自定义文件

  • 有效地分发 cron 任务

  • 当文件更新时运行命令

  • 使用主机资源

  • 为文件资源指定多个源

  • 使用文件资源递归地分发整个目录树

  • 清理过期的旧文件

  • 使用日程表资源

  • 资源的审计

  • 临时禁用资源

  • 管理时区

维护用户是件痛苦的事,我不是说人,但毫无疑问某种情况下这确实是真的。 为了在网络中的机器上同步 UNIX 用户账号和权限文件,其中一些机器可能运行了不同的操作系统, 没有某种集中的配置管理是非常具有挑战性的。

考虑一个新的开发者要加入开发团队的情况,他在每台机器上都需要一个账号, 并为此账号的组成员分配 sudo 特权;还需要他的 SSH 密钥授权一堆不同的账号。 系统管理员若手工实现这些工作,恐怕要忙活一整天。 使用 Puppet 的系统管理员却能在几分钟内完成这些工作,提早就去吃午餐了。

在本章中,我们将会看到管理用户及其相关资源的处理模式和技术。 我们还将看到:如何在 Puppet 中安排资源的执行; 为提高效率如何将 cron 任务分散到不同的时间执行; 如何处理时区,如何处理 /etc/hosts 条目; 以及如何让 Puppet 收集审计数据,使有人搞乱了你网络中的机器时能被发现。