2015-05-22 16 views
5

Tôi đang viết một trường hợp Kiểm tra bằng ansible.There hoàn toàn 9 máy chủ mà tôi cần kiểm tra xem phiên bản java đã cài đặt có là 1.7.0 hay không?Lệnh ansible để kiểm tra phiên bản java trong các máy chủ khác nhau

Nếu nó nhỏ hơn 1.7.0 thì trường hợp kiểm tra sẽ không thành công.

Bất kỳ ai cũng có thể giúp tôi viết trường hợp Kiểm tra này vì tôi rất mới không thể xử lý được.

Cảm ơn trước

Trả lời

2

Altough trong câu hỏi của bạn, bạn havn't định những gì đã bạn đã cố gắng, nhưng vẫn

Bạn có thể chạy một lệnh như thế này

ansible your_host -m command -a 'java -version'

Nếu bạn cần để phân tích đầu ra của java -version có một kịch bản rất hay từ Glenn Jackman here thích ứng với nhu cầu của bạn và sử dụng nó.

Nếu bạn vẫn đang tìm kiếm trợ giúp, hãy cụ thể hơn và hiển thị những gì bạn đã cố gắng thực hiện.

19

Ansible có số version_compare filter kể từ 1.6. Nhưng kể từ khi Ansible không biết về phiên bản Java của bạn, trước tiên bạn cần phải lấy nó trong một nhiệm vụ riêng biệt và đăng ký đầu ra, vì vậy bạn có thể so sánh nó.

- name: Fetch Java version 
    shell: java -version 2>&1 | grep version | awk '{print $3}' | sed 's/"//g' 
    register: java_version 

- assert: 
    that: 
     - java_version.stdout | version_compare('1.7', '>=') 

Trên một sidenote, nếu trường hợp sử dụng chính của bạn cho Ansible là để xác nhận tình trạng máy chủ bạn có thể muốn có một cái nhìn tại sử dụng một công cụ kiểm tra cơ sở hạ tầng thay vì: serverspec, goss, inspec, testinfra.

+0

rực rỡ, đây chỉ là những gì tôi cần, cảm ơn. – wheaties

Các vấn đề liên quan