2015-05-22 9 views
5

Sto scrivendo un caso di test usando ansible.Ci sono totalmente 9 server in cui ho bisogno di verificare se la versione java installata è 1.7.0 o no?Comando anonimo per verificare la versione java in diversi server

Se è inferiore a 1.7.0, il test case non avrà esito positivo.

Qualcuno può aiutarmi a scrivere questo Test case perché sono molto nuovo ad ansible.

Grazie in anticipo

risposta

2

Benche nella tua domanda havn't specificato che cosa hai provato, ma ancora

è possibile eseguire un comando come questo

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

Se avete bisogno per analizzare l'output di java -version c'è un ottimo script di Glenn Jackman here adattarlo alle tue esigenze e usarlo.

Se stai ancora cercando aiuto, sii più specifico e mostra ciò che hai provato a fare.

19

Ansible ha un version_compare filter dal 1.6. Ma poiché Ansible non conosce la tua versione di Java, devi prima recuperarla in un'attività separata e registrare l'output, in modo da poterlo confrontare.

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

Su un sidenote, se il vostro caso d'uso principale per Ansible è quello di validare lo stato del server si potrebbe desiderare di avere uno sguardo a utilizzando uno strumento di test delle infrastrutture, invece: serverspec, goss, inspec, testinfra.

+0

brillante, questo è proprio quello di cui avevo bisogno, grazie. – wheaties