Giả sử tôi có một máy chủ, trong số những thứ khác, một máy chủ web, nơi cài đặt vai trò Ansible liên quan nginx
, thực hiện một số cấu hình thiết yếu trong /etc/nginx
và mở các cổng 80 và 443 trong tường lửa.
Tại một số điểm tôi muốn máy chủ cụ thể đó không còn là máy chủ web nữa, vì lý do nào đó tôi đã chuyển dịch vụ đó đi nơi khác. Chỉ cần loại bỏ máy chủ từ [webservers]
trong kho sẽ để lại rác trong máy chủ. Lý tưởng nhất là tôi muốn gỡ cài đặt nginx
, xóa /etc/nginx
thư mục (và một số thư mục khác) và đóng các cổng 80 và 443 trong tường lửa.
Trong Con rối tôi có thể làm điều này. Một máy chủ lưu trữ là một máy chủ web sẽ có cấu hình như thế này:
class { 'nginx':
ensure => present,
}
và tất cả những gì tôi phải làm là thay thế "hiện tại" bằng "vắng mặt". Nếu nginx
lớp được viết tốt, nó sẽ hoàn tác các thay đổi mà nó đã thực hiện. (Thông thường, quản trị viên sẽ thay thế "hiện tại" bằng "vắng mặt" và sau đó, khi anh ta chắc chắn rằng tất cả các máy chủ bị ảnh hưởng đã hoàn tác cấu hình, anh ta sẽ xóa mục này khỏi bảng kê khai.)
Hơn nữa, tôi nghĩ rằng mô-đun tường lửa Puppet sẽ tự động loại bỏ các quy tắc tường lửa không thể tìm thấy trong bảng kê khai nữa; Vì vậy, tôi nghĩ rằng, đối với tường lửa, bạn thậm chí không cần phải làm điều "vắng mặt" ở trên, tường lửa sẽ tự động đóng lại bằng mọi cách.
Làm thế nào tôi có thể đạt được những điều này với Ansible?
ensure => present
đểensure => absent
mà cũng sẽ ... Làm thế nào để làm điều tương tự với ansible" vv Lý tưởng nhất với một ví dụ về bất cứ điều gì bạn đã thử.