我对木偶很陌生,我正在努力弄清楚如何组织模块、配置文件和角色。我对模块配置文件角色模式的一般理解是,每个服务器都有一个角色,角色是从概要文件构建的,而配置文件是从模块构建的。下面是我为帮助我可视化而做的一个粗略的图表:

我有一个配置文件,其中我想包括另一个配置文件(使用上面的例子: wordpress-server可以包括服务器核心,因为我永远不会部署没有服务器核心的wordpress-server )。
这会打破常规吗?
编辑:
为了在反馈的基础上扩展我的问题,下面是一组假设的概要文件。我将以一种特殊的方式命名,这样我们就可以看到它们是如何相互继承的:下划线将用来表示一个概要文件继承自另一个(子)配置文件。
|-profile/manifests/ |---- base |---- base_linux |---- base_linux_server |---- base_linux_workstation |---- base_windows |---- base_windows_workstation |---- base_windows_server
现在,让我们添加一个名为“变硬”的配置文件,这是跨平台的,我们希望它在所有服务器上。这会使我们的命名方案有点混乱,但我们可以管理:
|-profile/manifests/ |---- base |---- base_linux |---- base+hardening_linux_server |---- base_linux_workstation |---- base_windows |---- base_windows_workstation |---- base+hardening_windows_server |---- hardening
现在让我们把事情搞得一团糟,为工作站和服务器创建一个概要文件:
|-profile/manifests/ |---- base |---- base_linux |---- base+hardening_linux_server |---- base_linux_workstation |---- base_windows |---- base_windows_workstation |---- base+hardening_windows_server |---- hardening |---- base+hardening_linux_server_+_base_linux
好吧,这有点乱七八糟,但我真正关心的是,如果我们不使用这个命名方案的话,对于一个新招募的人来说,这会是什么样子:
|-profile/manifests/ |---- base |---- linux_core |---- linux_server |---- linux_workstation |---- windows |---- desktop_pc |---- win_server |---- hardening |---- server_and_workstation
如果新招聘的任务是创建一个新的角色,就没有办法理解这一点在其他配置文件中包含概要文件打破了我们可以查看模块/概要文件/查看角色中包含什么的假设。
所以,让我重新表述一下我最初的问题:
这是典型的和预期的配置文件混乱,还是因为我打破了模块配置文件角色模式而发生的?
发布于 2017-05-09 14:34:00
配置文件很多,角色是单数的。因此,您的角色仍然应该是单角色,但是在配置文件中有配置文件是很好的,因为您仍然保持代码的干燥状态。
你说你担心可能会有后果,但我想不出有什么不好的事情发生了,除了它可能会增加你控制回购中的清单数量。
重要的是要记住,角色和轮廓模式不是福音。这是一个框架,以确保您保持代码干燥,并使您的开发人员/系统管理员更容易可视化各部分是如何组合在一起的。有时,如果规则对你的组织或团队有效,那么弯曲甚至打破规则也是可以的。
例如,我与一个拥有非常大的基本配置文件的团队一起工作,其中包含了所有的组件模块,而且它变得很难管理。所以我帮忙把它重构成这样:
class profiles::base {
# include all base profiles
include ::profiles::base::issue
include ::profiles::base::motd
include ::profiles::base::ntp
include ::profiles::base::postfix
include ::profiles::base::resolver
include ::profiles::base::selinux
include ::profiles::base::snmpd
include ::profiles::base::sshd
include ::profiles::base::sysctl
# include all hardening profiles
include ::profiles::base::hardening::auditd
include ::profiles::base::hardening::firewall
include ::profiles::base::hardening::limits
include ::profiles::base::hardening::networking
include ::profiles::base::hardening::shadow
include ::profiles::base::hardening::xconfig
}这意味着你在基础中有子配置文件,否则基本配置文件会很快变得相当复杂。
https://stackoverflow.com/questions/43855107
复制相似问题