Supponiamo di avere un host che è, tra le altre cose, un web server, in cui viene installato il ruolo Ansible correlato nginx
, esegue una configurazione essenziale /etc/nginx
e apre le porte 80 e 443 nel firewall.
Ad un certo punto voglio che quel particolare host non sia più un web server, perché per qualche ragione ho spostato quel servizio altrove. La semplice rimozione del server [webservers]
dall'inventario lascerebbe immondizia nel server. Idealmente, vorrei disinstallare nginx
, rimuovere la /etc/nginx
directory (e alcune altre directory) e chiudere le porte 80 e 443 nel firewall.
In Puppet posso farlo. Un host che è un server Web avrà qualcosa di simile nella sua configurazione:
class { 'nginx':
ensure => present,
}
e tutto quello che devo fare è sostituire "presente" con "assente". Se la nginx
classe è ben scritta, annullerà le modifiche apportate. (In genere un amministratore sostituisce "presente" con "assente" e, successivamente, quando è sicuro che tutti gli host interessati abbiano annullato la configurazione, rimuoverà l'elemento dal manifest.)
Inoltre, penso che il modulo firewall Puppet rimuova automaticamente le regole del firewall che non possono più essere trovate nel manifest; quindi penso che, per il firewall, non sia nemmeno necessario fare quella cosa "assente" sopra, il firewall si chiuderà automaticamente comunque.
Come posso ottenere queste cose con Ansible?
ensure => present
inensure => absent
quale sarà anche ... Come fare lo stesso con ansible" ecc. Idealmente con un esempio di tutto ciò che hai già provato.