- name: load distribution-specific values include_vars: '{{ item }}' with_first_found: - '{{ ansible_distribution }}.yml' - defaults.yml - name: ensure haproxy is installed package: name=haproxy state=present tags: - install - name: ensure default haproxy configuration file is empty copy: src: haproxy.cfg dest: /etc/haproxy mode: u=rw,go=r notify: restart haproxy - name: ensure haproxy global configuration is set template: src: global.cfg.j2 dest: /etc/haproxy/conf.d/10-global.cfg mode: u=rw,go=r notify: restart haproxy - name: ensure haproxy defaults are set template: src: defaults.cfg.j2 dest: /etc/haproxy/conf.d/20-defaults.cfg mode: u=rw,go=r notify: restart haproxy - name: ensure haproxy stats frontend is configured template: src: stats.cfg.j2 dest: /etc/haproxy/conf.d/30-stats.cfg mode: u=rw,go=r notify: reload haproxy tags: - config - stats - name: ensure haproxy starts at boot service: name: haproxy enabled: true tags: - service - name: ensure firewall is configured for haproxy stats firewalld: port: '{{ haproxy_stats_port }}/tcp' immediate: '{{ item == "immediate" }}' permanent: '{{ item == "permanent" }}' state: enabled loop: - immediate - permanent when: host_uses_firewalld|d(true) and haproxy_enable_stats tags: - firewalld - stats