--- - hosts: consul vars: consul_config_dir: /etc/consul.d consul_data_dir: /opt/consul consul_install_dir: /usr/local/bin become: true tasks: - name: install required UNZIP package: name: unzip - name: add the CONSUL group group: name: consul state: present gid: 199 - name: add the CONSUL user user: name: consul comment: CONSUL user state: present uid: 199 - name: install CONSUL from HashiCorp unarchive: src: https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip dest: /usr/local/bin remote_src: yes mode: 0755 owner: consul group: consul - name: create CONSUL required data folders file: path: /opt/consul state: directory mode: '0755' recurse: yes owner: consul group: consul - name: create CONSUL required config folders file: path: /etc/consul.d state: directory mode: '0755' recurse: yes owner: consul group: consul - name: copy CONSUL systemd script copy: src: "{{ item }}" dest: /etc/consul.d owner: consul group: consul with_items: - consul/configs/consul.hcl - consul/configs/service-ssh.hcl - name: send consul configuration file template: dest: "{{ consul_config_dir }}/config.json" src: consul.config.j2 - name: ensure consul service file exists template: dest: /etc/systemd/system/consul.service src: consul.service.j2 force: yes mode: 0644 - name: enable CONSUL systemd script service: name: consul enabled: yes daemon_reload: yes state: restarted