diff --git a/roles/docker/tasks/check_version.yml b/roles/docker/tasks/check_version.yml new file mode 100644 index 0000000..564cbc7 --- /dev/null +++ b/roles/docker/tasks/check_version.yml @@ -0,0 +1,24 @@ +# =================================================================================================== +# ? ABOUT +# @author : Noah Knegt +# @email : personal@noahknegt.com +# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations +# @createdOn : 31-03-2023 +# @description : This will check if docker is installed as the latest version. +# =================================================================================================== + +--- +- name: Check docker version + shell: docker --version + register: docker_version + ignore_errors: true + +- name: Check if latest version is stable + shell: curl -s https://api.github.com/repos/docker/cli/tags | jq -r '.[0].name' | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' + register: docker_latest_version_stable + ignore_errors: true + +- name: Compare versions + set_fact: + docker_update: true + when: docker_version.stdout is not defined or docker_version.stdout != docker_latest_version_stable.stdout diff --git a/roles/docker/tasks/cleanup.yml b/roles/docker/tasks/cleanup.yml new file mode 100644 index 0000000..498c0b5 --- /dev/null +++ b/roles/docker/tasks/cleanup.yml @@ -0,0 +1,14 @@ +# =================================================================================================== +# ? ABOUT +# @author : Noah Knegt +# @email : personal@noahknegt.com +# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations +# @createdOn : 31-03-2023 +# @description : This will check if docker is installed as the latest version. +# =================================================================================================== + +--- +- name: Cleanup docker script + file: + path: /tmp/get-docker.sh + state: absent diff --git a/roles/docker/tasks/download.yml b/roles/docker/tasks/download.yml new file mode 100644 index 0000000..fa619fc --- /dev/null +++ b/roles/docker/tasks/download.yml @@ -0,0 +1,15 @@ +# =================================================================================================== +# ? ABOUT +# @author : Noah Knegt +# @email : personal@noahknegt.com +# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations +# @createdOn : 31-03-2023 +# @description : This will download the docker install script. +# =================================================================================================== + +--- +- name: Download the docker install script + get_url: + url: https://get.docker.com + dest: /tmp/get-docker.sh + mode: 0755 diff --git a/roles/docker/tasks/install.yml b/roles/docker/tasks/install.yml new file mode 100644 index 0000000..bdf5066 --- /dev/null +++ b/roles/docker/tasks/install.yml @@ -0,0 +1,13 @@ +# =================================================================================================== +# ? ABOUT +# @author : Noah Knegt +# @email : personal@noahknegt.com +# @repo : https://git.noahknegt.com/noah.knegt/ansible-automations +# @createdOn : 31-03-2023 +# @description : This will download the docker install script. +# =================================================================================================== + +--- +- name: Run the docker install script + shell: /tmp/get-docker.sh + when: docker_update is defined diff --git a/roles/docker/tasks/main.yml b/roles/docker/tasks/main.yml index 3b58639..485f3bc 100644 --- a/roles/docker/tasks/main.yml +++ b/roles/docker/tasks/main.yml @@ -8,16 +8,13 @@ # =================================================================================================== --- -- name: Get docker script - get_url: - url: https://get.docker.com - dest: /tmp/get-docker.sh - mode: 0755 +- include_tasks: check_version.yml -- name: Run docker script - shell: /tmp/get-docker.sh +- include_tasks: download.yml + when: docker_update is defined -- name: Remove docker script - file: - path: /tmp/get-docker.sh - state: absent +- include_tasks: install.yml + when: docker_update is defined + +- include_tasks: cleanup.yml + when: docker_update is defined