configure_alerting.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # Copyright 2022 Dell Inc. or its subsidiaries. All Rights Reserved.
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. ---
  15. - name: Install mailx and postfix
  16. package:
  17. name: "{{ mail_packages }}"
  18. state: present
  19. - name: Start postfix service
  20. systemd:
  21. name: postfix
  22. state: started
  23. - block:
  24. - name: Install python3
  25. package:
  26. name: python3
  27. state: present
  28. - name: Update pip version
  29. command: pip3 install --upgrade pip
  30. changed_when: true
  31. - name: Install ansible
  32. pip:
  33. name: ansible
  34. state: present
  35. executable: pip3
  36. when: os_leap in ansible_distribution | lower
  37. - block:
  38. - name: Install ansible
  39. package:
  40. name: ansible
  41. state: present
  42. when: os_leap not in ansible_distribution | lower
  43. - name: Install community.general collection
  44. command: ansible-galaxy collection install {{ community_general_collection }}
  45. changed_when: true
  46. - name: Copy auth_failure_check.yml to login_node
  47. copy:
  48. src: "{{ role_path }}/files/auth_failure_check.yml"
  49. dest: "{{ alerting_file_path }}"
  50. - name: Fetch ansible-playbook path
  51. command: whereis ansible-playbook
  52. changed_when: false
  53. register: ansible_playbook_path
  54. - name: Schedule cron job for alerting
  55. cron:
  56. name: Auth failure alerting
  57. special_time: hourly
  58. job: "{{ ansible_playbook_path.stdout.split(' ')[1] }} {{ alerting_file_path }} -e 'alert_email_address={{ hostvars['127.0.0.1']['alert_email_address'] }}'"