I’m running a simple playbook to report on server configurations which is formatted into an html file from a template. I use the mail module to attach the html file into the body of the mail as follows:
- hosts: localhost
tasks:
- name: Send e-mail
local_action: mail
port=25
headers=“Content-type=text/html”
subtype=html
from=“xxx@xxx.com”
to=“xxx@xxx.com”
subject=‘Server Report’
body=“{{ lookup(‘file’, ‘/tmp/report.html’) }}”
When I run this on a group of 13/14 servers the play runs fine, mail is sent and received as expected. If I add more servers to the group, the initial parts of the playbook run fine, but then it fails when attempting to send the mail. I’ve not seen this with any other playbooks or roles I have on the same server, emails seem to send out just fine
TASK [Send e-mail] *******************************************************************************************************************************************************************************************************************
An exception occurred during task execution. To see the full traceback, use -vvv. The error was: socket.error: [Errno 111] Connection refused
fatal: [localhost → localhost]: FAILED! => {“changed”: false, “module_stderr”: “Traceback (most recent call last):\n File "/tmp/ansible_TNdcry/ansible_module_mail.py", line 386, in \n main()\n File "/tmp/ansible_TNdcry/ansible_module_mail.py", line 257, in main\n code, smtpmessage = smtp.connect(host, port=port)\n File "/usr/lib64/python2.6/smtplib.py", line 300, in connect\n self.sock = self._get_socket(host, port, self.timeout)\n File "/usr/lib64/python2.6/smtplib.py", line 278, in _get_socket\n return socket.create_connection((port, host), timeout)\n File "/usr/lib64/python2.6/socket.py", line 567, in create_connection\n raise error, msg\nsocket.error: [Errno 111] Connection refused\n”, “module_stdout”: “”, “msg”: “MODULE FAILURE”, “rc”: 1}
/var/log/messages shows the following abrtd errors which appear to come from python and ansible_module_mail.py:
Mar 5 17:45:13 <masked_server_name> abrt: [ID - user.info] detected unhandled Python exception in ‘/tmp/ansible_TNdcry/ansible_module_mail.py’
Mar 5 17:45:14 <masked_server_name> abrtd: [ID - daemon.err] Directory ‘pyhook-2018-03-05-17:45:14-17875’ creation detected
Mar 5 17:45:14 <masked_server_name> abrt-server[18081]: [ID - daemon.err] Saved Python crash dump of pid 17875 to /var/spool/abrt/pyhook-2018-03-05-17:45:14-17875
What I don’t know is whether this is ansible and/or python, or perhaps my poor implementation of the mail module. Google search has not returned any worthy suggestions or causes. Could I be missing something server side - python config or sendmail?
Does anyone have any ideas?
Version information:
ansible 2.4.3.0
config file = /etc/ansible/ansible.cfg
configured module search path = [u’/root/.ansible/plugins/modules’, u’/usr/share/ansible/plugins/modules’]
ansible python module location = /usr/lib/python2.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.6.6 (r266:84292, Aug 9 2016, 06:11:56) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]
-Simon