Я установил ответную башню, используя следующий образ докера
ybalt/ansible-tower:latest
После настройки я обновил приложения внутри контейнера на
apt-get upgrade
После этого выполните следующие действия.версии внутри моего хранилища
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]
Затем, когда я выполняю сценарий, который использует почтовый модуль в ansible, следующая ошибка, показанная в выводе ansible tower
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": "MODULE FAILURE\nSee stdo…
, я разработал отдельную palybookс настройками электронной почты, чтобы ссылаться на любую книгу.Итак, ниже приведены переменные, которые я определил в playbook
email_host: "smtp.sendgrid.net"
email_port: 587
email_username: "username"
email_password: "password"
email_to: "admin@example.com"
email_cc:
email_subject: "test"
email_body:
email_subtype: "html"
email_secure: "try"
email_from: "noreply@example.com ( Ansible Tower )"
email_bcc:
email_attach:
Ниже приведен способ, которым я ссылаюсь на вышеприведенную электронную книгу playbook из других моих playbooks
- 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
Но когда этосекция срабатывает и когда вторая игровая книга пытается отправить электронное письмо.Я получаю вышеуказанную ошибку.Переменные в моем файле конфигурации ansible полностью закомментированы, и все они переопределяются переменными типа ansible tower.Все конфигурации перепроверены и соответствуют заявленной документации.Я даже могу отправлять уведомления через ansible tower, но не через почтовый модуль в ansible.Но я ожидал, что письмо будет отправлено автоматически с помощью сценария ansible.Но этого не произошло ..