Supposons que j'ai un hôte qui est, entre autres, un serveur Web, où le rôle Ansible associé s'installe nginx
, effectue une configuration essentielle dans /etc/nginx
et ouvre les ports 80 et 443 dans le pare-feu.
À un moment donné, je veux que cet hôte particulier ne soit plus un serveur Web, car pour une raison quelconque, j'ai déplacé ce service ailleurs. Le simple fait de retirer le serveur de [webservers]
l'inventaire laisserait des ordures sur le serveur. Idéalement, je voudrais désinstaller nginx
, supprimer le /etc/nginx
répertoire (et certains autres répertoires) et fermer les ports 80 et 443 du pare-feu.
Dans Puppet, je peux le faire. Un hôte qui est un serveur Web aura quelque chose comme ça dans sa configuration:
class { 'nginx':
ensure => present,
}
et tout ce que j'ai à faire est de remplacer "présent" par "absent". Si la nginx
classe est bien écrite, elle annulera les modifications qu'elle a apportées. (En règle générale, un administrateur remplace «présent» par «absent», et plus tard, lorsqu'il est certain que tous les hôtes concernés ont annulé la configuration, il supprime l'élément du manifeste.)
De plus, je pense que le module de pare-feu Puppet supprime automatiquement les règles de pare-feu qui ne peuvent plus être trouvées dans le manifeste; donc je pense que, pour le pare-feu, vous n'avez même pas besoin de faire cette chose "absente" ci-dessus, le pare-feu se fermera automatiquement de toute façon.
Comment puis-je réaliser ces choses avec Ansible?
ensure => present
pourensure => absent
lequel aussi ... Comment faire la même chose avec ansible" etc. Idéalement avec un exemple de tout ce que vous avez déjà essayé.