Puppet 具有类似角色的服务器应该具有一个具有不同配置文件的角色,还是每个服务器具有不同的角色?

Puppet 具有类似角色的服务器应该具有一个具有不同配置文件的角色,还是每个服务器具有不同的角色?,puppet,Puppet,我正在努力让我的头围绕木偶,更糟糕的是,我使用红帽卫星6号,这增加了额外的复杂性 我目前正在构建一个grpahite图形解决方案。有三种类型的服务器(中继-接收数据,缓存-存储数据,图形-运行Grafana并与缓存对话) 我有两个不同的同事告诉我用两种不同的方法来做。我的第一个可用方法是创建一个“角色\图形”,然后创建“子角色”,如角色\图形::中继,等等。我的第二个可用方法是每个服务器只拥有一个角色 我目前使用了第一种方法,我的init.pp如下所示: class role_graphing

我正在努力让我的头围绕木偶,更糟糕的是,我使用红帽卫星6号,这增加了额外的复杂性

我目前正在构建一个grpahite图形解决方案。有三种类型的服务器(中继-接收数据,缓存-存储数据,图形-运行Grafana并与缓存对话)

我有两个不同的同事告诉我用两种不同的方法来做。我的第一个可用方法是创建一个“角色\图形”,然后创建“子角色”,如角色\图形::中继,等等。我的第二个可用方法是每个服务器只拥有一个角色

我目前使用了第一种方法,我的init.pp如下所示:

class role_graphing {   
    include profile::graphing_base
}

class role_graphing::relay inherits role_graphing {
    include profile::carbon_c_relay
}   

class role_graphing::cache inherits role_graphing {
    include profile::carbon_cache
    include profile::carbon_c_relay
    include profile::graphite_web
    include profile::memcached      
}   

class role_graphing::graph inherits role_graphing {
    include profile::graph
}   
然后在我的清单文件夹中,我有一个profile\u relay.pp、profile\u cache.pp等等。每个概要文件只需从Yum或Forge安装所需的软件包,然后对其进行配置


我这样做是“正确”的吗?

我将描述Puppetlabs对这些术语的意图,然后给出一个示例,让您大致了解

模块是清单、函数、文件、模板等的集合。 配置文件是一个或多个模块的集合。 角色是一个或多个配置文件的集合。 服务器是一个或多个角色的集合

例如:

localhost.localdomain包含角色应用程序\服务器

角色应用程序服务器包含配置文件lamp和web应用程序

profile lamp包含apache、mysql和php模块

配置文件web_应用程序包含app_one和app_两个模块


apache模块只包含一个说明,即服务器应属于一个角色。如果服务器需要两个角色,最好创建一个同时具有这两个角色的配置文件的新角色。@Walid这是一个建议,而不是规则。有关更多信息,请咨询木偶从业者课程。了解。我从加里和体育顾问那里得到的,据我所知,对于像foreman这样的ENC来说,坚持一个角色/服务器建议是有意义的,因为这是这些GUI/工具所允许的。此外,如果您希望导出企业服务目录和服务依赖关系图;它可以很容易地完成和映射。角色表示服务目录中的服务,概要文件表示更高的依赖抽象。