Supongamos que tengo un host que es, entre otras cosas, un servidor web, donde se instala el rol Ansible relacionado nginx
, realiza una configuración esencial /etc/nginx
y abre los puertos 80 y 443 en el firewall.
En algún momento quiero que ese host en particular ya no sea un servidor web, porque por alguna razón mudé ese servicio a otra parte. Simplemente eliminar el servidor del [webservers]
inventario dejaría basura en el servidor. Idealmente, me gustaría desinstalar nginx
, eliminar el /etc/nginx
directorio (y algunos otros directorios) y cerrar los puertos 80 y 443 en el firewall.
En Puppet puedo hacer esto. Un host que es un servidor web tendrá algo como esto en su configuración:
class { 'nginx':
ensure => present,
}
y todo lo que tengo que hacer es reemplazar "presente" con "ausente". Si la nginx
clase está bien escrita, deshacerá los cambios que ha realizado. (Normalmente, un administrador reemplazará "presente" por "ausente", y más tarde, cuando esté seguro de que todos los hosts afectados hayan deshecho la configuración, eliminará el elemento del manifiesto).
Además, creo que el módulo de firewall Puppet elimina automáticamente las reglas de firewall que ya no se pueden encontrar en el manifiesto; así que creo que, para el cortafuegos, ni siquiera necesita hacer esa cosa "ausente" anterior, el cortafuegos se cerrará automáticamente de todos modos.
¿Cómo puedo lograr estas cosas con Ansible?
ensure => present
aensure => absent
que también ... Cómo hacer lo mismo con ansible", etc. Idealmente con un ejemplo de cualquier cosa que ya hayas probado.