2015-05-22 20 views
5

Piszę przypadek testowy używając ansible. Istnieją całkowicie 9 serwerów, w których muszę sprawdzić, czy zainstalowana wersja java to 1.7.0 czy nie?Odpowiednia komenda do sprawdzania wersji java na różnych serwerach

Jeśli jest mniejszy niż 1,7, to testowanie nie powiedzie się.

Czy ktoś może mi pomóc napisać ten przypadek testowy, ponieważ jestem bardzo nowy w ansibli.

góry dzięki

Odpowiedz

2

altough w swoim pytaniu pan havn't określone co pan próbował, ale nadal

można uruchomić polecenia jak to

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

Jeśli potrzebujesz aby przeanalizować wyjście z java -version istnieje bardzo dobry scenariusz z Glenn Jackman here dostosować go do swoich potrzeb i używać go.

Jeśli nadal szukasz pomocy, bądź bardziej konkretny i pokaż, co próbowałeś zrobić.

19

Urządzenie Ansible ma version_compare filter od 1.6. Ale ponieważ Ansible nie wie o twojej wersji Java, musisz najpierw pobrać ją w oddzielnym zadaniu i zarejestrować wyjście, abyś mógł to porównać.

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

Na marginesie, jeśli głównym przypadek użycia dla ansibl jest do sprawdzania stanu serwera może chcesz przyjrzeć się za pomocą narzędzia testowego infrastruktury zamiast: serverspec, goss, inspec, testinfra.

+0

Świetne, właśnie tego potrzebowałem, dzięki. – wheaties