Email Module Failure on Ansible

I have set up an ansible tower using the following docker image

**ybalt/ansible-tower:****latest**

After setting up I have upgraded the applications inside the container by 

**apt-get upgrade**

After that following are the versions inside my conatiner

<b>ansible 2.7.6
  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.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Jul 18 2016, 15:02:52) [GCC 4.8.4</b>**]**

Then when I execute a script that uses the mail module in ansible the following error shown in the ansible tower output

<b>fatal: [Server]: FAILED! => {
    "changed": false, 
    "module_stderr": "Shared connection to x.x.x.x closed.\r\n", 
    "module_stdout": "\r\nTraceback (most recent call last):\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 113, in <module>\r\n    _ansiballz_main()\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 105, in _ansiballz_main\r\n    invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS)\r\n  File \"/home/ansible/.ansible/tmp/ansible-tmp-1549369654.27-211111564926363/AnsiballZ_mail.py\", line 48, in invoke_module\r\n    imp.load_module('__main__', mod, module, MOD_DESC)\r\n  File \"/tmp/ansible_mail_payload_bQeVQh/__main__.py\", line 381, in <module>\r\n  File \"/tmp/ansible_mail_payload_bQeVQh/__main__.py\", line 330, in main\r\nTypeError: 'NoneType' object is not iterable\r\n", 
    "msg": </b>**"MODULE FAILURE\nSee stdo…**

I have developed a seperate palybook with email configurations inorder 
to refer from an any playbook. So the following is the variables that I 
have defined in the playbook 

email_host: "[smtp.sendgrid.net](http://smtp.sendgrid.net)"
email_port: 587
email_username: "username"
email_password: "password"
email_to: "[admin@example.com](mailto:admin@example.com)"
email_cc:
email_subject: "test"
email_body:
email_subtype: "html"
email_secure: "try"
email_from: "[noreply@example.com](mailto:noreply@example.com) ( Ansible Tower )"
email_bcc:
email_attach:

Following is the way how i refer to the above email playbook from my other playbooks

<b>- name: Email body on failure
  set_fact:
    email_body="Hi {{ tower_user_name }}, <br><br> Status - Failed
                                                                  <br> Issue - Build path or given build name doesn't exist
                                                                  <br> Suggested Solution - Check the validity of the build path or the build name.
                                                                  <br><br> Thank You"

- name: Sending an email
  include_role:
    name: email
    tasks_from: main.yml
  when: path_build_location.stat.exists == False</b>

But when that section triggers and when a second play book tries to send
 an email. I get the above error. Variables in my ansible config file 
are fully commented out and all are overidden by the ansible tower 
variables.  All the configurations are rechecked and are according to 
the ansible documentation. I even can sent the notifications via the 
ansible tower but not through the mail module in ansible. But I expected
 to sent the mail automatically by the ansible script. But that didn't 
happen..

Is there something wrong with the email module.. Please give me a explantion. I'm bit stuck in this and I'm a newbie to ansible

ybalt/ansible-tower:latest

Whatever that is, isn’t supported by the AWX or Tower teams. If you have purchased Tower then you should contact your support rep.

Hi

I know its not supported from the relevant projects. But can you give me an idea regarding the error and what can be a possible clue under the above configurations. Just forget that its in a docker container, Lets say if its using the supported products what can be the possible issue ?? Or any clue that would be great.

Thank You

This doesn’t look like it’s related to AWX/Tower but with ansible itself. What is the result if you run your play from the command line with ansible-playbook?

Traceback (most recent call last):
File “/usr/bin/ansible-playbook”, line 67, in
import ansible.constants as C
File “/usr/lib/python2.7/dist-packages/ansible/constants.py”, line 180, in
config = ConfigManager()
File “/usr/lib/python2.7/dist-packages/ansible/config/manager.py”, line 207, in init
self._config_file = find_ini_config_file(self.WARNINGS)
File “/usr/lib/python2.7/dist-packages/ansible/config/manager.py”, line 165, in find_ini_config_file
path2 = unfrackpath(“~/.ansible.cfg”, follow=False)
File “/usr/lib/python2.7/dist-packages/ansible/utils/path.py”, line 47, in unfrackpath
basedir = os.getcwd()
OSError: [Errno 2] No such file or directory

This is the output