deploy/ansible/roles-os/1.4-packages/tasks/1.4.2-custom-packages.yaml (37 lines of code) (raw):

# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # /*----------------------------------------------------------------------------8 # | Custom packages | # +------------------------------------4---------------------------------------*/ # Analyse the package list for this distribution selecting only those # packages assigned to the active tier or 'all'. - name: "1.4 Packages: - Determine custom packages appropriate for tier on: {{ distribution_full_id }}" ansible.builtin.set_fact: custom_packages_for_specific_tier: "{{ custom_packages[distribution_full_id] | selectattr('tier', 'in', ['all', tier]) | selectattr('node_tier', 'in', ['all', node_tier]) | list }}" when: - custom_packages is defined - name: "1.4 Packages: - show custom packages appropriate for tier on: {{ distribution_full_id }}" ansible.builtin.debug: var: custom_packages_for_specific_tier verbosity: 2 when: - custom_packages_for_specific_tier is defined - name: "1.4 Packages: - Update custom packages: {{ distribution_full_id }} and rescue" block: - name: "1.4 Packages: - Update custom packages: {{ distribution_full_id }}" ansible.builtin.package: name: "{{ custom_packages_for_specific_tier | selectattr('state', 'equalto', item.state) | map(attribute='package') | list }}" state: "{{ item.state }}" register: custom_package_result loop: - { state: 'present' } # First install required packages - { state: 'absent' } # Then remove packages that we don't want rescue: - name: "1.4 Packages: - Print stderr before getting error code" ansible.builtin.debug: msg: "debug statement: {{ package_result }}" - name: "1.4 Packages: - Error handling - Update custom packages: {{ distribution_full_id }}" ansible.builtin.fail: msg: "{{ package_result | try_get_error_code_results(task_tag='update_os_packages') }}" when: - custom_packages_for_specific_tier is defined - custom_packages_for_specific_tier | list | length > 0