具有相似角色的服务器是否具有一个具有不同配置文件的角色,或每个服务器具有不同角色?

时间:2016-05-17 08:32:03

标签: puppet

我正在努力探索Puppet,更糟糕的是我正在使用Red Hat Satellite 6,这增加了额外的复杂性。

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

我有两个不同的同事告诉我两种不同的方式。我的第一个可用方法是创建一个'role_graphing',然后有'sub-roles',比如role_graphing :: relay等等。我的第二种可行方式是每个服务器都有一个角色。

我目前已经使用了第一种方法,而我的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
}   

然后在我的manifeststs文件夹中,我有一个profile_relay.pp,profile_cache.pp等等。每个配置文件只是从Yum或Forge安装所需的包,然后配置它们。

我是以'正确'的方式来做这件事吗?

1 个答案:

答案 0 :(得分:3)

不是直接建议你,我会描述Puppetlabs对这些术语的意图,然后是一个例子,所以你会看到它。

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

示例:

localhost.localdomain包含角色application_server

role application_server包含个人资料指示灯和web_apps

配置文件灯包含apache,mysql和php模块

个人资料web_apps包含app_one和app_two模块

apache模块包含https://forge.puppet.com/puppetlabs/apache