Initial CV-aligned infrastructure portfolio
ci / validate (push) Failing after 1m8s

Rework portfolio around Linux operations, Zabbix monitoring, migration validation, and ELK/Grafana log observability.

Add AAP-style LVM resize workflow, Zabbix server/proxy/agent automation assets, Linux/AIX monitoring templates, and updated validation CI.
This commit is contained in:
Mateusz Suski
2026-05-04 17:37:24 +00:00
commit 35e6b139fc
114 changed files with 6422 additions and 0 deletions
@@ -0,0 +1,149 @@
---
- name: AAP-style LVM filesystem resize workflow
hosts: all
become: true
gather_facts: true
vars:
lvm_dry_run: true
lvm_vg_name: ""
lvm_lv_name: ""
lvm_mountpoint: ""
lvm_size_request: "+10G"
lvm_resize_filesystem: true
pre_tasks:
- name: Validate required survey variables
ansible.builtin.assert:
that:
- lvm_vg_name | length > 0
- lvm_lv_name | length > 0
- lvm_mountpoint | length > 0
- lvm_size_request | length > 0
fail_msg: "Required variables: lvm_vg_name, lvm_lv_name, lvm_mountpoint, lvm_size_request"
tasks:
- name: Capture block device layout before resize
ansible.builtin.command:
argv:
- lsblk
- --fs
register: lvm_lsblk_before
changed_when: false
- name: Capture physical volumes before resize
ansible.builtin.command:
argv:
- pvs
- --noheadings
- --units
- g
register: lvm_pvs_before
changed_when: false
- name: Capture volume groups before resize
ansible.builtin.command:
argv:
- vgs
- --noheadings
- --units
- g
register: lvm_vgs_before
changed_when: false
- name: Capture logical volumes before resize
ansible.builtin.command:
argv:
- lvs
- --noheadings
- --units
- g
register: lvm_lvs_before
changed_when: false
- name: Capture filesystem usage before resize
ansible.builtin.command:
argv:
- df
- -hT
- "{{ lvm_mountpoint }}"
register: lvm_df_before
changed_when: false
- name: Validate target logical volume exists
ansible.builtin.command:
argv:
- lvs
- "/dev/{{ lvm_vg_name }}/{{ lvm_lv_name }}"
register: lvm_target_check
changed_when: false
- name: Show dry-run resize command
ansible.builtin.debug:
msg: "DRY RUN: would run lvextend -L {{ lvm_size_request }} /dev/{{ lvm_vg_name }}/{{ lvm_lv_name }}"
when: lvm_dry_run | bool
- name: Extend logical volume
ansible.builtin.command:
argv:
- lvextend
- -L
- "{{ lvm_size_request }}"
- "/dev/{{ lvm_vg_name }}/{{ lvm_lv_name }}"
register: lvm_lvextend_result
changed_when: true
when: not (lvm_dry_run | bool)
- name: Detect filesystem type
ansible.builtin.command:
argv:
- findmnt
- -n
- -o
- FSTYPE
- "{{ lvm_mountpoint }}"
register: lvm_fstype
changed_when: false
- name: Resize XFS filesystem
ansible.builtin.command:
argv:
- xfs_growfs
- "{{ lvm_mountpoint }}"
changed_when: true
when:
- not (lvm_dry_run | bool)
- lvm_resize_filesystem | bool
- lvm_fstype.stdout == "xfs"
- name: Resize ext filesystem
ansible.builtin.command:
argv:
- resize2fs
- "/dev/{{ lvm_vg_name }}/{{ lvm_lv_name }}"
changed_when: true
when:
- not (lvm_dry_run | bool)
- lvm_resize_filesystem | bool
- lvm_fstype.stdout in ["ext2", "ext3", "ext4"]
- name: Capture filesystem usage after resize
ansible.builtin.command:
argv:
- df
- -hT
- "{{ lvm_mountpoint }}"
register: lvm_df_after
changed_when: false
- name: Report LVM resize evidence
ansible.builtin.debug:
msg:
host: "{{ inventory_hostname }}"
dry_run: "{{ lvm_dry_run }}"
target: "/dev/{{ lvm_vg_name }}/{{ lvm_lv_name }}"
mountpoint: "{{ lvm_mountpoint }}"
requested_size: "{{ lvm_size_request }}"
filesystem_type: "{{ lvm_fstype.stdout | default('unknown') }}"
before_df: "{{ lvm_df_before.stdout_lines }}"
after_df: "{{ lvm_df_after.stdout_lines }}"