Par défaut, Ansible est configuré avec délai maximum de 10 secondes concernant les collectes liés au matériel d’un serveur.
Dans un cas précis concernant un serveur sur un site distant, j’obtenais l’erreur suivante lors de l’exécution d’un playbook :
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: TimeoutError: Timer expired
fatal: [pve-b-01]: FAILED! => {« changed »: false, « cmd »: « /bin/lsblk –list –noheadings –paths –output NAME,UUID –exclude 2 », « failed »: true, « msg »: « Timer expired », « rc »: 257}
Cette erreur indique que le retour de la commande /bin/lsblk --list --noheadings --paths --output NAME,UUID --exclude 2
met plus de 10 secondes a s’exécuter.
L’option permettant d’augmenter la valeur du délai maximum se nomme : gather_timeout et cette option se trouve dans le fichier de configuration général d’Ansible /etc/ansible/ansible.cfg
Augmenter la valeur gather_timeout
- Éditer le fichier de configuration d’Ansible :
nano /etc/ansible/ansible.conf
gather_timeout = 10
et changer la valeur de 10 par une plus grande, exemple 30 :gather_timeout = 30
La prise en compte de la modification de la valeur est directement faite lors de l’exécution du playbook. Dans mon cas, cela a suffit pour régler le problème du Timer expired.