我对大型基础架构的配置管理工具相对较新。该公司将使用Salt用于Linux和Windows,但我想这个问题与特定工具无关。
我没有得到的是,让我们假设我们在云中安装了30台机器,并为每台机器安装了几个自定义服务。版本可能会有所不同,具体取决于客户订阅。每个服务都有一个配置文件,可以有机器特定的数据。如何使用Salt或Puppet,Chef,Ansible类工具更新这些服务的配置文件。
答案 0 :(得分:2)
我不了解Salt,但一般来说,配置管理工具中有几组主机,它们具有相同的配置,模板和变量,可用于每台机器的自定义
例如,您可以为port=8888
指定变量host1
,为port=9999
指定host2
,但nginx-template将是这样的:
server {
listen {{port}};
}
两台服务器。 与机器特定数据示例相同的想法(ansible):
- name: start container with mon
docker:
name: test-mongo
state: reloaded
image: mongo
when: master_ip == ansible_default_ipv4.address
其中master_ip
是我的变量,而ansible_default_ipv4.address
是ip,其中ansible连接到此主机。
希望这会有所帮助。
答案 1 :(得分:1)
使用Chef,您可以使用Erb模板进行配置,并在大多数情况下基于节点属性进行插值。这些可以直接在节点本身上设置,或者您可以为每个客户创建一个角色并在那里设置客户特定的属性数据。