Những hạn chế của Puppet so với Ansible là gì?


16

Tôi muốn hiểu sự khác biệt giữa Puppet và Ansible, đặc biệt là những hạn chế của Puppet so với Ansible.

Có điều gì bạn không thể làm trong Puppet, nhưng bạn có thể làm trong Ansible không? Nói cách khác, tại sao một số người chuyển từ Puppet sang Ansible?


Tôi giữ câu trả lời của mình tách biệt với điều này, một trong những lý do có thể là tất cả số tiền mà bạn đang đầu tư vào nó.
ᴳᵁᴵᴰᴼ

Câu trả lời:


19

Tất nhiên có một số pro và nhược điểm cho mỗi Puppet, Ansible, Chef và thêm công cụ yêu thích của bạn vào đây . Vì vậy, tôi sẽ cố gắng tránh xa ý kiến ​​và chia sẻ những gì tuyệt vời trong Ansible như một vấn đề thực tế.

Khả năng chính đặt Ansible lên trên các yếu tố khác là không phải dựa vào một số tác nhân tùy chỉnh / bổ sung đang chạy trên các nút mục tiêu, thay vào đó chỉ được thiết lập trên các kết nối ssh. Có, nó vẫn yêu cầu máy chủ ssh, Python và một loạt thư viện Python trên các nút và nếu bản phân phối của bạn (hoặc, may mắn thay, có một số nút cửa sổ) không gửi cùng với chúng, nó sẽ có một chút đau đớn để bootstrap. Nhưng điều đó là không thể, và thậm chí có thể khiến bạn nghĩ lại về bản phát hành của mình.

Điều đó sẽ đơn giản hóa việc giám sát, không ăn tài nguyên bổ sung, không buộc hệ thống phải chạy trình nền gốc mọi lúc và nói chung cảm thấy tốt hơn trong triết lý UNIX. Đầu bếp có chef-solo, Puppet có thể được chạy bậc thầy, nhưng cả hai đều hoạt động "theo hướng khác", bằng cách nhân bản và thông qua các móc tương ứng. Trong khi với Ansible, việc hợp nhất trong kho lưu trữ nguồn có thể kích hoạt việc triển khai theo cách mà tất cả chúng ta đều cảm thấy thoải mái, có thể là trong Jenkins, trong git master hoặc trong một số công cụ khác như Rundeck chẳng hạn.


Đáng lưu ý rằng nếu bạn làm hỏng cấu hình ssh của mình với khả năng bạn bị khóa khỏi máy, đó là nhược điểm của mô hình đẩy. Con rối hoặc đầu bếp có thể làm việc trong công việc à crontab vì vậy chúng sẽ không ảnh hưởng đến hệ thống nhiều hơn mã Python có thể hiểu được
Tensibai

1
Một lưu ý về các đại lý: Tôi đã được một nhóm bảo mật từ chối Chef và Puppet chấp thuận trên tàu Ansible trong môi trường bảo mật cao. Chất độc là một yếu tố chiến thắng trong một số trường hợp.
Thợ săn rừng

2
Nếu bạn phá vỡ thiết lập SSH, bạn sẽ gặp vấn đề ngoài Ansible trong mọi trường hợp. Thực hành DevOps tốt để kiểm tra những thứ như thay đổi SSH trong các môi trường khác nhau trước khi chúng được sản xuất và cũng có thể xác thực cấu hình SSH là chính xác khi viết nó - templatemô-đun Ansible làm cho việc này khá dễ dàng.
RichVel

Tôi đã nghe mọi người đưa ra lập luận rằng kiến ​​trúc không có tác nhân của Ansible làm cho nó phù hợp hơn để quản lý các bộ định tuyến, ví dụ như bạn không thể cài đặt một tác nhân rối, nói. Nhưng các thiết bị như vậy có đi kèm với trình thông dịch Python không? Có lẽ là không, vậy Python có thực sự là một yêu cầu mạnh mẽ đối với mọi thành phần được quản lý bởi Ansible không?
Drux

9

Không, mọi người chuyển từ Puppet sang Ansible (hoặc ngược lại) không liên quan gì đến những gì có thể hoặc không thể thực hiện được bằng một trong hai công cụ. Con rối / Đầu bếp / Ansible - chủ yếu là vấn đề của hương vị.

Ví dụ: Ansible dựa trên Python và các nhà phát triển Python thường cảm thấy thoải mái hơn khi ở nhà với nó (không cần phải học DSL) hoặc Ruby (đối với Đầu bếp)). Các nhà phát triển Python cũng dễ dàng mở rộng Ansible hơn.

Nhưng về bản chất, tất cả chúng đều rất giống nhau về những gì bạn có thể đạt được. Một số có điểm mạnh tương đối trong một số lĩnh vực và điểm yếu trong những lĩnh vực khác, nhưng thông thường, sự lựa chọn giữa chúng được thực hiện theo phong cách / văn hóa / sở thích của đội.


7

Cho đến khi Puppet 4.0 không có cách nào dễ dàng để phối hợp ứng dụng trải rộng trên nhiều máy chủ hoặc dịch vụ, vì thật khó để đặt hàng các hành động trong Puppet, đó là một lựa chọn thiết kế . Ansible đã tốt hơn trong việc sắp xếp và sắp xếp các bước, đặc biệt là trên nhiều máy chủ. Điều này đặc biệt quan trọng trong các ứng dụng khi thứ tự các bước sai có thể dẫn đến các lỗi không thể phục hồi thông qua việc lặp lại các bước đó cho đến khi đạt được sự thống nhất cuối cùng.

Đó không còn là một vấn đề và vì vậy sự khác biệt chủ yếu dựa trên sở thích.


2
Sự lựa chọn thiết kế của con rối là một trong những lý do khiến Chef bắt đầu, và chính tôi đã chuyển sang Chef cho cơ sở hạ tầng và hệ thống CD của chúng tôi vài năm trước.
Tensibai

2
Dàn nhạc rối chỉ là một tính năng của Puppet Enterprise (thương mại), trong khi dàn nhạc trong Ansible là phiên bản nguồn mở. Nói chung, Ansible dễ cài đặt và học hỏi hơn nhiều so với Puppet - đã thực hiện một số đánh giá về cả hai, bây giờ tôi sử dụng Ansible. Cũng có những khác biệt khác, vì vậy đó không chỉ là vấn đề sở thích cá nhân.
RichVel

1
Tôi đang sử dụng Ansible cả trong công việc trước đây và hiện tại, nhưng nó có vấn đề riêng. Tôi càng sử dụng Ansible, tôi càng thích tìm hiểu một sự thay thế khác. Tôi thích cách thay thế này hơn là không sử dụng Python để phát triển mô-đun và để có một cộng đồng nguồn mở quan trọng đang hoạt động. Yêu cầu kéo ra cho Ansible mất gần một năm để được xem xét. Với tốc độ này, nó có thể là độc quyền.
Jiri Klouda

1
Nhiều người phàn nàn về tác nhân bù nhìn, nhưng khi bạn ở trên đám mây và nhóm tự động hóa và bạn không muốn xây dựng lại hình ảnh của vm của mình, thật tốt khi vm kết nối với chủ rối, tôi không thấy có vấn đề gì với có một đại lý nhỏ.
c4f4t0r
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.