--- - name: Download Consul binary get_url: url: https://releases.hashicorp.com/consul/1.16.0/consul_1.16.0_linux_amd64.zip dest: /tmp/consul.zip mode: '0644' - name: Extract Consul unarchive: remote_src: yes src: /tmp/consul.zip dest: /usr/local/bin/ - name: Create consul user user: name: consul system: yes shell: /bin/false - name: Create directories file: path: "{{ item }}" state: directory owner: consul group: consul mode: '0755' with_items: - /etc/consul - /var/lib/consul - /var/log/consul - name: Copy Consul config template: src: consul.conf.j2 dest: /etc/consul/consul.json owner: consul group: consul mode: '0644' - name: Copy Consul service template: src: consul.service.j2 dest: /etc/systemd/system/consul.service owner: root group: root mode: '0644' - name: Enable and start Consul systemd: name: consul enabled: yes state: started