--- # tasks file for perforce_sdp_monitoring - name: "Install rsyslog packages" become: yes ansible.builtin.apt: name: "rsyslog" state: present when: ansible_facts["os_family"] == "Debian" - name: "Install rsyslog packages (RedHat)" become: yes ansible.builtin.yum: name: "rsyslog" state: present when: ansible_facts["os_family"] == "RedHat" - name: "Query Perforce server case handling" become: yes become_user: "{{ perforce_user }}" ansible.builtin.shell: cmd: "source /p4/common/bin/p4_vars {{ perforce_id }} && p4 -ztag -F %caseHandling% info" executable: /bin/bash register: p4_case_handling changed_when: false - name: Download and set permissions on p4prometheus install script. become: yes ansible.builtin.get_url: url: https://raw.githubusercontent.com/perforce/p4prometheus/master/scripts/install_p4prom.sh dest: /p4/install_p4prom.sh mode: '0755' owner: "{{ perforce_user }}" group: "{{ perforce_group }}" retries: 3 delay: 10 register: p4prom_download until: p4prom_download is not failed - name: "Set case_sensitive_server to false in install script" become: yes ansible.builtin.replace: path: /p4/install_p4prom.sh regexp: 'case_sensitive_server: true' replace: 'case_sensitive_server: false' when: p4_case_handling.stdout == "insensitive" - name: "Set output_cmds_by_ip to true in install script" become: yes ansible.builtin.replace: path: /p4/install_p4prom.sh regexp: 'output_cmds_by_ip: false' replace: 'output_cmds_by_ip: true' - name: Run the install script become: yes shell: "/p4/install_p4prom.sh {{ perforce_id }} -m {{ p4prometheus_metrics_dir }}" - name: "Create p4prometheus location file" become: yes template: src: "./p4prometheus_location.j2" dest: "{{ p4prometheus_metrics_dir }}/location.prom" owner: "{{ perforce_user }}" group: "{{ perforce_group }}" # --- P4 Health Check Probe --- - name: "Install p4 health check script" become: yes template: src: "./p4_healthcheck.sh.j2" dest: "/p4/common/bin/p4_healthcheck.sh" mode: '0755' owner: "{{ perforce_user }}" group: "{{ perforce_group }}" - name: "Create p4 health check cron job" become: yes become_user: "{{ perforce_user }}" ansible.builtin.cron: name: "p4 health check" job: "/p4/common/bin/p4_healthcheck.sh" minute: "*" # --- Network Latency Monitoring --- - name: "Install network latency monitoring script" become: yes template: src: "./p4_network_latency.sh.j2" dest: "/p4/common/bin/p4_network_latency.sh" mode: '0755' owner: "{{ perforce_user }}" group: "{{ perforce_group }}" when: p4_network_latency_enabled and commit_dns is defined - name: "Create network latency cron job" become: yes become_user: "{{ perforce_user }}" ansible.builtin.cron: name: "p4 network latency check" job: "/p4/common/bin/p4_network_latency.sh" minute: "*" when: p4_network_latency_enabled and commit_dns is defined # --- Disk Space Monitoring --- - name: "Install disk space monitoring script" become: yes template: src: "./p4_disk_space.sh.j2" dest: "/p4/common/bin/p4_disk_space.sh" mode: '0755' owner: "{{ perforce_user }}" group: "{{ perforce_group }}" - name: "Create disk space monitoring cron job" become: yes become_user: "{{ perforce_user }}" ansible.builtin.cron: name: "p4 disk space check" job: "/p4/common/bin/p4_disk_space.sh" minute: "*/5"