99 lines
3.4 KiB
YAML
99 lines
3.4 KiB
YAML
---
|
|
# httpd-2.4.6-18.el7_0
|
|
# item | regex_replace('(\\w+-\\d+)\\..*$', '\\1')
|
|
|
|
- name: Debug item
|
|
ansible.builtin.debug:
|
|
var: item
|
|
|
|
# - name: Regex test 1
|
|
# ansible.builtin.debug:
|
|
# msg: "{{ item | regex_replace('(\\w+.?)-(\\d+\\..*)(\\.el.*$)', '\\1 + \\2 + \\3') }}"
|
|
|
|
# - name: Regex test 2
|
|
# ansible.builtin.debug:
|
|
# msg: "{{ item | regex_replace('^.*?-(\\d+.*$)', '\\1') }}"
|
|
|
|
# - name: Regex test 3
|
|
# ansible.builtin.debug:
|
|
# msg: "{{ item | regex_replace('^(\\w+.*?)-\\d+.*?$', '\\1') }}"
|
|
|
|
# - name: Regex test
|
|
# ansible.builtin.debug:
|
|
# msg: "{{ item | regex_replace('(\\w+.?)-(\\d+\\..*$)', '\\1 + \\2') }}"
|
|
|
|
# - name: Set package name and version facts
|
|
# ansible.builtin.set_fact:
|
|
# pkg_name: "{{ item | regex_replace('(\\w+.?)-\\d+\\..*$', '\\1') }}"
|
|
# pkg_vers: "{{ item | regex_replace('\\w+.?-(\\d+\\..*$)', '\\1') }}"
|
|
|
|
- name: Set package name and version facts
|
|
ansible.builtin.set_fact:
|
|
pkg_name: "{{ item | regex_replace('^(\\w+.*?)-\\d+.*?$', '\\1') }}"
|
|
pkg_vers: "{{ item | regex_replace('^.*?-(\\d+.*$)', '\\1') }}"
|
|
|
|
- name: Display package name and version
|
|
ansible.builtin.debug:
|
|
msg: "Package: {{ pkg_name }} || Version: {{ pkg_vers }}"
|
|
|
|
# this is the right track...
|
|
# 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
|
|
|
|
|
|
# - name: End host
|
|
# ansible.builtin.meta: end_host
|
|
|
|
# - name: "Check if lock currently exists for {{ item }}"
|
|
# ansible.builtin.command:
|
|
# cmd: "grep -c {{ item | regex_replace('(\\w+-\\d+)\\..*$', '\\1') }} /etc/yum/pluginconf.d/versionlock.list"
|
|
# failed_when: versionlock_check['rc'] not in [0, 1]
|
|
# changed_when: false
|
|
# register: versionlock_check
|
|
|
|
# - name: Debug versionlock_check
|
|
# ansible.builtin.debug:
|
|
# var: versionlock_check
|
|
# # verbosity: 1
|
|
|
|
# - name: "Clear old version lock if present for {{ item }}"
|
|
# when:
|
|
# - versionlock_check['rc'] == 0
|
|
# block:
|
|
# - name: "Clear existing locks via wildcard match for {{ item }}" # noqa: command-instead-of-module
|
|
# ansible.builtin.command: "yum versionlock delete '{{ item | regex_replace('(\\w+-\\d+)\\..*$', '\\1') }}*'"
|
|
# register: versionlock_rm
|
|
|
|
# - name: Debug versionlock_rm
|
|
# ansible.builtin.debug:
|
|
# var: versionlock_rm
|
|
|
|
# - name: "Version lock package: {{ item }}"
|
|
# # when:
|
|
# # - versionlock_check['rc'] == 1
|
|
# block:
|
|
# - name: "Version locking: {{ item }}" # noqa: command-instead-of-module
|
|
# ansible.builtin.command: "yum versionlock {{ item }}"
|
|
# # changed_when: "'Adding versionlock on:' in versionlock_pkg['stdout']"
|
|
# # failed_when: "'Package already locked' in versionlock_pkg['stdout']"
|
|
# changed_when: "'versionlock added: 1' in versionlock_pkg['stdout']"
|
|
# failed_when: "'versionlock added: 0' in versionlock_pkg['stdout']"
|
|
# register: versionlock_pkg
|
|
|
|
# - name: Debug versionlock_pkg
|
|
# ansible.builtin.debug:
|
|
# var: 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."
|