2016-08-03 20 views
7

Gần đây tôi đã nâng cấp lên 2.1 từ 1.9.1 trong môi trường phát triển của chúng tôi. Tôi sử dụng virtualenv để cài đặt ansible 2.1 bằng pip. Gần đây khi chạy playbook, tôi đã nhận lỗi này:Ansible upgrade 2.1: lỗi gather_subset

fatal: [xxxxx-dev.com]: FAILED! => {"changed": false, "failed": true, "msg": "unsupported parameter for module: gather_subset"} 

Tôi thấy rằng trong Ansible 2.1, họ đã thêm một khả năng mới để thu thập dữ kiện hạn chế về host nhưng theo mặc định nó đặt gather_subset cho tất cả. Vì vậy, tôi đã không đặt giá trị này trong tập tin cấu hình của tôi và mong đợi nó để mặc định cho tất cả.

Lỗi này chỉ xảy ra một lần và các lần chạy tiếp theo đã thành công. Tôi cũng đọc here rằng nếu ansible được cài đặt riêng biệt thông qua apt là tốt, nó có thể gây ra vấn đề nhưng kể từ khi tôi đang sử dụng venv, tôi giả sử rằng nó sẽ bị buộc phải sử dụng phiên bản 2.1. Bất kỳ trợ giúp được đánh giá cao.

+0

Bạn có thể tạo lại lỗi không? Hoặc nó chỉ xảy ra một lần? –

Trả lời

3

Sau khi đấu tranh trong hai ngày, cuối cùng tôi đã hiểu tại sao nó thất bại.

Lý do là tôi đã có cài đặt cấu hình mặc định trong ansible.cfg đã làm cho hệ thống nhận ansible dễ đọc từ/usr/share/ansible thay vì virtualenv nơi chúng tôi cài đặt thư viện. Hệ thống thư viện ansible đã lỗi thời trên máy chủ, chúng tôi đã chạy playbook trên, do đó gây ra thất bại. Tôi đã xóa cài đặt để đảm bảo ansible chọn các mô-đun mới nhất được cài đặt chỉ trong venv.