New stuffs again

This commit is contained in:
2025-07-08 10:50:08 -04:00
parent 7502dbbd84
commit 49b98451a3
16 changed files with 548 additions and 31 deletions

70
tasks/lock_pkg.yml Normal file
View File

@ -0,0 +1,70 @@
---
# conditions:
# - versionlock doesnt exist for pkg ***
# - add versionlock
# - versionlock exists for pkg and version matches ***
# - move on
# - versionlock exists for pkg and version mismatch ***
# - clear current lock
# - add new lock for new version
# - pkg doesnt exist ***
# - fail with message stating to check pkg name/version
#
# package examples:
# - httpd-2.4.6-18.el7_0
# - httpd-tools-2.4.6-18.el7_0
###############################################################################
- name: Set package name fact
ansible.builtin.set_fact:
r_pkg_name: "{{ item | regex_replace('^(\\w+.*?)-\\d+.*?$', '\\1') }}"
- name: "Check if versionlock currently exists: {{ r_pkg_name }}"
ansible.builtin.command:
cmd: "grep '^0:{{ r_pkg_name }}-[[:digit:]]' /etc/yum/pluginconf.d/versionlock.list"
failed_when: r_versionlock_check['rc'] not in [0, 1]
changed_when: false
register: r_versionlock_check
- name: "Check existing versionlock: {{ item }}"
when:
- r_versionlock_check['rc'] == 0
block:
- name: Update package lock
when:
- item not in r_versionlock_check['stdout']
block:
- name: "Clear existing lock due to version mismatch: {{ item }}" # noqa: command-instead-of-module
ansible.builtin.command: "yum versionlock delete '{{ r_versionlock_check['stdout'] }}'"
register: versionlock_rm
- name: "Version locking: {{ item }}" # noqa: command-instead-of-module
ansible.builtin.command: "yum versionlock {{ item }}"
changed_when: "'versionlock added: 1' in r_versionlock_pkg['stdout']"
failed_when: "'versionlock added: 0' in r_versionlock_pkg['stdout']"
register: r_versionlock_pkg
rescue:
- name: Failed to add versionlock
ansible.builtin.fail:
msg: "Failed to add versionlock for item: {{ item }}. Please re-check package name/version."
- name: "Add new versionlock: {{ item }}"
when:
- r_versionlock_check['rc'] == 1
block:
- name: "Version locking: {{ item }}" # noqa: command-instead-of-module
ansible.builtin.command: "yum versionlock {{ item }}"
changed_when: "'versionlock added: 1' in r_versionlock_pkg['stdout']"
failed_when: "'versionlock added: 0' in r_versionlock_pkg['stdout']"
register: r_versionlock_pkg
- name: Debug r_versionlock_pkg
ansible.builtin.debug:
var: r_versionlock_pkg
verbosity: 1
rescue:
- name: Failed to add versionlock
ansible.builtin.fail:
msg: "Failed to add versionlock for item: {{ item }}. Please re-check package name/version."