From 17a02752b99b00c5e13f7c48a05c9e996c25c047 Mon Sep 17 00:00:00 2001 From: fejao <mail@fejao.de> Date: Mon, 27 Jan 2025 19:39:11 +0000 Subject: [PATCH] Setting ansible lint 01 --- .ansible-lint | 134 ++++++++++++++++++ .gitlab-ci.yml | 77 ++++++++++ .yamllint | 50 +++++++ playbook_example_01_test.yml | 7 +- playbook_example_02_dependencies.yml | 5 +- requirements.txt | 1 + roles/clone_repositories/meta/main.yml | 2 +- roles/dependencies/defaults/main.yml | 2 +- roles/dependencies/handlers/main.yml | 10 +- roles/dependencies/meta/main.yml | 6 +- .../tasks/docker/install_compose.yml | 11 +- .../tasks/docker/install_docker_users.yml | 5 +- .../tasks/docker/setup-Debian.yml | 19 ++- .../tasks/docker/setup-RedHat.yml | 94 ++++++------ roles/dependencies/tasks/install_docker.yml | 63 ++++---- roles/dependencies/tasks/install_packages.yml | 10 +- roles/dependencies/tasks/main.yml | 7 +- roles/docker_containers/meta/main.yml | 2 +- roles/docker_images/meta/main.yml | 2 +- roles/test/tasks/main.yml | 1 + 20 files changed, 396 insertions(+), 112 deletions(-) create mode 100644 .ansible-lint create mode 100644 .gitlab-ci.yml create mode 100644 .yamllint diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..c381cc1 --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,134 @@ +--- +# .ansible-lint + +profile: null # min, basic, moderate,safety, shared, production + +# Allows dumping of results in SARIF format +# sarif_file: result.sarif + +# exclude_paths included in this file are parsed relative to this file's location +# and not relative to the CWD of execution. CLI arguments passed to the --exclude +# option are parsed relative to the CWD of execution. +exclude_paths: + - .cache/ # implicit unless exclude_paths is defined in config + - test/fixtures/formatting-before/ + - test/fixtures/formatting-prettier/ +# parseable: true +# quiet: true +# strict: true +# verbosity: 1 + +# Mock modules or roles in order to pass ansible-playbook --syntax-check +mock_modules: + - zuul_return + # note the foo.bar is invalid as being neither a module or a collection + - fake_namespace.fake_collection.fake_module + - fake_namespace.fake_collection.fake_module.fake_submodule +mock_roles: + - mocked_role + - author.role_name # old standalone galaxy role + - fake_namespace.fake_collection.fake_role # role within a collection + +# Enable checking of loop variable prefixes in roles +# loop_var_prefix: "^(__|{role}_)" +loop_var_prefix: "^[a-z_][a-z0-9_]*$" + +# Enforce variable names to follow pattern below, in addition to Ansible own +# requirements, like avoiding python identifiers. To disable add `var-naming` +# to skip_list. +var_naming_pattern: "^[a-z_][a-z0-9_]*$" + +use_default_rules: true +# Load custom rules from this specific folder +# rulesdir: +# - ./rule/directory/ + +# Ansible-lint is able to recognize and load skip rules stored inside +# `.ansible-lint-ignore` (or `.config/ansible-lint-ignore.txt`) files. +# To skip a rule just enter filename and tag, like "playbook.yml package-latest" +# on a new line. +# Optionally you can add comments after the tag, prefixed by "#". We discourage +# the use of skip_list below because that will hide violations from the output. +# When putting ignores inside the ignore file, they are marked as ignored, but +# still visible, making it easier to address later. +skip_list: + - skip_this_tag + - var-naming[no-role-prefix] + - loop-var-prefix[missing] + ### Sometimes, it is need to run as command... + - command-instead-of-module + +# Ansible-lint does not automatically load rules that have the 'opt-in' tag. +# You must enable opt-in rules by listing each rule 'id' below. +enable_list: + - args + - empty-string-compare # opt-in + - no-log-password # opt-in + - no-same-owner # opt-in + # - name[prefix] # opt-in + - galaxy-version-incorrect # opt-in + # add yaml here if you want to avoid ignoring yaml checks when yamllint + # library is missing. Normally its absence just skips using that rule. + - yaml +# Report only a subset of tags and fully ignore any others +# tags: +# - jinja[spacing] + +# Ansible-lint does not fail on warnings from the rules or tags listed below +warn_list: + - skip_this_tag + # - experimental # experimental is included in the implicit list + # - role-name + # - yaml[document-start] # you can also use sub-rule matches + +# Some rules can transform files to fix (or make it easier to fix) identified +# errors. `ansible-lint --fix` will reformat YAML files and run these transforms. +# By default it will run all transforms (effectively `write_list: ["all"]`). +# You can disable running transforms by setting `write_list: ["none"]`. +# Or only enable a subset of rule transforms by listing rules/tags here. +# write_list: +# - all + +# Offline mode disables installation of requirements.yml and schema refreshing +offline: true + +# Define required Ansible's variables to satisfy syntax check +extra_vars: + foo: bar + multiline_string_variable: | + line1 + line2 + complex_variable: ":{;\t$()" + +# Uncomment to enforce action validation with tasks, usually is not +# needed as Ansible syntax check also covers it. +# skip_action_validation: false + +# List of additional kind:pattern to be added at the top of the default +# match list, first match determines the file kind. +kinds: + # - playbook: "**/examples/*.{yml,yaml}" + # - galaxy: "**/folder/galaxy.yml" + # - tasks: "**/tasks/*.yml" + # - vars: "**/vars/*.yml" + # - meta: "**/meta/main.yml" + - yaml: "**/*.yaml-too" + +# List of additional collections to allow in only-builtins rule. +# only_builtins_allow_collections: +# - example_ns.example_collection + +# List of additions modules to allow in only-builtins rule. +# only_builtins_allow_modules: +# - example_module + +# Allow setting custom prefix for name[prefix] rule +# task_name_prefix: "{stem} | " +# Complexity related settings + +# Limit the depth of the nested blocks: +# max_block_depth: 20 + +# Also recognize these versions of Ansible as supported: +# supported_ansible_also: +# - "2.18" \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..cddcc6a --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,77 @@ +image: python:3.10.15-bullseye +# image: ansible:latest + +variables: + TEST_VAR_BUILD: "Building the application..." + DOC_PATH_TMP: tmp_docs + DOC_NAME: c3InfoDesk Printing + DOC_AUTHOR: fejao + DOC_VERSION: 1.0.0 + DOC_LANGUAGE: english + # DOC_RETENTION: 1 day # <--- DON'T WORK :( + ##### + ##### + ##### + PLAYBOOK_NAME_FOR_ROLE_TEST: "playbook_example_01_test.yml" + PLAYBOOK_NAME_FOR_ROLE_DEPENDENCIES: "playbook_example_02_dependencies.yml" + # PLAYBOOK_NAME_FOR_ROLE_CLONE_REPOSITORIES: "playbook_example_03_clone_repositories.yml" + +stages: + - debug + - build + - test + - lint-tests + - docs + - deploy + +### +### DEBUG +### +runner-debug: + stage: debug + script: + - echo "Testing local gitlab-runner config..." + - echo $PWD + - echo "list local folder..." + - ls -hal + +### +### BUILD +### +build: + stage: build + script: + - echo "Here should be the images build and pushed" + +### +### TESTS +### +role-test: + stage: lint-tests + before_script: + - apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/* + - pip3 install -r requirements.txt + script: + - echo "Running ansible-lint tests at the role-> 'test'" + - ansible-lint $PLAYBOOK_NAME_FOR_ROLE_TEST + allow_failure: false + +role-dependencies: + stage: lint-tests + before_script: + - apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/* + - pip3 install -r requirements.txt + script: + - echo "Running ansible-lint tests at the role-> 'dependencies'" + - ansible-lint $PLAYBOOK_NAME_FOR_ROLE_DEPENDENCIES + allow_failure: false + +# role-clone-repositories: +# stage: lint-tests +# before_script: +# - apt-get update && apt-get install -y python3-pip && apt-get clean && rm -rf /var/lib/apt/lists/* +# - pip3 install -r requirements.txt +# script: +# - echo "Running ansible-lint tests at the role-> 'clone_repositories'" +# - ansible-lint $PLAYBOOK_NAME_FOR_ROLE_CLONE_REPOSITORIES +# allow_failure: false diff --git a/.yamllint b/.yamllint new file mode 100644 index 0000000..2382bed --- /dev/null +++ b/.yamllint @@ -0,0 +1,50 @@ +--- + +# https://ansible.readthedocs.io/projects/lint/rules/yaml/ + +yaml-files: + - '*.yaml' + - '*.yml' + - '.yamllint' + +rules: + anchors: enable + # braces: enable + # braces: disable + braces: + max-spaces-inside: 1 + brackets: enable + colons: enable + commas: enable + comments: + level: warning + min-spaces-from-content: 1 + comments-indentation: false + document-end: disable + document-start: + level: warning + empty-lines: enable + empty-values: disable + float-values: disable + hyphens: enable + # indentation: enable + indentation: disable + key-duplicates: enable + key-ordering: disable + # line-length: enable + line-length: + # max: 160 + ### roles/dependencies/defaults/main.yml:72 --> 232 characters + max: 240 + new-line-at-end-of-file: enable + new-lines: enable + # octal-values: disable + quoted-strings: disable + trailing-spaces: enable + truthy: + level: warning + #### + # var_naming_pattern: "^[a-z_][a-z0-9_]*$" + # var-naming: disable + # var-naming: + # no-role-prefix: disable diff --git a/playbook_example_01_test.yml b/playbook_example_01_test.yml index be558c9..da345d6 100644 --- a/playbook_example_01_test.yml +++ b/playbook_example_01_test.yml @@ -1,7 +1,8 @@ --- -# Runs example for +# Runs the role test -- hosts: - - example_servers_group +- name: Playbook for running the role 'test' + hosts: + - example_servers_group roles: - test diff --git a/playbook_example_02_dependencies.yml b/playbook_example_02_dependencies.yml index 3e456c1..d9c9808 100644 --- a/playbook_example_02_dependencies.yml +++ b/playbook_example_02_dependencies.yml @@ -1,7 +1,8 @@ --- # Runs example for -- hosts: - - example_servers_group +- name: Playbook for running the role 'dependencies' + hosts: + - example_servers_group roles: - dependencies diff --git a/requirements.txt b/requirements.txt index 7dca993..a42d9c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ +ansible ansible-dev-tools ansible-lint diff --git a/roles/clone_repositories/meta/main.yml b/roles/clone_repositories/meta/main.yml index 6de0edd..a566122 100644 --- a/roles/clone_repositories/meta/main.yml +++ b/roles/clone_repositories/meta/main.yml @@ -3,7 +3,7 @@ galaxy_info: description: Role to clone the repositories used from c3InfoDesk sytems author: fejao company: cccv.de - license: license (GPL-2.0-or-later, MIT, etc) + license: MIT min_ansible_version: 2.10 galaxy_tags: [] diff --git a/roles/dependencies/defaults/main.yml b/roles/dependencies/defaults/main.yml index 5616e16..8513b66 100644 --- a/roles/dependencies/defaults/main.yml +++ b/roles/dependencies/defaults/main.yml @@ -76,7 +76,7 @@ docker_apt_gpg_key_checksum: "sha256:1500c1f56fa9e26b9b8f42452a553675796ade0807c 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_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" diff --git a/roles/dependencies/handlers/main.yml b/roles/dependencies/handlers/main.yml index 7eee98a..d8fd57c 100644 --- a/roles/dependencies/handlers/main.yml +++ b/roles/dependencies/handlers/main.yml @@ -1,14 +1,10 @@ --- # handlers file for dependencies -- name: handler_restart_docker +- 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 + daemon_reload: true when: docker_service_manage | bool + become: true diff --git a/roles/dependencies/meta/main.yml b/roles/dependencies/meta/main.yml index 1fbb987..69e69d0 100644 --- a/roles/dependencies/meta/main.yml +++ b/roles/dependencies/meta/main.yml @@ -1,10 +1,12 @@ +--- + 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.10 + license: MIT + min_ansible_version: '2.10' galaxy_tags: [] dependencies: [] diff --git a/roles/dependencies/tasks/docker/install_compose.yml b/roles/dependencies/tasks/docker/install_compose.yml index 38705d0..8c353a4 100644 --- a/roles/dependencies/tasks/docker/install_compose.yml +++ b/roles/dependencies/tasks/docker/install_compose.yml @@ -1,19 +1,20 @@ --- - name: DOCKER | COMPOSE | Check current docker-compose version. - command: "{{ docker_compose_path }} --version" + ansible.builtin.command: "{{ docker_compose_path }} --version" register: docker_compose_vsn check_mode: false changed_when: false failed_when: false -- set_fact: +- name: Setting the docker compose version + ansible.builtin.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: + ansible.builtin.file: path: "{{ docker_compose_path }}" state: absent when: > @@ -21,10 +22,10 @@ and (docker_compose_version | regex_replace('v', '')) not in docker_compose_current_version - name: DOCKER | COMPOSE | Install Docker Compose (if configured). - get_url: + ansible.builtin.get_url: url: "{{ docker_compose_url }}" dest: "{{ docker_compose_path }}" - mode: 0755 + mode: "0755" when: > (docker_compose_current_version is not defined) or (docker_compose_current_version | length == 0) diff --git a/roles/dependencies/tasks/docker/install_docker_users.yml b/roles/dependencies/tasks/docker/install_docker_users.yml index 6304a0a..2f78a65 100644 --- a/roles/dependencies/tasks/docker/install_docker_users.yml +++ b/roles/dependencies/tasks/docker/install_docker_users.yml @@ -1,6 +1,7 @@ --- + - name: DOCKER | USERS | Ensure docker users are added to the docker group. - user: + ansible.builtin.user: name: "{{ item }}" groups: docker append: true @@ -8,4 +9,4 @@ become: true - name: DOCKER | USERS | Reset ssh connection to apply user changes. - meta: reset_connection + ansible.builtin.meta: reset_connection diff --git a/roles/dependencies/tasks/docker/setup-Debian.yml b/roles/dependencies/tasks/docker/setup-Debian.yml index afdc406..8835450 100644 --- a/roles/dependencies/tasks/docker/setup-Debian.yml +++ b/roles/dependencies/tasks/docker/setup-Debian.yml @@ -10,7 +10,7 @@ state: absent - name: DOCKER | DEBIAN | Ensure the repo referencing the previous trusted.gpg.d key is not present - apt_repository: + ansible.builtin.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 }}" @@ -19,13 +19,13 @@ # See https://docs.docker.com/engine/install/debian/#uninstall-old-versions - name: DOCKER | DEBIAN | Ensure old versions of Docker are not installed. - package: + ansible.builtin.package: name: "{{ docker_obsolete_packages }}" state: absent - name: DOCKER | DEBIAN | Ensure dependencies are installed. become: true - apt: + ansible.builtin.apt: name: - apt-transport-https - ca-certificates @@ -33,7 +33,7 @@ when: docker_add_repo | bool - name: DOCKER | DEBIAN | Ensure directory exists for /etc/apt/keyrings - file: + ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: "0755" @@ -51,16 +51,21 @@ become: true - name: DOCKER | DEBIAN | Ensure curl is present (on older systems without SNI). - package: name=curl state=present + ansible.builtin.apt: + 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: > + ansible.builtin.shell: > + set -o pipefail && curl -sSL {{ docker_apt_gpg_key }} | apt-key add - when: add_repository_key is failed and docker_add_repo | bool + register: ret_add_docker_key + changed_when: ret_add_docker_key.rc != 0 - name: DOCKER | DEBIAN | Add Docker repository. - apt_repository: + ansible.builtin.apt_repository: repo: "{{ docker_apt_repository }}" state: present filename: "{{ docker_apt_filename }}" diff --git a/roles/dependencies/tasks/docker/setup-RedHat.yml b/roles/dependencies/tasks/docker/setup-RedHat.yml index 6a74fed..228585f 100644 --- a/roles/dependencies/tasks/docker/setup-RedHat.yml +++ b/roles/dependencies/tasks/docker/setup-RedHat.yml @@ -1,61 +1,61 @@ --- - name: DOCKER | RED-HAT | Ensure old versions of Docker are not installed. - package: + ansible.builtin.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 GPG key. + ansible.builtin.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 | Add Docker repository. + ansible.builtin.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 Nightly repo. + community.general.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 Docker Test repo. + community.general.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: DOCKER | RED-HAT | Configure containerd on RHEL 8. + when: ansible_distribution_major_version | int == 8 + block: + - name: Ensure runc is not installed. + ansible.builtin.package: + name: runc + state: absent -# - name: Ensure container-selinux is installed. -# package: -# name: container-selinux -# state: present + - name: Ensure container-selinux is installed. + ansible.builtin.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 + - name: Ensure containerd.io is installed. + ansible.builtin.package: + name: containerd.io + state: present diff --git a/roles/dependencies/tasks/install_docker.yml b/roles/dependencies/tasks/install_docker.yml index 12526a5..b6403b0 100644 --- a/roles/dependencies/tasks/install_docker.yml +++ b/roles/dependencies/tasks/install_docker.yml @@ -1,76 +1,84 @@ --- + - name: DOCKER | Load OS-specific vars. - include_vars: "{{ lookup('first_found', params) }}" + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" vars: params: files: - - '{{ansible_distribution}}.yml' - - '{{ansible_os_family}}.yml' + - '{{ ansible_distribution }}.yml' + - '{{ ansible_os_family }}.yml' - main.yml paths: - 'vars' -- include_tasks: docker/setup-RedHat.yml +- name: Installing for RedHat OS family + ansible.builtin.include_tasks: docker/setup-RedHat.yml when: ansible_os_family == 'RedHat' -- include_tasks: docker/setup-Debian.yml +- name: Installing for Debian OS family + ansible.builtin.include_tasks: docker/setup-Debian.yml when: ansible_os_family == 'Debian' - name: DOCKER | Install Docker packages. - package: + ansible.builtin.package: name: "{{ docker_packages }}" state: "{{ docker_packages_state }}" - notify: handler_restart_docker + 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: + ansible.builtin.package: name: "{{ docker_packages }}" state: "{{ docker_packages_state }}" allow_downgrade: true - notify: handler_restart_docker + 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: + ansible.builtin.package: name: "{{ docker_compose_package }}" state: "{{ docker_compose_package_state }}" - notify: handler_restart_docker + 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'])" + when: + - docker_install_compose_plugin | bool + - 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: + ansible.builtin.package: name: "{{ docker_compose_package }}" state: "{{ docker_compose_package_state }}" allow_downgrade: true - notify: handler_restart_docker + 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']" + when: + - docker_install_compose_plugin | bool + - ansible_version.full is version_compare('2.12', '>=') + - ansible_os_family in ['RedHat', 'Debian'] become: true - name: DOCKER | Ensure /etc/docker/ directory exists. - file: + ansible.builtin.file: path: /etc/docker state: directory - mode: 0755 + mode: "0755" when: docker_daemon_options.keys() | length > 0 - name: DOCKER | Configure Docker daemon options. - copy: + ansible.builtin.copy: content: "{{ docker_daemon_options | to_nice_json }}" dest: /etc/docker/daemon.json - mode: 0644 + mode: "0644" when: docker_daemon_options.keys() | length > 0 - notify: handler_restart_docker + notify: HANDLER_RESTART_DOCKER - name: DOCKER | Ensure Docker is started and enabled at boot. - service: + ansible.builtin.service: name: docker state: "{{ docker_service_state }}" enabled: "{{ docker_service_enabled }}" @@ -78,26 +86,27 @@ when: docker_service_manage | bool - name: DOCKER | Ensure handlers are notified now to avoid firewall conflicts. - meta: flush_handlers + ansible.builtin.meta: flush_handlers -- include_tasks: docker/install_compose.yml +- name: Installing 'docker compose' + ansible.builtin.include_tasks: docker/install_compose.yml when: docker_install_compose | bool - name: DOCKER | Get docker group info using getent. - getent: + ansible.builtin.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: + ansible.builtin.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 +- name: DOCKER | Adding users to the docker group + ansible.builtin.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 index edb782f..46ff39a 100644 --- a/roles/dependencies/tasks/install_packages.yml +++ b/roles/dependencies/tasks/install_packages.yml @@ -1,8 +1,10 @@ --- -- name: INSTALL_PACAKAGES | Installing the packages from list +- name: INSTALL_PACKAGES | Installing the packages from list ansible.builtin.package: - name: "{{item}}" + name: "{{ package_name }}" state: present - with_items: "{{os_dependencies_packages}}" - become: true \ No newline at end of file + loop: "{{ os_dependencies_packages }}" + loop_control: + loop_var: package_name + become: true diff --git a/roles/dependencies/tasks/main.yml b/roles/dependencies/tasks/main.yml index 2bf1447..1da7500 100644 --- a/roles/dependencies/tasks/main.yml +++ b/roles/dependencies/tasks/main.yml @@ -1,5 +1,8 @@ --- # tasks file for dependencies -- import_tasks: install_packages.yml -- import_tasks: install_docker.yml +- name: Importing the 'install_packages.yml' tasks + ansible.builtin.import_tasks: install_packages.yml + +- name: Importing the 'install_docker.yml' tasks + ansible.builtin.import_tasks: install_docker.yml diff --git a/roles/docker_containers/meta/main.yml b/roles/docker_containers/meta/main.yml index 9831b4f..6bef252 100644 --- a/roles/docker_containers/meta/main.yml +++ b/roles/docker_containers/meta/main.yml @@ -3,7 +3,7 @@ galaxy_info: description: Role to work with the containers for the c3InfoDesk sytems author: fejao company: cccv.de - license: license (GPL-2.0-or-later, MIT, etc) + license: MIT min_ansible_version: 2.10 galaxy_tags: [] diff --git a/roles/docker_images/meta/main.yml b/roles/docker_images/meta/main.yml index fcbd3be..8362f7b 100644 --- a/roles/docker_images/meta/main.yml +++ b/roles/docker_images/meta/main.yml @@ -3,7 +3,7 @@ galaxy_info: description: Role to clone the repositories used from c3InfoDesk sytems author: fejao company: cccv.de - license: license (GPL-2.0-or-later, MIT, etc) + license: MIT min_ansible_version: 2.10 galaxy_tags: [] diff --git a/roles/test/tasks/main.yml b/roles/test/tasks/main.yml index 6e81d9c..231332e 100644 --- a/roles/test/tasks/main.yml +++ b/roles/test/tasks/main.yml @@ -27,6 +27,7 @@ ansible.builtin.command: cmd: ls -hal / register: ret_list_folder + changed_when: ret_list_folder.rc != 0 - name: Shows output from listing folder ansible.builtin.debug: -- GitLab