관련 Ansible 역할이 설치 nginx
되고 일부 필수 구성을 수행 /etc/nginx
하고 방화벽에서 포트 80 및 443을 여는 웹 서버 인 호스트가 있다고 가정합니다 .
어떤 시점에서 특정 호스트가 더 이상 웹 서버가 아니기를 원합니다. 어떤 이유로 든 다른 곳으로 서비스를 옮겼 기 때문입니다. [webservers]
인벤토리에서 서버를 제거하면 서버에 쓰레기가 남습니다. 이상적으로는 설치 nginx
제거, /etc/nginx
디렉토리 (및 다른 디렉토리) 를 제거 하고 방화벽에서 포트 80 및 443을 닫고 싶습니다 .
꼭두각시에서 나는 이것을 할 수 있습니다. 웹 서버 인 호스트는 다음과 같이 구성됩니다.
class { 'nginx':
ensure => present,
}
내가해야 할 일은 "present"를 "absent"로 바꾸는 것입니다. 경우 nginx
클래스가 잘 작성된 것입니다, 그것이 만든 변경 사항을 취소합니다. 일반적으로 관리자는 "present"를 "absent"로 바꾸고 나중에 영향을받는 모든 호스트가 구성을 취소 한 것으로 확인되면 해당 항목을 매니페스트에서 제거합니다.
또한 Puppet 방화벽 모듈은 더 이상 매니페스트에서 찾을 수없는 방화벽 규칙을 자동으로 제거한다고 생각합니다. 따라서 방화벽의 경우 위의 "부재"를 수행하지 않아도 방화벽이 자동으로 닫힙니다.
Ansible로 이러한 것들을 어떻게 달성 할 수 있습니까?
ensure => present
에ensure => absent
도 ... 어떻게 ansible와 동일한 기능을 수행 할 것이다" 등 이상적를 이미 시도한 것의 예와 함께.