From 969241843a2e2e21e6bcae486f5ed0529d2f26b9 Mon Sep 17 00:00:00 2001 From: khismatullinmax Date: Sun, 12 Mar 2023 21:03:10 +0100 Subject: [PATCH] Add possibility to install docker to Amazon Linux --- README.md | 3 ++ meta/main.yml | 3 ++ tasks/main.yml | 69 +++++++++++++++++++++++------------------- tasks/setup-Amazon.yml | 23 ++++++++++++++ vars/Amazon.yml | 2 ++ 5 files changed, 69 insertions(+), 31 deletions(-) create mode 100644 tasks/setup-Amazon.yml create mode 100644 vars/Amazon.yml diff --git a/README.md b/README.md index 953b7dd..1076c12 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,9 @@ Many users of this role wish to also use Ansible to then _build_ Docker images a - geerlingguy.pip - geerlingguy.docker ``` +## About Amazon Linux + +Installation of docker-ce comes from amazon-linux-extras packages ## Dependencies diff --git a/meta/main.yml b/meta/main.yml index edc5f8e..7ca1be9 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -31,6 +31,9 @@ galaxy_info: - name: ArchLinux versions: - all + - name: Amazon + versions: + - 2 galaxy_tags: - web - system diff --git a/tasks/main.yml b/tasks/main.yml index dcd47de..9a45d01 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -11,44 +11,51 @@ - 'vars' - include_tasks: setup-RedHat.yml - when: ansible_os_family == 'RedHat' + when: ansible_os_family == 'RedHat' and ansible_distribution != 'Amazon' + +- include_tasks: setup-Amazon.yml + when: ansible_distribution == 'Amazon' - include_tasks: setup-Debian.yml when: ansible_os_family == 'Debian' -- name: Install Docker packages. - package: - name: "{{ docker_packages }}" - state: "{{ docker_packages_state }}" - notify: restart docker - ignore_errors: "{{ ansible_check_mode }}" - when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']" +- block: -- name: Install Docker packages (with downgrade option). - package: - name: "{{ docker_packages }}" - state: "{{ docker_packages_state }}" - allow_downgrade: true - notify: restart docker - ignore_errors: "{{ ansible_check_mode }}" - when: "ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" + - name: Install Docker packages. + package: + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']" -- name: Install docker-compose plugin. - package: - name: "{{ docker_compose_package }}" - state: "{{ docker_compose_package_state }}" - notify: restart docker - ignore_errors: "{{ ansible_check_mode }}" - when: "docker_install_compose_plugin | bool == true and (ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian'])" + - name: Install Docker packages (with downgrade option). + package: + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" + allow_downgrade: true + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" -- name: Install docker-compose-plugin (with downgrade option). - package: - name: "{{ docker_compose_package }}" - state: "{{ docker_compose_package_state }}" - allow_downgrade: true - notify: restart docker - ignore_errors: "{{ ansible_check_mode }}" - when: "docker_install_compose_plugin | bool == true and ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" + - name: Install docker-compose plugin. + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "docker_install_compose_plugin | bool == true and (ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian'])" + + - name: Install docker-compose-plugin (with downgrade option). + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + allow_downgrade: true + notify: restart docker + ignore_errors: "{{ ansible_check_mode }}" + when: "docker_install_compose_plugin | bool == true and ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" + + when: ansible_distribution != 'Amazon' - name: Ensure /etc/docker/ directory exists. file: diff --git a/tasks/setup-Amazon.yml b/tasks/setup-Amazon.yml new file mode 100644 index 0000000..0819895 --- /dev/null +++ b/tasks/setup-Amazon.yml @@ -0,0 +1,23 @@ +--- +- name: Ensure a list of yum packages are installed on Amazon Linux + package: + name: "{{ packages }}" + state: present + vars: + packages: + - python-pip + - yum-utils + - device-mapper-persistent-data + - lvm2 + - amazon-linux-extras + +- name: Add extras repository + command: yum-config-manager --enable extras + register: yum_config_manager_output + changed_when: yum_config_manager_output.rc != 0 + +- name: Install docker-ce from amazon-linux-extras packages + package: + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" + notify: restart docker diff --git a/vars/Amazon.yml b/vars/Amazon.yml new file mode 100644 index 0000000..b81917a --- /dev/null +++ b/vars/Amazon.yml @@ -0,0 +1,2 @@ +--- +docker_packages: "docker"