diff --git a/tasks/pkg-debian.yml b/tasks/pkg-debian.yml index 88360131..9ded9655 100644 --- a/tasks/pkg-debian.yml +++ b/tasks/pkg-debian.yml @@ -23,11 +23,6 @@ state: present when: datadog_apt_key_url_new is defined -- name: Remove previous datadog apt list file - file: - path: /etc/apt/sources.list.d/ansible_datadog_agent.list - state: absent - - name: Ensure Datadog non-https repositories are deprecated apt_repository: repo: "{{ item }}" @@ -41,7 +36,7 @@ - name: Ensure Datadog repository is up-to-date apt_repository: - filename: ansible_datadog_agent + filename: "ansible_datadog_{{ item.key }}" repo: "{{ item.value }}" state: "{% if item.key == datadog_agent_major_version|int and datadog_apt_repo | length == 0 %}present{% else %}absent{% endif %}" update_cache: yes @@ -51,9 +46,31 @@ 6: '{{ datadog_agent6_apt_repo }}' 7: '{{ datadog_agent7_apt_repo }}' +- name: Initialize custom repo file deletion flag to False + set_fact: + datadog_remove_custom_repo_file: "False" + +- name: Check if custom repository file exists + stat: + path: /etc/apt/sources.list.d/ansible_datadog_custom.list + register: datadog_custom_repo_file + +- name: Flag custom repository file for deletion if different from current repository config + set_fact: + datadog_remove_custom_repo_file: "{{ datadog_repo_file_contents != datadog_apt_repo }}" + vars: + datadog_repo_file_contents: "{{ lookup('file', '/etc/apt/sources.list.d/ansible_datadog_custom.list') }}" + when: datadog_custom_repo_file.stat.exists + +- name: (Custom) Remove Datadog custom repository file when not set or updated + file: + path: /etc/apt/sources.list.d/ansible_datadog_custom.list + state: absent + when: (datadog_apt_repo | length == 0) or datadog_remove_custom_repo_file and (not ansible_check_mode) + - name: (Custom) Ensure Datadog repository is up-to-date apt_repository: - filename: ansible_datadog_agent + filename: ansible_datadog_custom repo: "{{ datadog_apt_repo }}" state: present update_cache: yes