假设我有一个主机,其中包括Web服务器,相关的Ansible角色将nginx
在其中安装,在其中执行一些基本配置/etc/nginx
,并在防火墙中打开端口80和443。
在某些时候,我希望该特定主机不再是Web服务器,因为出于某种原因,我将该服务移到了其他地方。仅从[webservers]
清单中删除服务器会在服务器中留下垃圾。理想情况下,我想卸载nginx
,删除/etc/nginx
目录(和其他一些目录),并关闭防火墙中的端口80和443。
在Puppet中,我可以做到这一点。作为Web服务器的主机在其配置中将具有以下内容:
class { 'nginx':
ensure => present,
}
我要做的就是用“缺席”代替“出席”。如果nginx
该类写得很好,它将撤消其所做的更改。(通常,管理员将“ present”替换为“ absent”,稍后,当他确定所有受影响的主机都撤消了配置后,他将从清单中删除该项目。)
而且,我认为Puppet防火墙模块会自动删除清单中找不到的防火墙规则。因此,我认为,对于防火墙,您甚至不需要执行上面的“缺少”操作,防火墙将自动关闭。
我如何通过Ansible实现这些目标?
ensure => present
到ensure => absent
这也将...如何做同样的ansible”等。理想举一个您已经尝试过的例子。