--- - name: ensure consul group group: name: consul state: present system: True - name: ensure consul user user: name: consul state: present group: consul system: True - name: ensure consul config dir file: path: /etc/consul.d/ state: directory owner: consul group: consul mode: 0755 - name: ensure consul config dir file: path: /etc/consul.d/certs/ state: directory owner: consul group: consul mode: 0744 - name: ensure consul agent ca cert copy: src: files/consul-agent-ca.pem dest: /etc/consul.d/certs/consul-agent-ca.pem owner: consul group: consul mode: 0644 - name: ensure consul data dir file: path: /opt/consul state: directory owner: consul group: consul mode: 0755 - name: check consul version shell: cmd: "consul --version | head -1 | cut -d'v' -f2" args: executable: /bin/bash changed_when: False register: installed_consul_version check_mode: False - name: get consul unarchive: src: "https://releases.hashicorp.com/consul/{{ consul_version }}/consul_{{ consul_version }}_linux_amd64.zip" dest: /usr/local/bin/ mode: 0755 owner: root group: root remote_src: True when: installed_consul_version.stdout != consul_version - name: copy consul unit file copy: src: files/consul.service dest: /etc/systemd/system/consul.service mode: 0755 owner: root group: root notify: daemon_reload - name: template consul config template: src: templates/consul.hcl.j2 dest: /etc/consul.d/consul.hcl owner: root group: root mode: 0755 notify: restart_consul_debian - name: ensure consul is started and enabled systemd: name: consul state: started enabled: True ...