- name: Ensure all dependecies are presented apt: name: "{{ item }}" state: present loop: - tar # - xz-utils - name: Create etcd group group: name: etcd state: present system: true - name: Cretae etcd user user: name: etcd group: etcd system: yes shell: /sbin/nologin home: /var/lib/etcd create_home: yes state: present - name: Make your own dns (aka hosts) copy: src: hosts dest: /etc/hosts owner: root group: root mode: 0644 - name: Download etcd get_url: url: https://github.com/etcd-io/etcd/releases/download/v3.6.4/etcd-v3.6.4-linux-amd64.tar.gz dest: /tmp/etcd.tar.gz mode: 0644 - name: Cretae tmp dir file: path: /tmp/etcd state: directory mode: 0755 - name: create etc dir file: path: /etc/etcd state: directory owner: etcd group: etcd mode: 0755 - name: Unpack etcd unarchive: src: /tmp/etcd.tar.gz remote_src: true dest: /tmp/etcd extra_opts: [--strip-components=1] owner: etcd group: etcd - name: Move bins to path copy: src: "/tmp/etcd/{{ item }}" dest: "/usr/bin/{{ item }}" mode: 0755 remote_src: true loop: - etcd - etcdctl - etcdutl - name: put etcd config template: src: etcd.conf.yml.j2 dest: /etc/etcd/etcd.conf.yml owner: etcd group: etcd mode: 0644 - name: put systemd unit file for etcd copy: src: etcd.service dest: /etc/systemd/system/etcd.service owner: root group: root mode: 0644 - name: start and enable etcd service: name: etcd enabled: true state: started