我是大厨的新手。我一直在使用chef-solo
,到目前为止我真的很喜欢它。我不清楚的一件事是处理不同组织的相同软件的软件配置的最佳实践。
例如:
假设我想为两个不同的组织管理一个 Redis 安装。假设一个组织需要以两种不同的方式配置 Redis。所以,这给我们留下了三种配置。
我是否使用一本 Redis 食谱和三个 Redis 食谱创建一个厨房?我是否为每个组织创建一个厨房?
执行所有这些操作的最佳做法是什么?谢谢。
我是大厨的新手。我一直在使用chef-solo
,到目前为止我真的很喜欢它。我不清楚的一件事是处理不同组织的相同软件的软件配置的最佳实践。
例如:
假设我想为两个不同的组织管理一个 Redis 安装。假设一个组织需要以两种不同的方式配置 Redis。所以,这给我们留下了三种配置。
我是否使用一本 Redis 食谱和三个 Redis 食谱创建一个厨房?我是否为每个组织创建一个厨房?
执行所有这些操作的最佳做法是什么?谢谢。
您可以通过将您的配置文件转换为模板并将不同的配置片段制作成您个人说明书中的属性来实现这一点。然后,您可以逐个节点地指定这些属性。
Chef solo 最简单的方法是为不同的机器设置不同的运行列表,并在其中指定属性。
另一方面,如果您计划使用集中管理的 Chef 存储库来管理多个不同的客户/客户,我会确保您的 Chef 存储库的任何部分都没有任何敏感内容,因为节点几乎可以完全免费查询任何食谱或属性集,除非您使用的是加密数据包,即便如此,根据您分发密钥的方式,它们也可能不安全。只是将来要考虑的事情。
在运行列表中使用 2 本食谱。
第一本食谱包含组织特定参数作为节点属性
default['redis']['data_dir']="/data/company1/redis"
第二本食谱完成所有繁重的工作,根据需要使用第一本食谱中的参数。
directory "#{node['redis']['data_dir']" do owner myapp mode 0755 action :create end
如果您不想要 2 本食谱,您也可以使用数据包提供参数。