--- # - set_fact: # datasaker_agents: "{{ datasaker_agents | reject('equalto', 'dsk-log-agent') | list }}" # when: ansible_facts.distribution_version != "18.04" - name: Set os-specific variables set_fact: os_specific: "{% if ansible_facts['os_family'] == 'RedHat' and ansible_facts['distribution_major_version'] == '7' %}datasaker-redhat-7 {% elif ansible_facts['os_family'] == 'RedHat' and ansible_facts['distribution_major_version'] == '8' %}datasaker-redhat-8 {% elif ansible_facts['os_family'] == 'Amazon' and ansible_facts['distribution_major_version'] == '2' %}datasaker-amazonlinux-2 {% elif ansible_facts['os_family'] == 'Debian'%}debian-repos {% else %}unknown{% endif %}" - name: "Create temporary directory for key manipulation" tempfile: state: directory suffix: keys register: tempdir - name: "download keyring then add key to keyring" get_url: url: "{{ dsk_public_gpg_key }}" dest: "{{ tempdir.path }}/datasaker.gpg.key" force: yes - name: "Create {{ apt_usr_share_keyring }} if it doesn't exist" file: path: "{{ apt_usr_share_keyring }}" state: touch mode: "0644" changed_when: False - name: "Ensure downloaded file for binary keyring" shell: "cat {{ tempdir.path }}/datasaker.gpg.key | sudo gpg --import --batch --no-default-keyring --keyring {{ apt_usr_share_keyring }}" - name: "copy keyring to trusted keyring" copy: src: "{{ apt_usr_share_keyring }}" dest: "{{ apt_trusted_d_keyring }}" mode: "0644" remote_src: yes - name: "Remove temporary directory for key manipulation" file: path: "{{ tempdir.path }}" state: absent - name: "Add datasaker repository" apt_repository: repo: "deb [signed-by={{ apt_usr_share_keyring }}] https://nexus.exem-oss.org/repository/debian-repos/ ubuntu main" state: present filename: datasaker - name: "Install metric sidecar" apt: name: "dsk-metric-sidecar" state: present update_cache: yes force: yes - name: "Make Datasaker Log Directory" ansible.builtin.file: path: "{{ datasaker_host_log_path }}/{{ item }}" state: directory recurse: yes owner: root group: root with_items: - "{{ datasaker_agents }}" - name: "Install datasaker agent" apt: name: "{{ item }}" state: latest update_cache: yes with_items: - "{{ datasaker_agents }}" ignore_errors: true when: - "item != 'dsk-maria-agent' and item != 'dsk-mysql-agent' and item != 'dsk-postgres-agent'" - name: "Install datasaker database agent" apt: name: "{{ item }}" state: latest update_cache: yes with_items: - "{{ datasaker_agents }}" ignore_errors: true when: - "item == 'dsk-maria-agent' or item == 'dsk-mysql-agent' or item == 'dsk-postgres-agent'" - "'database' in group_names" - name: "Check datasaker Agent" include_tasks: check-agent.yml - name: "Install datasaker log agent" apt: name: "td-agent" state: latest update_cache: yes when: - '"dsk-log-agent" in datasaker_agents' - log_agent_image_tag != "latest" - name: "Reload systemd configuration" ansible.builtin.systemd: daemon_reload: True - name: "Restart dsk-agent service" ansible.builtin.systemd: name: "{{ item }}" enabled: true state: restarted with_items: - "{{ datasaker_agents }}" ignore_errors: true when: - "item != 'dsk-maria-agent' and item != 'dsk-mysql-agent' and item != 'dsk-postgres-agent'" - name: "Restart dsk-database-agent service" ansible.builtin.systemd: name: "{{ item }}" enabled: true state: restarted with_items: - "{{ datasaker_agents }}" ignore_errors: true when: - "item == 'dsk-maria-agent' or item == 'dsk-mysql-agent' or item == 'dsk-postgres-agent'" - "'database' in group_names"