Tôi biết Puppet từ (có giới hạn) kinh nghiệm và nhận thấy rằng trong quản lý cấu hình hiện có xu hướng mạnh mẽ đối với Ansible.
Một mặt, tôi hiểu rằng Ansible không yêu cầu một tác nhân, bởi vì nó sử dụng thông minh ssh
.
Mặt khác, đây là những tính năng đã được yêu thích về Puppet:
- truy cập vào trạng thái và lịch sử cấu hình trên toàn hệ thống (PuppetDB) thông qua API REST
- khả năng giữ bản sao lưu của các tập tin bị ghi đè (filebuckets)
- khả năng mã hóa một phần cấu hình Hiera (
.eyaml
)
Trong số này, PuppetDB đối với tôi có vẻ quan trọng và hữu ích nhất (ví dụ như để tích hợp với các công cụ khác). Do đó, câu hỏi của tôi là: Ansible có gì đó giống với PuppetDB, tức là một thành phần cung cấp API, nơi nó có thể được hỏi "Gói nào được cài đặt trên máy chủ x ?" hoặc "Trên máy chủ nào được cài đặt gói y ?"
(Câu hỏi này đã được di chuyển từ StackOverflow ).
CẬP NHẬT Nhược điểm đáng kể của Puppet cho đến nay trải nghiệm của tôi: Không quá nhiều thực tế là nó đòi hỏi phải có một tác nhân (từ những gì tôi đã thấy, việc sử dụng Python của Ansible cũng giới thiệu một tác nhân thuộc dạng trình thông dịch Python ;-), nhưng rằng nó muốn đại lý của mình hoạt động như là root
duy nhất và luôn luôn.
root
quyền truy cập trên cụm máy chủ, nhưng vẫn có thể sử dụng Ansible để quản lý một ứng dụng web lớn ở đó. Bên cạnh đó, có những SA không đăng nhập như root
, nhưng sử dụng sudo
ít hơn thay vào đó.
root
thế nào? Nó thay thế nhu cầu SA để đăng nhập và thực hiện mọi thứ thủ công, do đó nó phải có khả năng làm bất cứ điều gì SA có thể làm.