--- - fail: msg: Interface {{ etcd_interface }} not found when: "'ansible_' ~ etcd_interface not in hostvars[inventory_hostname]" - fail: msg: IPv4 address not found for {{ etcd_interface }} when: "'ipv4' not in hostvars[inventory_hostname]['ansible_' ~ etcd_interface] or 'address' not in hostvars[inventory_hostname]['ansible_' ~ etcd_interface].ipv4" - name: Install etcd action: "{{ ansible_pkg_mgr }} name=etcd-2.* state=present" and not is_atomic - name: Validate permissions on the config dir file: path: "{{ etcd_conf_dir }}" state: directory owner: etcd group: etcd mode: 0700 - name: Validate permissions on certificate files file: path: "{{ item }}" mode: 0600 group: etcd owner: etcd when: etcd_url_scheme == 'https' with_items: - "{{ etcd_ca_file }}" - "{{ etcd_cert_file }}" - "{{ etcd_key_file }}" - name: Validate permissions on peer certificate files file: path: "{{ item }}" mode: 0600 group: etcd owner: etcd when: etcd_peer_url_scheme == 'https' with_items: - "{{ etcd_peer_ca_file }}" - "{{ etcd_peer_cert_file }}" - "{{ etcd_peer_key_file }}" - name: Write etcd global config file template: src: etcd.conf.j2 dest: /etc/etcd/etcd.conf backup: true notify: - restart etcd - name: Enable etcd service: name: etcd state: started enabled: yes register: start_result - set_fact: etcd_service_status_changed = start_result | changed