Skip to content

Commit

Permalink
Ansible package manager restructure stage #1
Browse files Browse the repository at this point in the history
  • Loading branch information
aybarsm committed Jul 6, 2024
1 parent 1bbfdc3 commit 69b44fd
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 94 deletions.
2 changes: 2 additions & 0 deletions roles/ansible/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
---
- name: Load role related variables
ansible.builtin.include_vars: main.yml
2 changes: 1 addition & 1 deletion roles/ansible/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ __ansible__config:
aliases:
update_cache: ['update-cache']
ansible_builtin_apt_key:
uniques: ['keyserver', 'url', 'id', 'file']
uniques: ['keyserver', 'url', 'id', 'file' ,'data']
ansible_builtin_dnf:
uniques: ['name']
aliases:
Expand Down
16 changes: 7 additions & 9 deletions roles/package_manager/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
---
# FIXME: Commented out for testing. Uncomment after testing.
# - name: Load OS related variables
# ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml"
- name: Import aybarsm linux ansible role
ansible.builtin.import_role:
name: aybarsm.linux.ansible

# HACK: This is a workaround to load the OS related variables for debug
# - name: Load OS related variables
# ansible.builtin.include_vars: test.yml
- name: Load OS family related variables
ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml"

# FIXME: Commented out for testing. Uncomment after testing.
# - name: Load common variables structured on OS related variables
# ansible.builtin.include_vars: common.yml
- name: Load common variables structured on OS related variables
ansible.builtin.include_vars: common.yml

# FIXME: Commented out for testing. Uncomment after testing.
# - name: Import aybarsm linux ansible role
Expand Down

This file was deleted.

33 changes: 17 additions & 16 deletions roles/package_manager/vars/common.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,24 @@
package_manager__default: [1,2,3]
__package_manager__clean_upgrade_modes: "{{ ['clean_'] | product(__package_manager__upgrade_modes) | map('join') }}"

package_manager__packages_all: "{{ package_manager__all |
aybarsm.helper.selectattr(__package_manager__package_config.selectattr) |
ansible.utils.replace_keys(target=__package_manager__package_config.replace_keys) |
aybarsm.helper.setattr(__package_manager__package_config.setattr) |
aybarsm.helper.splitattr(__package_manager__package_config.splitattr) |
aybarsm.helper.unique_recursive(__package_manager__package_config.uniques) |
aybarsm.helper.joinattr(__package_manager__package_config.joinattr) | default([]) }}"
aybarsm.helper.selectattr(__package_manager__config.packages.selectattr) |
aybarsm.helper.replace_aliases(__package_manager__config.packages.replace_aliases) |
aybarsm.helper.splitattr(__package_manager__config.packages.splitattr) |
aybarsm.helper.unique_recursive(attribute=__package_manager__config.packages.uniques) |
aybarsm.helper.joinattr(__package_manager__config.packages.joinattr) |
default([]) }}"

package_manager__repo_keys_all: "{{ package_manager__all |
aybarsm.helper.selectattr(__package_manager__repo_key_config.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__repo_key_config.uniques) |
aybarsm.helper.setattr(__package_manager__repo_key_config.setattr) | default([]) }}"
aybarsm.helper.selectattr(__package_manager__config.repo_keys.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__config.repo_keys.uniques) |
default([]) }}"

package_manager__repos_all: "{{ package_manager__all |
aybarsm.helper.selectattr(__package_manager__repo_config.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__repo_config.uniques) |
aybarsm.helper.setattr(__package_manager__repo_config.setattr) | default([]) }}"
aybarsm.helper.selectattr(__package_manager__config.repos.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__config.repos.uniques) |
default([]) }}"

package_manager__repo_lists_all: "{{ package_manager__all |
aybarsm.helper.selectattr(__package_manager__repo_key_config.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__repo_key_config.uniques) |
aybarsm.helper.setattr(__package_manager__repo_key_config.setattr) | default([]) }}"
aybarsm.helper.selectattr(__package_manager__config.repo_lists.selectattr) |
aybarsm.helper.unique_recursive(__package_manager__config.repo_lists.uniques) |
default([]) }}"
105 changes: 40 additions & 65 deletions roles/package_manager/vars/debian.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,49 @@
package_manager__repo_list_templates:
- type: default
dest: /etc/apt/sources.list
src: etc/apt/default.sources.list.j2

package_manager__repo_list_dir: /etc/apt/sources.list.d
package_manager__repo_list_use_regex: true
package_manager__repo_list_patterns: [".*\\.list$"]

package_manager__upgrade_dpkg_options: ''
package_manager__upgrade_update_repo_cache: true

__package_manager__upgrade_modes: ['full', 'safe', 'yes', 'dist']
__package_manager__clean_upgrade_modes: "{{ ['clean_'] | product(__package_manager__upgrade_modes) | map('join') }}"

__package_manager__uniques_package: ['name', 'package', 'pkg']
__package_manager__uniques_repo: ['repo']
__package_manager__uniques_repo_key: ['keyserver', 'url', 'id', 'data', 'file']

__package_manager__package_config:
uniques: "{{ __package_manager__uniques_package }}"
selectattr:
__package_manager__config:
packages:
selectattr:
- when:
- ['type', 'defined']
- ['type', 'equalto', 'package']
- when: "{{ __package_manager__uniques_package | product(['defined']) | list }}"
- when: "{{ ['name', 'package', 'pkg'] | product(['defined']) | list }}"
logic: or
replace_keys:
- before: package
after: name
- before: pkg
after: name
setattr:
- attribute: state
value: present
when:
- ['state', 'undefined']
splitattr:
- srcAttr: name
dstAttr: version
search: '='
overwrite: true
joinattr:
- leftAttr: name
rightAttr: version
join: '='
overwrite: true
deleteSrcAttrs: true

__package_manager__repo_config:
uniques: "{{ __package_manager__uniques_repo }}"
selectattr:
replace_aliases:
name: ['package', 'pkg']
splitattr:
- srcAttr: name
dstAttr: version
search: '='
overwrite: true
uniques: ['name']
joinattr:
- leftAttr: name
rightAttr: version
join: '='
overwrite: true
deleteSrcAttrs: true
repo_keys:
selectattr:
- when:
- ['type', 'defined']
- ['type', 'equalto', 'repo']
- when: "{{ __package_manager__uniques_repo | product(['defined']) }}"
- ['type', 'defined']
- ['type', 'equalto', 'repo_key']
- when: "{{ ['keyserver', 'url', 'id', 'file', 'data'] | product(['defined']) | list }}"
logic: or
setattr:
- attribute: state
value: present
overwrite: false

__package_manager__repo_key_config:
uniques: "{{ __package_manager__uniques_repo_key }}"
selectattr:
uniques: ['keyserver', 'url', 'id', 'file', 'data']
repos:
selectattr:
- when:
- ['type', 'defined']
- ['type', 'equalto', 'repo_key']
- when: "{{ __package_manager__uniques_repo_key | product(['defined']) }}"
logic: or
setattr:
- attribute: state
value: present
overwrite: false
- ['type', 'defined']
- ['type', 'equalto', 'repo']
- ['repo', 'defined']
uniques: ['repo']
repo_lists:
selectattr:
- when:
- ['type', 'defined']
- ['type', 'equalto', 'repo_list']
- ['dest', 'defined']
- ['src', 'defined']
- ['source_module', 'defined']
- ['source_module', 'in', ['copy', 'template']]
uniques: ['dest']
4 changes: 3 additions & 1 deletion roles/package_manager/vars/redhat.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
__package_manager__upgrade_modes: ['full']

__package_manager__has_main_repo_list: false
package_manager__repo_list_dir: /etc/yum.repos.d
package_manager__repo_list_use_regex: true
package_manager__repo_list_patterns: [".*\\.repo$"]

__package_manager__upgrade_modes: ['full']

__package_manager__clean_upgrade_modes: "{{ ['clean_'] | product(__package_manager__upgrade_modes) | map('join') }}"

__package_manager__package_state_config:
Expand Down

0 comments on commit 69b44fd

Please sign in to comment.