Załóżmy, że mam hosta, który jest między innymi serwerem sieci Web, na którym instaluje się powiązana rola Ansible nginx
, wykonuje niezbędną konfigurację /etc/nginx
i otwiera porty 80 i 443 w zaporze.
W pewnym momencie chcę, aby ten konkretny host nie był już serwerem WWW, ponieważ z jakiegoś powodu przeniosłem tę usługę w inne miejsce. Samo usunięcie serwera z [webservers]
ekwipunku pozostawiłoby śmieci na serwerze. Idealnie chciałbym odinstalować nginx
, usunąć /etc/nginx
katalog (i niektóre inne katalogi) oraz zamknąć porty 80 i 443 w zaporze.
W Puppet mogę to zrobić. Host będący serwerem WWW będzie miał w swojej konfiguracji coś takiego:
class { 'nginx':
ensure => present,
}
wszystko, co muszę zrobić, to zastąpić „obecny” na „nieobecny”. Jeśli nginx
klasa jest dobrze napisana, cofnie wprowadzone zmiany. (Zazwyczaj administrator zamienia „obecny” na „nieobecny”, a później, gdy jest pewien, że wszyscy dotknięci hostami cofnęli konfigurację, usunie element z manifestu).
Co więcej, myślę, że moduł zapory ogniowej Puppet automatycznie usuwa reguły zapory ogniowej, których nie można już znaleźć w manifeście; więc myślę, że w przypadku zapory nie musisz nawet robić powyższej „nieobecnej” rzeczy, zapora i tak automatycznie się zamknie.
Jak mogę osiągnąć te rzeczy za pomocą Ansible?
ensure => present
naensure => absent
który również… Jak zrobić to samo z ansible” itp. Idealnie z przykładem wszystkiego, co już próbowałeś.