TL; DR - cho môi trường Jenkins của bạn cho CI/CD tôi khuyên bạn nên sử dụng chỉ Ansible.
Bạn đã phát hiện thấy có sự giao nhau khá lớn giữa Ansible & Rundeck, vì vậy tốt nhất nên tập trung vào nơi mỗi sản phẩm tập trung, đó là phong cách và sử dụng.
Focus
Tôi tin Rundeck của trọng tâm là trong việc giúp quản trị hệ thống để xây dựng một cổng thông tin tự phục vụ (web-based) mà có thể truy cập đến cả quản trị hệ thống khác và, có khả năng, ít "kỹ thuật" người/sysadmin. Trang web của Rundeck nói "Biến quy trình hoạt động của bạn thành công việc tự phục vụ. Hãy cung cấp cho người khác khả năng kiểm soát và khả năng hiển thị mà họ cần.". Rundeck cũng cảm thấy như nó có một cái nhìn 'tập trung hơn' trên thế giới: bạn tải các công việc vào một cơ sở dữ liệu và đó là nơi họ sống.
Với tôi, Ansible là dành cho nhà thiết kế - vì vậy hãy xây dựng và tự động triển khai các ứng dụng (tự xây dựng) theo cách sao cho chúng có thể lặp lại nhiều lần. Tôi cho rằng Ansible tập trung nhiều hơn cho các nhà phát triển phần mềm xây dựng các sản phẩm của riêng mình: Ansible 'playbooks' là các tập tin văn bản, vì vậy thường được lưu trữ trong điều khiển nguồn và thông thường cùng với ứng dụng mà các playbook sẽ triển khai.
tập trung
Với Rundeck Tạo việc làm bạn thường giải quyết việc làm thông qua giao diện web.
Với Ansible bạn tạo các tác vụ/playbook trong tệp qua trình chỉnh sửa văn bản.
Operation/Task/nghề Phong cách
Rundeck theo mặc định là bắt buộc - bạn viết kịch bản được thực thi (thông qua SSH).
Ansible là cả hai mệnh lệnh (nghĩa là thực thi các lệnh bash) nhưng cũng khai báo, vì vậy trong một số trường hợp, hãy bắt đầu Apache, bạn có thể sử dụng tác vụ service
để đảm bảo rằng nó đang chạy. Điều này là gần gũi hơn với các công cụ quản lý cấu hình khác như Puppet và Chef.
công việc phức tạp/script
Rundeck có khả năng chạy một công việc khác bằng cách định nghĩa một bước trong quy trình làm việc của công việc nhưng từ kinh nghiệm này cảm thấy như một tacked-on bổ sung so với một tính năng nghiêm trọng cấp cao nhất.
Ansible được thiết kế để tạo các hoạt động phức tạp; chạy/bao gồm/etc là các tính năng cấp cao nhất.
Làm thế nào nó chạy
Rundeck là một ứng dụng máy chủ. Nếu bạn muốn chạy các công việc từ nơi khác (như CI), bạn sẽ cần phải gọi ra cli hoặc thực hiện cuộc gọi API.
Thẳng Ansible là dòng lệnh.
điều kiện
Do cross-over và tính linh hoạt chung của Rundeck và Ansible bạn có thể đạt được tất cả những điều trên trong mỗi. Bạn có thể kiểm soát phiên bản của các công việc Rundeck của bạn bằng cách xuất chúng sang YAML hoặc XML và kiểm tra chúng thành điều khiển nguồn. Bạn có thể nhận giao diện người dùng web trong Ansible bằng Tower. v.v. v.v.
Câu hỏi của bạn:
Công cụ bổ sung?
Tôi có thể hình dung một cửa hàng SaaS sử dụng cả hai: người dùng có thể sử dụng Ansible để thực hiện tất cả các hành động triển khai và sau đó sử dụng Rundeck để thực hiện công việc một lần, adhoc.
Tuy nhiên, trong khi tôi có thể hình dung nó, tôi sẽ không khuyên bạn nên làm điểm xuất phát. Tôi, tôi bắt đầu chỉ với Ansible và xem tôi đi được bao xa. Tôi chỉ có lớp trong Rundeck sau này nếu tôi phát hiện ra rằng tôi thực sự, thực sự cần phải chạy một lần.
CI/CD
Ansible: môi trường của bạn nghe có vẻ giống như một ngôi nhà phần mềm mà bạn đang triển khai ứng dụng của riêng bạn. Nó có lẽ nên được lặp lại (đặc biệt là khi bạn đang đi giao hàng liên tục), do đó bạn sẽ muốn kịch bản triển khai của bạn trong kiểm soát nguồn. Bạn sẽ muốn đơn giản và Ansible là "chỉ các tập tin văn bản". Tôi hy vọng bạn cũng sẽ muốn các dev của bạn có thể chạy mọi thứ trên máy của họ (phải không?), Ansible được phân cấp.
Được sử dụng với nhau (cho CI/CD)
Calling Rundeck từ Ansible, không có. Chắc chắn, nó sẽ là có thể nhưng tôi đang đấu tranh để đến với lý do tốt. Ít nhất, không phải là lý do cụ thể cho từng ứng dụng cụ thể.
Gọi Ansible từ Rundeck, có. Tôi có thể hình dung ai đó đầu tiên xây dựng một số lệnh adhoc lặp lại trong Ansible. Sau đó, tôi có thể thấy có một nhu cầu nhỏ để có thể gọi điều này mà không có một dòng lệnh (nói: người dùng không có kỹ thuật). Nhưng, một lần nữa, điều này là nhận được cụ thể cho môi trường của bạn.
có lẽ đó là một sự giúp đỡ [link] (https://groups.google.com/forum/#!topic/rundeck-discuss/8rJWEmjhwnM) – ThoFin
này thực sự là một câu hỏi dựa trên ý kiến, do đó, nó không có khả năng thêm giá trị đáng kể từ quan điểm đó. – ingyhere