--- - name: create prometheus system group group: name: prometheus system: true state: present - name: create prometheus system user user: name: prometheus system: true shell: "/usr/sbin/nologin" group: prometheus createhome: false home: "{{ prometheus_db_dir }}" - name: create prometheus data directory file: path: "{{ prometheus_db_dir }}" state: directory owner: prometheus group: prometheus mode: 0755 - name: create prometheus configuration directories file: path: "{{ item }}" state: directory owner: root group: prometheus mode: 0770 with_items: - "{{ prometheus_config_dir }}" - "{{ prometheus_config_dir }}/rules" - "{{ prometheus_config_dir }}/file_sd" - name: propagate official prometheus and promtool binaries copy: src: "/tmp/{{ prometheus_tarball }}/{{ item }}" dest: "{{ prometheus_binary_install_dir }}/{{ item }}" mode: 0755 owner: root group: root remote_src: true with_items: - prometheus - promtool notify: - restart prometheus - name: propagate official console templates copy: src: "/tmp/{{ prometheus_tarball }}/{{ item }}/" dest: "{{ prometheus_config_dir }}/{{ item }}" mode: 0644 owner: root group: root remote_src: true with_items: - console_libraries - consoles notify: - restart prometheus #- name: propagate locally distributed prometheus and promtool binaries # copy: # src: "{{ prometheus_binary_local_dir }}/{{ item }}" # dest: "{{ prometheus_binary_install_dir }}/{{ item }}" # mode: 0755 # owner: root # group: root # remote_src: true # with_items: # - prometheus # - promtool # notify: # - restart prometheus - name: create systemd service unit template: src: prometheus.service.j2 dest: /etc/systemd/system/prometheus.service owner: root group: root mode: 0644 notify: - restart prometheus - name: Allow prometheus to bind to port in SELinux seport: ports: "{{ prometheus_web_listen_address.split(':')[1] }}" proto: tcp setype: http_port_t state: present when: - (ansible_os_family == "RedHat") - (ansible_selinux.status == "enabled")