Compare commits

..

1 Commits

Author SHA1 Message Date
Larry Smith Jr. 1b5981848c Update Python dependencies to resolve security vulnerabilities
Regenerated pinned requirements from source files with latest
compatible package versions to address open Dependabot alerts.
2026-03-25 16:03:23 -04:00
10 changed files with 1803 additions and 957 deletions
-1
View File
@@ -1 +0,0 @@
github: mrlesmithjr
-23
View File
@@ -1,23 +0,0 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
groups:
github-actions:
patterns: ["*"]
labels: ["dependencies"]
commit-message:
prefix: "ci"
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "monthly"
groups:
python-deps:
patterns: ["*"]
labels: ["dependencies"]
commit-message:
prefix: "chore"
@@ -1,4 +1,5 @@
name: CI ---
name: Molecule
on: on:
push: push:
branches-ignore: branches-ignore:
@@ -10,18 +11,23 @@ on:
- main - main
- master - master
jobs: jobs:
lint: build:
name: Lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 4
matrix:
python-version: [3.9]
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
- name: Set up Python - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v6 uses: actions/setup-python@v5
with: with:
python-version: '3.11' python-version: ${{ matrix.python-version }}
- uses: actions/cache@v5 - uses: actions/cache@v4
with: with:
path: ~/.cache/pip path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }} key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
+1 -1
View File
@@ -12,6 +12,6 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
# Drafts your next Release notes as Pull Requests are merged into "master" # Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/release-drafter@v7 - uses: release-drafter/release-drafter@v5
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+21 -17
View File
@@ -1,6 +1,10 @@
---
name: Ansible Galaxy name: Ansible Galaxy
on: on:
push:
branches:
- main
- master
release: release:
types: types:
- published - published
@@ -9,22 +13,22 @@ jobs:
galaxy: galaxy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v6
with: with:
python-version: '3.11' submodules: recursive
- name: Set up Python 3.9
- name: Install Ansible uses: actions/setup-python@v5
with:
python-version: '3.9'
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: | run: |
python -m pip install --upgrade pip python -m pip install --upgrade pip
pip install ansible-core pip install -r requirements.txt -r requirements-dev.txt
- name: Trigger a new import on Galaxy.
- name: Trigger a new import on Galaxy run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} $(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2)
run: >-
ansible-galaxy role import
--api-key ${{ secrets.GALAXY_API_KEY }}
${{ github.repository_owner }}
${{ github.event.repository.name }}
+33 -91
View File
@@ -1,122 +1,64 @@
# ansible-manage-lvm # ansible-manage-lvm
An [Ansible](https://www.ansible.com) role to create, extend, and resize [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) volume groups and logical volumes. Ansible role to manage LVM Groups/Logical Volumes.
> Used by [OpenStack Kayobe](https://docs.openstack.org/kayobe/latest/) for LVM management. > NOTE: Can be used to create, extend or resize LVM Groups and volumes.
## Ansible Galaxy ## ⚠️ Important: Ansible Galaxy Role Name
```bash **As of December 2025**, this role is available on Ansible Galaxy as:
ansible-galaxy install mrlesmithjr.manage_lvm
```yaml
- src: mrlesmithjr.manage_lvm # Note: underscore, not hyphen
``` ```
> **Note:** As of December 2025, the canonical Galaxy name is `mrlesmithjr.manage_lvm` (underscore). The previous role names (`mrlesmithjr.manage-lvm` and `mrlesmithjr.manage_lvm`) were
> Update any `requirements.yml` using the older hyphen-style name `mrlesmithjr.manage-lvm`. consolidated into a single role. If you were using `mrlesmithjr.manage-lvm`, please
update your `requirements.yml` to use `mrlesmithjr.manage_lvm`.
<details> **Note:** This role is used by [OpenStack Kayobe](https://docs.openstack.org/kayobe/latest/)
<summary>Historical download statistics</summary> for LVM management. The `manage_lvm` name was preserved to maintain compatibility.
### Historical Download Statistics
Prior to consolidation, this role had accumulated significant usage:
| Role Name | Downloads (as of Dec 2025) | | Role Name | Downloads (as of Dec 2025) |
|-----------|---------------------------| |-----------|---------------------------|
| `mrlesmithjr.manage_lvm` | 697,492 | | `mrlesmithjr.manage_lvm` | 697,492 |
| `mrlesmithjr.manage-lvm` | 494,517 | | `mrlesmithjr.manage-lvm` | 494,517 |
| **Combined** | **1,192,009** | | **Combined Total** | **1,192,009** |
Download counts reset when roles are re-imported to Galaxy. These figures represent actual historical usage. Due to Ansible Galaxy limitations, download counts reset when roles are re-imported.
</details> The historical data above represents the actual community usage of this role.
## Supported Platforms
Any Linux distribution with LVM support, including:
| Platform | Versions |
|----------|----------|
| Ubuntu | 20.04, 22.04, 24.04 |
| Debian | 11, 12 |
| Rocky Linux / RHEL | 8, 9 |
| Fedora | 39+ |
## Requirements ## Requirements
- Unpartitioned disk devices to assign to volume groups Devices/disks to be members of the LVM setup **must be** identified prior to
- `lvm2` package (installed automatically by the role) using this role.
## Important: Safety Default ## Role Variables
`manage_lvm` defaults to `false`. **The role will not make any disk changes** unless you explicitly set: [defaults/main.yml](defaults/main.yml)
```yaml ## Dependencies
manage_lvm: true
```
This prevents accidental modifications on misconfigured runs. None
## Quick Start ## Example Playbook
```yaml [playbook.yml](playbook.yml)
---
- hosts: all
become: true
vars:
manage_lvm: true
lvm_groups:
- vgname: data-vg
disks:
- /dev/sdb
create: true
lvnames:
- lvname: data
size: 100%FREE
create: true
filesystem: ext4
mount: true
mntp: /data
roles:
- role: mrlesmithjr.manage_lvm
```
## Key Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `manage_lvm` | `false` | Master switch — must be `true` to make any changes |
| `lvm_groups` | `[]` | List of volume group definitions |
| `pvresize_to_max` | `false` | Resize all PVs to maximum available size |
### `lvm_groups` Structure
```yaml
lvm_groups:
- vgname: my-vg # Volume group name
disks: # Physical volumes to assign
- /dev/sdb
- /dev/sdc
create: true # true = create, false = remove
pvresize: false # Resize PV to max size
lvnames:
- lvname: data # Logical volume name
size: 50g # Size: 10g | 1024 (MB) | 100%FREE
create: true # true = create, false = remove
filesystem: ext4 # ext4 | xfs | swap | etc.
mount: true # Mount after creation
mntp: /data # Mountpoint
mopts: noatime # Mount options (optional)
fsopts: # Filesystem creation options (optional)
```
See [defaults/main.yml](defaults/main.yml) for full examples including XFS, swap, and OpenStack Cinder volumes.
## License ## License
MIT MIT
## Support This Project ## Author Information
This role has been downloaded over **1.1 million times** from Ansible Galaxy. Larry Smith Jr.
If your organization depends on it in production, consider
[sponsoring its maintenance](https://github.com/sponsors/mrlesmithjr).
Enterprise support tiers are available.
## Author - [@mrlesmithjr](https://twitter.com/mrlesmithjr)
- [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com)
- [http://everythingshouldbevirtual.com](http://everythingshouldbevirtual.com)
Larry Smith Jr. — [everythingshouldbevirtual.com](http://everythingshouldbevirtual.com) · [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com) <a href="https://www.buymeacoffee.com/mrlesmithjr" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
Generated
+1650 -733
View File
File diff suppressed because it is too large Load Diff
+4
View File
@@ -0,0 +1,4 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>mrlesmithjr/renovate-config"]
}
+70 -73
View File
@@ -1,73 +1,70 @@
ansible-compat==3.0.2 ; python_version >= "3.9" and python_version < "4.0" ansible-compat==24.10.0
ansible-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0" ansible-core==2.15.13
ansible-lint==6.8.7 ; python_version >= "3.9" and python_version < "4.0" ansible-lint==6.8.7
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0" arrow==1.4.0
arrow==1.2.3 ; python_version >= "3.9" and python_version < "4.0" astroid==2.15.8
astroid==2.15.5 ; python_version >= "3.9" and python_version < "4.0" attrs==26.1.0
attrs==23.1.0 ; python_version >= "3.9" and python_version < "4.0" binaryornot==0.6.0
binaryornot==0.4.4 ; python_version >= "3.9" and python_version < "4.0" black==22.12.0
black==22.12.0 ; python_version >= "3.9" and python_version < "4.0" bracex==2.6
bracex==2.3.post1 ; python_version >= "3.9" and python_version < "4.0" certifi==2026.2.25
certifi==2023.5.7 ; python_version >= "3.9" and python_version < "4.0" cffi==2.0.0
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0" cfgv==3.5.0
cfgv==3.3.1 ; python_version >= "3.9" and python_version < "4.0" charset-normalizer==3.4.6
chardet==5.1.0 ; python_version >= "3.9" and python_version < "4.0" click==8.3.1
charset-normalizer==3.1.0 ; python_version >= "3.9" and python_version < "4.0" click-help-colors==0.9.4
click-help-colors==0.9.1 ; python_version >= "3.9" and python_version < "4.0" cookiecutter==2.7.1
click==8.1.3 ; python_version >= "3.9" and python_version < "4.0" cryptography==46.0.5
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" dill==0.4.1
cookiecutter==2.1.1 ; python_version >= "3.9" and python_version < "4.0" distlib==0.4.0
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0" enrich==1.2.7
dill==0.3.6 ; python_version >= "3.9" and python_version < "4.0" filelock==3.25.2
distlib==0.3.6 ; python_version >= "3.9" and python_version < "4.0" flake8==6.1.0
enrich==1.2.7 ; python_version >= "3.9" and python_version < "4.0" identify==2.6.18
filelock==3.12.2 ; python_version >= "3.9" and python_version < "4.0" idna==3.11
flake8==6.0.0 ; python_version >= "3.9" and python_version < "4.0" isort==5.13.2
identify==2.5.24 ; python_version >= "3.9" and python_version < "4.0" jinja2==3.1.6
idna==3.4 ; python_version >= "3.9" and python_version < "4.0" jsonschema==4.26.0
isort==5.12.0 ; python_version >= "3.9" and python_version < "4.0" jsonschema-specifications==2025.9.1
jinja2-time==0.2.0 ; python_version >= "3.9" and python_version < "4.0" lazy-object-proxy==1.12.0
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0" markdown-it-py==4.0.0
jsonschema==4.17.3 ; python_version >= "3.9" and python_version < "4.0" markupsafe==3.0.3
lazy-object-proxy==1.9.0 ; python_version >= "3.9" and python_version < "4.0" mccabe==0.7.0
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0" mdurl==0.1.2
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0" molecule==5.1.0
mccabe==0.7.0 ; python_version >= "3.9" and python_version < "4.0" molecule-plugins==23.5.0
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0" mypy-extensions==1.1.0
molecule-plugins[vagrant]==23.4.1 ; python_version >= "3.9" and python_version < "4.0" nodeenv==1.10.0
molecule==5.0.1 ; python_version >= "3.9" and python_version < "4.0" packaging==26.0
molecule[docker]==5.0.1 ; python_version >= "3.9" and python_version < "4.0" pathspec==1.0.4
mypy-extensions==0.4.4 ; python_version >= "3.9" and python_version < "4.0" platformdirs==4.9.4
nodeenv==1.8.0 ; python_version >= "3.9" and python_version < "4.0" pluggy==1.6.0
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0" pre-commit==2.21.0
pathspec==0.11.1 ; python_version >= "3.9" and python_version < "4.0" pycodestyle==2.11.1
platformdirs==2.6.2 ; python_version >= "3.9" and python_version < "4.0" pycparser==3.0
pluggy==0.13.1 ; python_version >= "3.9" and python_version < "4.0" pyflakes==3.1.0
pre-commit==2.21.0 ; python_version >= "3.9" and python_version < "4.0" pygments==2.19.2
pycodestyle==2.10.0 ; python_version >= "3.9" and python_version < "4.0" pylint==2.17.7
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0" python-dateutil==2.9.0.post0
pyflakes==3.0.1 ; python_version >= "3.9" and python_version < "4.0" python-discovery==1.2.0
pygments==2.20.0 ; python_version >= "3.9" and python_version < "4.0" python-slugify==8.0.4
pylint==2.17.4 ; python_version >= "3.9" and python_version < "4.0" python-vagrant==1.0.0
pyrsistent==0.19.3 ; python_version >= "3.9" and python_version < "4.0" pyyaml==6.0.3
python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "4.0" referencing==0.37.0
python-slugify==8.0.1 ; python_version >= "3.9" and python_version < "4.0" requests==2.33.0
python-vagrant==1.0.0 ; python_version >= "3.9" and python_version < "4.0" resolvelib==1.0.1
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0" rich==14.3.3
requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" rpds-py==0.30.0
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0" ruamel-yaml==0.17.40
rich==13.4.2 ; python_version >= "3.9" and python_version < "4.0" ruamel-yaml-clib==0.2.15
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.12" and python_version >= "3.9" six==1.17.0
ruamel-yaml==0.17.31 ; python_version >= "3.9" and python_version < "4.0" subprocess-tee==0.4.2
setuptools==67.8.0 ; python_version >= "3.9" and python_version < "4.0" text-unidecode==1.3
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" tomlkit==0.14.0
subprocess-tee==0.4.1 ; python_version >= "3.9" and python_version < "4.0" typing-extensions==4.15.0
text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0" tzdata==2025.3
tomli==1.2.3 ; python_version >= "3.9" and python_full_version < "3.11.0a7" urllib3==2.6.3
tomlkit==0.11.8 ; python_version >= "3.9" and python_version < "4.0" virtualenv==21.2.0
typing-extensions==4.6.3 ; python_version >= "3.9" and python_version < "3.11" wcmatch==10.1
urllib3==1.26.16 ; python_version >= "3.9" and python_version < "4.0" wrapt==1.17.3
virtualenv==20.21.1 ; python_version >= "3.9" and python_version < "4.0" yamllint==1.38.0
wcmatch==8.4.1 ; python_version >= "3.9" and python_version < "4.0"
wrapt==1.15.0 ; python_version >= "3.9" and python_version < "4.0"
yamllint==1.32.0 ; python_version >= "3.9" and python_version < "4.0"
+10 -10
View File
@@ -1,10 +1,10 @@
ansible-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0" ansible==8.5.0
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0" ansible-core==2.15.13
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0" cffi==2.0.0
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0" cryptography==46.0.5
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0" jinja2==3.1.6
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0" markupsafe==3.0.3
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0" packaging==26.0
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0" pycparser==3.0
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0" pyyaml==6.0.3
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0" resolvelib==1.0.1