Suponha que eu tenha um host que seja, entre outras coisas, um servidor Web, em que a função Ansible relacionada seja instalada nginx, execute algumas configurações essenciais /etc/nginxe abra as portas 80 e 443 no firewall.
Em algum momento, quero que esse host em particular não seja mais um servidor Web, porque, por algum motivo, mudei esse serviço para outro lugar. Apenas remover o servidor do [webservers]inventário deixaria lixo no servidor. Idealmente, eu gostaria de desinstalar nginx, remover o /etc/nginxdiretório (e alguns outros diretórios) e fechar as portas 80 e 443 no firewall.
No Puppet eu posso fazer isso. Um host que é um servidor web terá algo parecido com isto em sua configuração:
class { 'nginx':
ensure => present,
}
e tudo o que preciso fazer é substituir "presente" por "ausente". Se a nginxclasse for bem escrita, ela desfará as alterações que fez. (Normalmente, um administrador substitui "presente" por "ausente" e, mais tarde, quando tiver certeza de que todos os hosts afetados desfeitaram a configuração, ele removerá o item do manifesto.)
Além do mais, acho que o módulo de firewall Puppet remove automaticamente as regras de firewall que não podem mais ser encontradas no manifesto; então acho que, para o firewall, você nem precisa fazer a coisa "ausente" acima, o firewall será fechado automaticamente de qualquer maneira.
Como posso conseguir essas coisas com o Ansible?
ensure => presentpara oensure => absentque também ... Como fazer o mesmo com o ansible" etc. Idealmente com um exemplo de qualquer coisa que você já tentou.