Первая справка по сборнику игр (проверка ошибок) - PullRequest
1 голос
/ 11 декабря 2019

Я пишу свой первый сборник пьес Ansible, и я немного растерялся, надеясь, что кто-то может указать мне правильное направление.

Вот мой код:

    ---

- hosts: all
  become: yes
  tasks:
    - name: check /var/log/messages
      shell: "cat /var/log/messages | grep error | mailx -r xxx@xxx.com xxx@gmail.com"
      ignore_errors: yes

    - name: check /var/log/secure
      shell: "cat /var/log/secure | grep denied | mailx -r xxx@xxx.com xxx@gmail.com"
      ignore_errors: yes

Я получаюотдельное письмо для каждого сервера, и даже когда ничего нет, я получаю пустое письмо. Я читал кое-что о обработчиках, было бы неплохо сказать, если вывод равен нулю, ничего не делать.

1 Ответ

0 голосов
/ 12 декабря 2019

Вы можете использовать следующий фрагмент. Работал на ansible 2.7+.

Что делает?

  1. Первая задача - запустить команду оболочки и сохранить результаты в результатах. «результаты» - стандартная переменная, предоставляемая ansible. Вы можете ссылаться на возвращаемые значения здесь. здесь
  2. вторая задача будет: на основе результатов пуста или нет, он будет отправлять вывод по почте
- hosts: all
  become: yes
  tasks:
    - name: check /var/log/messages
      shell: "cat /var/log/messages | grep error"
      register: results
      ignore_errors: yes

   - name: Send mail
     shell: " echo {{ results.stdout }} | mailx -r xxx@xxx.com xxx@gmail.com"
     when: result.stdout == ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...