Mi sto solo bagnando i piedi con Ansible 2.2 e Debops e ho riscontrato il seguente problema. Ho un host test-host
a cui ho distribuito un server MySQL (utilizzando geerlingguy.mysql).Ansible using systemd invece del modulo di servizio
Il ruolo utilizza il seguente gestore per riavviare il servizio:
---
- name: restart mysql
service: "name={{ mysql_daemon }} state=restarted sleep=5"
che, ho pensato, usa Ansibles service module per riavviare il server. Tuttavia, questo fallisce:
unsupported parameter for module: sleep
Quindi, solo per escludere qualsiasi stranezza con quel ruolo personalizzato, ho provato ad eseguire il modulo direttamente in questo modo:
ansible test-host -b -m service -a 'name=mysql sleep=5 state=restarted'
con lo stesso risultato.
Esecuzione Ansible con spettacoli output più dettagliato (tra le altre cose):
Running systemd
Using module file /usr/local/lib/python2.7/site-packages/ansible-2.2.0-py2.7.egg/ansible/modules/core/system/systemd.py
così sembra che il modulo systemd
viene usato al posto di service
(guardando nel modulo dimostra che è davvero aliased to service
). E, ecco, systemd
non supporta il parametro sleep
.
Come risolvere il problema?
Così nel frattempo ci sono un paio di cose che puoi fare. Il primo è usare l'ultima versione supportata che è 'v2.1.0.0-1'. Il secondo è quello di sollevare un problema su https://github.com/ansible/ansible-modules-core/issues se non esiste già poiché questo è chiaramente un comportamento non previsto. –
Problema creato: https://github.com/ansible/ansible-modules-core/issues/3897 – n3rd
Correlati: se si installa il servizio systemd su un sistema upstart come Ubuntu 14.04, ansible utilizzerà il modulo systemd invece di il modulo di servizio, causando dolore. https://github.com/ansible/ansible/issues/19030 –