2015-05-22 13 views
5

Ich schreibe einen Testfall mit ansible.There sind insgesamt 9 Server, in denen ich überprüfen muss, ob die installierte Java-Version 1.7.0 ist oder nicht?Ansible Befehl zum Überprüfen der Java-Version auf verschiedenen Servern

Wenn es kleiner als 1.7.0 ist, sollte der Testfall fehlschlagen.

Kann jemand mir helfen, diesen Testfall zu schreiben, wie ich zu ansible sehr neu bin.

Vielen Dank im Voraus

Antwort

2

Altough in Ihrer Frage havn't Sie angegeben, was haben Sie versucht, aber immer noch

Sie können einen Befehl wie dieses

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

Wenn Sie ausführen müssen zu analysieren, die Ausgabe von java -version gibt es ein sehr gutes Skript von Glenn Jackman here passen Sie es an Ihre Bedürfnisse an und verwenden Sie es.

Wenn Sie immer noch Hilfe suchen, seien Sie genauer und zeigen Sie, was Sie zu tun versucht haben.

19

Ansible hat eine version_compare filter seit 1.6. Aber da Ansible nichts über Ihre Java-Version weiß, müssen Sie es zuerst in einer separaten Aufgabe abrufen und die Ausgabe registrieren, damit Sie es vergleichen können.

- 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', '>=') 

Auf Nebenbei bemerkt, wenn Ihr Hauptanwendungsfall für ansible ist es, den Serverstatus zu validieren Sie stattdessen einen Blick auf mit einem Infrastruktur-Test-Tool haben möchten: serverspec, goss, inspec, testinfra.

+0

brilliant, das ist genau das, was ich brauchte, danke. – wheaties

Verwandte Themen