Là Puppet (hoặc tương tự) là một công nghệ phù hợp để chăm sóc những thay đổi lớn nhưng cơ bản?
Vâng, nó có thể được sử dụng theo cách này. Tôi sử dụng nó để hỗ trợ các hệ thống khách hàng bên ngoài.
Tôi không muốn bất kỳ máy chủ nào có thể thấy bất kỳ cấu hình nào mà nó không nên
Nếu bạn đang sử dụng con rối, bạn không được bật tự động. Autosign cho phép máy chủ tự động yêu cầu chứng chỉ. Cấu hình và quyền của bạn gần như chắc chắn sẽ được gắn trực tiếp với CN trong chứng chỉ. Bạn không muốn máy tính ngẫu nhiên xuất hiện trực tuyến và có thể tuyên bố rằng chúng thực sự là hệ thống với tất cả các công cụ bảo mật cao bí mật.
Nếu bạn thực sự hoang tưởng, bạn có thể điều chỉnh cài đặt máy chủ con rối để tạo các chia sẻ mà chỉ một số hệ thống có thể truy cập. Quyền truy cập máy chủ được dựa trên các chứng chỉ.
Tôi không muốn Puppet thực hiện bất kỳ thay đổi nào không nên hoặc hoàn nguyên mọi thay đổi thủ công được thực hiện trên máy chủ.
Có một vài cách tiếp cận khác nhau để cho phép thay đổi cục bộ.
Một phương pháp tôi thường xuyên sử dụng là dưới đây. Về cơ bản nếu bạn chuyển một danh sách cho a source
, thì con rối thử từng mục trong danh sách. Vì vậy, tôi thêm mục đầu tiên trong danh sách để trỏ đến một tệp cục bộ.
file { '/etc/ssh/sshd_config':
ensure => present,
source => ["/etc/ssh/sshd_config_local",
"puppet:///modules/ssh/$ssh_config_file"],
...
}
Một lựa chọn khác là sử dụng các liên kết tượng trưng. Nếu ai đó muốn sử dụng phiên bản con rối, họ liên kết với phiên bản con rối của một tệp. Nếu họ muốn duy trì cấu hình cục bộ, thì họ không tạo liên kết tượng trưng.
file { '/etc/ssh/sshd_config_puppet':
ensure => present,
source => "puppet:///modules/ssh/$ssh_config_file",
...
}
Khả năng khác là sử dụng augeas để thực hiện thay đổi cấp độ dòng thay vì thay đổi toàn bộ tệp. Hãy rất bảo thủ về những gì bạn thay đổi.