我想知道当我们改变节点状态时是否可以安装和删除软件包?
为了澄清我的意思,这里有一个例子:
组:
负载均衡器
Web 服务器
数据库
节点:
Minion1
Minion2
Minion3
如果我们将 Minion1 添加到“Web 服务器”组,则必须在其上安装 Java 和 Tomcat 服务器。如果从“Web 服务器”组中删除 Minion1,则必须从中删除 Java 和 Tomcat 服务器。如果我们将 Minion 2 添加到“负载均衡器”和“数据库”两个组中,则必须安装 Nginx 和 MySQL。如果我们从“数据库”组中删除 Minion2 并将 Minion2 添加到“Web 服务器”,则必须从中删除 MySQL 并在其上安装 Java 和 Tomcat。依此类推。
是否可以配置 Salt 以使其像这样运行?也许还有其他选择?
答案1
您可以设置每个组以包含与pkg
状态以这样一种方式,他们既决定需要什么installed
,又决定需要什么purged
。
但这似乎是一种奇怪的方法。通常,如果您想要替换一个节点,您会将旧虚拟机全部移除,然后为新角色实例化一个新的虚拟机。这样,您可以确保一切干净,并且不会冒着可能干扰新角色的任意更改的风险。