From 5d458284f3bc9918d6ae1005118a0135e36d85c7 Mon Sep 17 00:00:00 2001 From: fejao <mail@fejao.de> Date: Sat, 25 Jan 2025 11:48:15 +0000 Subject: [PATCH] Adding role dependencies --- README.md | 18 +++ inventories/host_vars/example_server.yml | 6 + ...ple-01.yml => playbook_example_01_test.yml | 0 playbook_example_02_dependencies.yml | 7 ++ roles/dependencies/README.md | 111 ++++++++++++++++++ roles/dependencies/defaults/main.yml | 88 ++++++++++++++ roles/dependencies/handlers/main.yml | 14 +++ roles/dependencies/meta/main.yml | 10 ++ .../tasks/docker/install_compose.yml | 31 +++++ .../tasks/docker/install_docker_users.yml | 11 ++ .../tasks/docker/setup-Debian.yml | 69 +++++++++++ .../tasks/docker/setup-RedHat.yml | 61 ++++++++++ roles/dependencies/tasks/install_docker.yml | 103 ++++++++++++++++ roles/dependencies/tasks/install_packages.yml | 8 ++ roles/dependencies/tasks/main.yml | 5 + roles/dependencies/vars/Alpine.yml | 2 + roles/dependencies/vars/Archlinux.yml | 3 + roles/dependencies/vars/main.yml | 2 + 18 files changed, 549 insertions(+) rename playbook-example-01.yml => playbook_example_01_test.yml (100%) create mode 100644 playbook_example_02_dependencies.yml create mode 100644 roles/dependencies/README.md create mode 100644 roles/dependencies/defaults/main.yml create mode 100644 roles/dependencies/handlers/main.yml create mode 100644 roles/dependencies/meta/main.yml create mode 100644 roles/dependencies/tasks/docker/install_compose.yml create mode 100644 roles/dependencies/tasks/docker/install_docker_users.yml create mode 100644 roles/dependencies/tasks/docker/setup-Debian.yml create mode 100644 roles/dependencies/tasks/docker/setup-RedHat.yml create mode 100644 roles/dependencies/tasks/install_docker.yml create mode 100644 roles/dependencies/tasks/install_packages.yml create mode 100644 roles/dependencies/tasks/main.yml create mode 100755 roles/dependencies/vars/Alpine.yml create mode 100644 roles/dependencies/vars/Archlinux.yml create mode 100755 roles/dependencies/vars/main.yml diff --git a/README.md b/README.md index f8cc7ca..097bd1b 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@ ## WIP - [ ] finish the roles for deploying the **c3InfoDesk Printer** + - [x] dependencies + - [ ] clone_repositories + - [ ] docker_images + - [ ] docker_containers - [ ] set ansible-lint --- @@ -13,6 +17,20 @@ This is a repo for deploying the the printer system used at the c3infodesk for p --- +## Roles +Here are the used roles: + +- [dependencies](roles/dependencies/README.md) + + +## License + +MIT / BSD + +## Author Information + + [https://chaos.social/@fejao](https://chaos.social/@fejao) + diff --git a/inventories/host_vars/example_server.yml b/inventories/host_vars/example_server.yml index 394a989..8a601fb 100644 --- a/inventories/host_vars/example_server.yml +++ b/inventories/host_vars/example_server.yml @@ -1,6 +1,7 @@ --- # defaults file for test +### ---> PLEASE CHANGE THIS, yes, I setted at my home-lab a VM with a user with this passwd, please don't do that on the real world. ansible_become_pass: "1234" ### @@ -8,3 +9,8 @@ ansible_become_pass: "1234" ### var_setted_everywhere: "answer from inventory/host_vars/example_server.yml" var_setted_only_host_vars: "MESSAGE FROM HOST_VARS ONLY" + +### +### roles/dependencies -> !!! One of the users should be at least the one setted at ansible.cfg +### +docker_users: [test-user] diff --git a/playbook-example-01.yml b/playbook_example_01_test.yml similarity index 100% rename from playbook-example-01.yml rename to playbook_example_01_test.yml diff --git a/playbook_example_02_dependencies.yml b/playbook_example_02_dependencies.yml new file mode 100644 index 0000000..3e456c1 --- /dev/null +++ b/playbook_example_02_dependencies.yml @@ -0,0 +1,7 @@ +--- +# Runs example for + +- hosts: + - example_servers_group + roles: + - dependencies diff --git a/roles/dependencies/README.md b/roles/dependencies/README.md new file mode 100644 index 0000000..9c2ad0d --- /dev/null +++ b/roles/dependencies/README.md @@ -0,0 +1,111 @@ +# dependencies (role) + + +This ansible-role for dealing with installing the dependencies for deploying the system used from **c3infodesk**. + +## Mentions +This role uses great part of it from [geerlingguy](https://github.com/geerlingguy) for installing **docker** at the target host. + +The original code used can be found at: [https://github.com/geerlingguy/ansible-role-docker](https://github.com/geerlingguy/ansible-role-docker) + +## Requirements +To have [ansible](https://docs.ansible.com/ansible/latest/installation_guide/installation_distros.html) installed at your system. + +## Role Variables +Here are the variables setted: + +### From: inventories/host_vars/<TARGET_NAME> +Here are the variables that you should be changing for your own deployment +- **docker_users**: DEFAULT="test-user" + - The users to be added to the docker group. + - These users should should contain at least the same user setted on **ansible.cfg** at the **remote_user** +- **ansible_become_pass**: DEFAULT="Please change this" + - The password used from the user setted on **ansible.cfg** at the **remote_user** + + +### From: inventories/group_vars/<TARGET_GROUP> +This role needs no variable setted on **group_vars** + +### From: roles/clone-repositories/defaults/main.yml +Here are the variables used for this role. Please don't change then here but instead in **inventories/host_vars/<TARGET_NAME>** + +- **docker_users** +- **ansible_become_pass** +- **os_dependencies_packages** +- **docker_edition** +- **docker_packages** +- **docker_packages_state** +- **docker_obsolete_packages** +- **docker_obsolete_packages** +- **docker_service_manage** +- **docker_service_state** +- **docker_service_enabled** +- **docker_restart_handler_state** +- **docker_install_compose_plugin** +- **docker_compose_package** +- **docker_compose_package_state** +- **docker_install_compose** +- **docker_compose_version** +- **docker_compose_arch** +- **docker_compose_url** +- **docker_compose_path** +- **docker_add_repo** +- **docker_apt_release_channel** +- **docker_apt_ansible_distribution** +- **docker_apt_arch** +- **docker_apt_repository** +- **docker_apt_ignore_key_error** +- **docker_apt_gpg_key** +- **docker_apt_gpg_key_checksum** +- **docker_apt_filename** +- **docker_yum_repo_url** +- **docker_yum_repo_enable_nightly** +- **docker_yum_repo_enable_test** +- **docker_yum_gpg_key** +- **docker_daemon_options** + +### From: roles/dependencies/vars/main.yml +- **docker_packages** +- **docker_compose_package** + +## Dependencies +This role have no dependency from any another role. + +# Example Playbook + +### Using the provided example +For using the playbook **playbook_example_02_dependencies.yml** file you only nned to: +- Change the user at the **ansible.cfg** file at the field **remote_user** for acessing your target. +- Update the file **inventories/host_vars/example_server.yml** and change the value for **ansible_become_pass** from the **remote_user** +- Update the **inventories/hosts** file and change the **example_server** with the IP address from your target. + +And run the command: +```bash +ansible-playbook -i inventories/hosts playbook_example_02_dependencies.yml +``` + +### Setting your own example +After setting your variables at **inventories/host_vars/<HOST_NAME>**, you can add this role to your playbook as a regular role. + +Here is an example using the **<HOST_NAME>** as **test_servers** + +```yaml +- hosts: + - test_servers + roles: + - dependencies +``` + +And call the playbook as: + +```bash +ansible-playbook -i <INVENTORY> <PLAYBOOK_NAME>.yml +``` + +## License + +MIT / BSD + +## Author Information + + [https://chaos.social/@fejao](https://chaos.social/@fejao) diff --git a/roles/dependencies/defaults/main.yml b/roles/dependencies/defaults/main.yml new file mode 100644 index 0000000..5616e16 --- /dev/null +++ b/roles/dependencies/defaults/main.yml @@ -0,0 +1,88 @@ +--- +# defaults file for dependencies + + +### +### DEPLOYMENT USER +### +# This should be the password from the deployment user setted on ansible.cfg +ansible_become_pass: "UPDATE THIS FOR THE HOSTS" + +### +### install_packages.yml +### +os_dependencies_packages: + - bash-completion + - git + - htop + - vim + - tree + +### +### install_docker.yml +### +# Edition can be one of: 'ce' (Community Edition) or 'ee' (Enterprise Edition). +docker_edition: 'ce' +docker_packages: + - "docker-{{ docker_edition }}" + - "docker-{{ docker_edition }}-cli" + - "docker-{{ docker_edition }}-rootless-extras" + - "containerd.io" + - docker-buildx-plugin +docker_packages_state: present +docker_obsolete_packages: + - docker + - docker.io + - docker-engine + - docker-doc + - podman-docker + - containerd + - runc + +# Service options. +docker_service_manage: true +docker_service_state: started +docker_service_enabled: true +docker_restart_handler_state: restarted + +# Docker Compose Plugin options. +docker_install_compose_plugin: true +docker_compose_package: docker-compose-plugin +docker_compose_package_state: present + +# Docker Compose options. +docker_install_compose: false +docker_compose_version: "v2.32.1" +docker_compose_arch: "{{ ansible_architecture }}" +docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-linux-{{ docker_compose_arch }}" +docker_compose_path: /usr/local/bin/docker-compose + +# Enable repo setup +docker_add_repo: true + +# Docker repo URL. +docker_repo_url: https://download.docker.com/linux + +# Used only for Debian/Ubuntu/Pop!_OS/Linux Mint. Switch 'stable' to 'nightly' if needed. +docker_apt_release_channel: stable +# docker_apt_ansible_distribution is a workaround for Ubuntu variants which can't be identified as such by Ansible, +# and is only necessary until Docker officially supports them. +docker_apt_ansible_distribution: "{{ 'ubuntu' if ansible_distribution in ['Pop!_OS', 'Linux Mint'] else ansible_distribution }}" +docker_apt_arch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'armhf' if ansible_architecture == 'armv7l' else 'amd64' }}" +docker_apt_repository: "deb [arch={{ docker_apt_arch }} signed-by=/etc/apt/keyrings/docker.asc] {{ docker_repo_url }}/{{ docker_apt_ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}" +docker_apt_ignore_key_error: true +docker_apt_gpg_key: "{{ docker_repo_url }}/{{ docker_apt_ansible_distribution | lower }}/gpg" +docker_apt_gpg_key_checksum: "sha256:1500c1f56fa9e26b9b8f42452a553675796ade0807cdce11975eb98170b3a570" +docker_apt_filename: "docker" + +# Used only for RedHat/CentOS/Fedora. +docker_yum_repo_url: "{{ docker_repo_url }}/{{ (ansible_distribution == 'Fedora') | ternary('fedora','centos') }}/docker-{{ docker_edition }}.repo" +docker_yum_repo_enable_nightly: '0' +docker_yum_repo_enable_test: '0' +docker_yum_gpg_key: "{{ docker_repo_url }}/centos/gpg" + +# A list of users who will be added to the docker group. +docker_users: [] + +# Docker daemon options as a dict +docker_daemon_options: {} diff --git a/roles/dependencies/handlers/main.yml b/roles/dependencies/handlers/main.yml new file mode 100644 index 0000000..7eee98a --- /dev/null +++ b/roles/dependencies/handlers/main.yml @@ -0,0 +1,14 @@ +--- +# handlers file for dependencies + +- name: handler_restart_docker + ansible.builtin.systemd_service: + name: docker + state: restarted + # daemon_reload: true + ### + ### THIS IS GETTING TIMEOUT + ### + # ignore_errors: "{{ ansible_check_mode }}" + ignore_errors: true + when: docker_service_manage | bool diff --git a/roles/dependencies/meta/main.yml b/roles/dependencies/meta/main.yml new file mode 100644 index 0000000..1860186 --- /dev/null +++ b/roles/dependencies/meta/main.yml @@ -0,0 +1,10 @@ +galaxy_info: + role_name: dependencies + description: Role to install the dependencies from the c3InfoDesk sytems + author: fejao + company: cccv.de + license: license (GPL-2.0-or-later, MIT, etc) + min_ansible_version: 2.1 + galaxy_tags: [] + +dependencies: [] diff --git a/roles/dependencies/tasks/docker/install_compose.yml b/roles/dependencies/tasks/docker/install_compose.yml new file mode 100644 index 0000000..38705d0 --- /dev/null +++ b/roles/dependencies/tasks/docker/install_compose.yml @@ -0,0 +1,31 @@ +--- +- name: DOCKER | COMPOSE | Check current docker-compose version. + command: "{{ docker_compose_path }} --version" + register: docker_compose_vsn + check_mode: false + changed_when: false + failed_when: false + +- set_fact: + docker_compose_current_version: "{{ docker_compose_vsn.stdout | regex_search('(\\d+(\\.\\d+)+)') }}" + when: > + docker_compose_vsn.stdout is defined + and (docker_compose_vsn.stdout | length > 0) + +- name: DOCKER | COMPOSE | Delete existing docker-compose version if it's different. + file: + path: "{{ docker_compose_path }}" + state: absent + when: > + docker_compose_current_version is defined + and (docker_compose_version | regex_replace('v', '')) not in docker_compose_current_version + +- name: DOCKER | COMPOSE | Install Docker Compose (if configured). + get_url: + url: "{{ docker_compose_url }}" + dest: "{{ docker_compose_path }}" + mode: 0755 + when: > + (docker_compose_current_version is not defined) + or (docker_compose_current_version | length == 0) + or (docker_compose_current_version is version((docker_compose_version | regex_replace('v', '')), '<')) diff --git a/roles/dependencies/tasks/docker/install_docker_users.yml b/roles/dependencies/tasks/docker/install_docker_users.yml new file mode 100644 index 0000000..6304a0a --- /dev/null +++ b/roles/dependencies/tasks/docker/install_docker_users.yml @@ -0,0 +1,11 @@ +--- +- name: DOCKER | USERS | Ensure docker users are added to the docker group. + user: + name: "{{ item }}" + groups: docker + append: true + with_items: "{{ docker_users }}" + become: true + +- name: DOCKER | USERS | Reset ssh connection to apply user changes. + meta: reset_connection diff --git a/roles/dependencies/tasks/docker/setup-Debian.yml b/roles/dependencies/tasks/docker/setup-Debian.yml new file mode 100644 index 0000000..afdc406 --- /dev/null +++ b/roles/dependencies/tasks/docker/setup-Debian.yml @@ -0,0 +1,69 @@ +--- +- name: DOCKER | DEBIAN | Ensure apt key is not present in trusted.gpg.d + ansible.builtin.file: + path: /etc/apt/trusted.gpg.d/docker.asc + state: absent + +- name: DOCKER | DEBIAN | Ensure old apt source list is not present in /etc/apt/sources.list.d + ansible.builtin.file: + path: /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list + state: absent + +- name: DOCKER | DEBIAN | Ensure the repo referencing the previous trusted.gpg.d key is not present + apt_repository: + repo: "deb [arch={{ docker_apt_arch }} signed-by=/etc/apt/trusted.gpg.d/docker.asc] {{ docker_repo_url }}/{{ docker_apt_ansible_distribution | lower }} {{ ansible_distribution_release }} {{ docker_apt_release_channel }}" + state: absent + filename: "{{ docker_apt_filename }}" + update_cache: true + when: docker_add_repo | bool + +# See https://docs.docker.com/engine/install/debian/#uninstall-old-versions +- name: DOCKER | DEBIAN | Ensure old versions of Docker are not installed. + package: + name: "{{ docker_obsolete_packages }}" + state: absent + +- name: DOCKER | DEBIAN | Ensure dependencies are installed. + become: true + apt: + name: + - apt-transport-https + - ca-certificates + state: present + when: docker_add_repo | bool + +- name: DOCKER | DEBIAN | Ensure directory exists for /etc/apt/keyrings + file: + path: /etc/apt/keyrings + state: directory + mode: "0755" + +- name: DOCKER | DEBIAN | Add Docker apt key. + ansible.builtin.get_url: + url: "{{ docker_apt_gpg_key }}" + dest: /etc/apt/keyrings/docker.asc + mode: "0644" + force: false + checksum: "{{ docker_apt_gpg_key_checksum | default(omit) }}" + register: add_repository_key + ignore_errors: "{{ docker_apt_ignore_key_error }}" + when: docker_add_repo | bool + become: true + +- name: DOCKER | DEBIAN | Ensure curl is present (on older systems without SNI). + package: name=curl state=present + when: add_repository_key is failed and docker_add_repo | bool + +- name: DOCKER | DEBIAN | Add Docker apt key (alternative for older systems without SNI). + shell: > + curl -sSL {{ docker_apt_gpg_key }} | apt-key add - + when: add_repository_key is failed and docker_add_repo | bool + +- name: DOCKER | DEBIAN | Add Docker repository. + apt_repository: + repo: "{{ docker_apt_repository }}" + state: present + filename: "{{ docker_apt_filename }}" + update_cache: true + when: docker_add_repo | bool + become: true diff --git a/roles/dependencies/tasks/docker/setup-RedHat.yml b/roles/dependencies/tasks/docker/setup-RedHat.yml new file mode 100644 index 0000000..6a74fed --- /dev/null +++ b/roles/dependencies/tasks/docker/setup-RedHat.yml @@ -0,0 +1,61 @@ +--- +- name: DOCKER | RED-HAT | Ensure old versions of Docker are not installed. + package: + name: + - docker + - docker-common + - docker-engine + state: absent + +# - name: DOCKER | RED-HAT | Add Docker GPG key. +# rpm_key: +# key: "{{ docker_yum_gpg_key }}" +# state: present +# when: docker_add_repo | bool + +# - name: DOCKER | RED-HAT | Add Docker repository. +# get_url: +# url: "{{ docker_yum_repo_url }}" +# dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo' +# owner: root +# group: root +# mode: 0644 +# when: docker_add_repo | bool + +# - name: DOCKER | RED-HAT | Configure Docker Nightly repo. +# ini_file: +# dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo' +# section: 'docker-{{ docker_edition }}-nightly' +# option: enabled +# value: '{{ docker_yum_repo_enable_nightly }}' +# mode: 0644 +# no_extra_spaces: true +# when: docker_add_repo | bool + +# - name: DOCKER | RED-HAT | Configure Docker Test repo. +# ini_file: +# dest: '/etc/yum.repos.d/docker-{{ docker_edition }}.repo' +# section: 'docker-{{ docker_edition }}-test' +# option: enabled +# value: '{{ docker_yum_repo_enable_test }}' +# mode: 0644 +# no_extra_spaces: true +# when: docker_add_repo | bool + +# - name: DOCKER | RED-HAT | Configure containerd on RHEL 8. +# block: +# - name: Ensure runc is not installed. +# package: +# name: runc +# state: absent + +# - name: Ensure container-selinux is installed. +# package: +# name: container-selinux +# state: present + +# - name: Ensure containerd.io is installed. +# package: +# name: containerd.io +# state: present +# when: ansible_distribution_major_version | int == 8 diff --git a/roles/dependencies/tasks/install_docker.yml b/roles/dependencies/tasks/install_docker.yml new file mode 100644 index 0000000..12526a5 --- /dev/null +++ b/roles/dependencies/tasks/install_docker.yml @@ -0,0 +1,103 @@ +--- +- name: DOCKER | Load OS-specific vars. + include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - '{{ansible_distribution}}.yml' + - '{{ansible_os_family}}.yml' + - main.yml + paths: + - 'vars' + +- include_tasks: docker/setup-RedHat.yml + when: ansible_os_family == 'RedHat' + +- include_tasks: docker/setup-Debian.yml + when: ansible_os_family == 'Debian' + +- name: DOCKER | Install Docker packages. + package: + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" + notify: handler_restart_docker + ignore_errors: "{{ ansible_check_mode }}" + when: "ansible_version.full is version_compare('2.12', '<') or ansible_os_family not in ['RedHat', 'Debian']" + become: true + +- name: DOCKER | Install Docker packages (with downgrade option). + package: + name: "{{ docker_packages }}" + state: "{{ docker_packages_state }}" + allow_downgrade: true + notify: handler_restart_docker + ignore_errors: "{{ ansible_check_mode }}" + when: "ansible_version.full is version_compare('2.12', '>=') and ansible_os_family in ['RedHat', 'Debian']" + become: true + +- name: DOCKER | Install docker-compose plugin. + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + notify: handler_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'])" + become: true + +- name: DOCKER | Install docker-compose-plugin (with downgrade option). + package: + name: "{{ docker_compose_package }}" + state: "{{ docker_compose_package_state }}" + allow_downgrade: true + notify: handler_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']" + become: true + +- name: DOCKER | Ensure /etc/docker/ directory exists. + file: + path: /etc/docker + state: directory + mode: 0755 + when: docker_daemon_options.keys() | length > 0 + +- name: DOCKER | Configure Docker daemon options. + copy: + content: "{{ docker_daemon_options | to_nice_json }}" + dest: /etc/docker/daemon.json + mode: 0644 + when: docker_daemon_options.keys() | length > 0 + notify: handler_restart_docker + +- name: DOCKER | Ensure Docker is started and enabled at boot. + service: + name: docker + state: "{{ docker_service_state }}" + enabled: "{{ docker_service_enabled }}" + ignore_errors: "{{ ansible_check_mode }}" + when: docker_service_manage | bool + +- name: DOCKER | Ensure handlers are notified now to avoid firewall conflicts. + meta: flush_handlers + +- include_tasks: docker/install_compose.yml + when: docker_install_compose | bool + +- name: DOCKER | Get docker group info using getent. + getent: + database: group + key: docker + split: ':' + when: docker_users | length > 0 + +- name: DOCKER | Check if there are any users to add to the docker group. + set_fact: + at_least_one_user_to_modify: true + when: + - docker_users | length > 0 + - item not in ansible_facts.getent_group["docker"][2] + with_items: "{{ docker_users }}" + +# - include_tasks: docker-users.yml +- include_tasks: docker/install_docker_users.yml + when: at_least_one_user_to_modify is defined diff --git a/roles/dependencies/tasks/install_packages.yml b/roles/dependencies/tasks/install_packages.yml new file mode 100644 index 0000000..edb782f --- /dev/null +++ b/roles/dependencies/tasks/install_packages.yml @@ -0,0 +1,8 @@ +--- + +- name: INSTALL_PACAKAGES | Installing the packages from list + ansible.builtin.package: + name: "{{item}}" + state: present + with_items: "{{os_dependencies_packages}}" + become: true \ No newline at end of file diff --git a/roles/dependencies/tasks/main.yml b/roles/dependencies/tasks/main.yml new file mode 100644 index 0000000..2bf1447 --- /dev/null +++ b/roles/dependencies/tasks/main.yml @@ -0,0 +1,5 @@ +--- +# tasks file for dependencies + +- import_tasks: install_packages.yml +- import_tasks: install_docker.yml diff --git a/roles/dependencies/vars/Alpine.yml b/roles/dependencies/vars/Alpine.yml new file mode 100755 index 0000000..b81917a --- /dev/null +++ b/roles/dependencies/vars/Alpine.yml @@ -0,0 +1,2 @@ +--- +docker_packages: "docker" diff --git a/roles/dependencies/vars/Archlinux.yml b/roles/dependencies/vars/Archlinux.yml new file mode 100644 index 0000000..f68d962 --- /dev/null +++ b/roles/dependencies/vars/Archlinux.yml @@ -0,0 +1,3 @@ +--- +docker_packages: "docker" +docker_compose_package: docker-compose diff --git a/roles/dependencies/vars/main.yml b/roles/dependencies/vars/main.yml new file mode 100755 index 0000000..805232b --- /dev/null +++ b/roles/dependencies/vars/main.yml @@ -0,0 +1,2 @@ +--- +# Empty file -- GitLab