我正在努力探索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安装所需的包,然后配置它们。
我是以'正确'的方式来做这件事吗?
答案 0 :(得分:3)
不是直接建议你,我会描述Puppetlabs对这些术语的意图,然后是一个例子,所以你会看到它。
模块是清单,函数,文件,模板等的集合。 配置文件是一个或多个模块的集合。 角色是一个或多个配置文件的集合。 服务器是一个或多个角色的集合。
示例:
localhost.localdomain包含角色application_server
role application_server包含个人资料指示灯和web_apps
配置文件灯包含apache,mysql和php模块
个人资料web_apps包含app_one和app_two模块