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:
push:
branches-ignore:
@@ -10,18 +11,23 @@ on:
- main
- master
jobs:
lint:
name: Lint
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 4
matrix:
python-version: [3.9]
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v6
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: '3.11'
- uses: actions/cache@v5
python-version: ${{ matrix.python-version }}
- uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
+1 -1
View File
@@ -12,6 +12,6 @@ jobs:
runs-on: ubuntu-latest
steps:
# 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:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+21 -17
View File
@@ -1,6 +1,10 @@
---
name: Ansible Galaxy
on:
push:
branches:
- main
- master
release:
types:
- published
@@ -9,22 +13,22 @@ jobs:
galaxy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
- uses: actions/checkout@v4
with:
python-version: '3.11'
- name: Install Ansible
submodules: recursive
- name: Set up Python 3.9
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: |
python -m pip install --upgrade pip
pip install ansible-core
- name: Trigger a new import on Galaxy
run: >-
ansible-galaxy role import
--api-key ${{ secrets.GALAXY_API_KEY }}
${{ github.repository_owner }}
${{ github.event.repository.name }}
pip install -r requirements.txt -r requirements-dev.txt
- 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)
+33 -91
View File
@@ -1,122 +1,64 @@
# 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
ansible-galaxy install mrlesmithjr.manage_lvm
**As of December 2025**, this role is available on Ansible Galaxy as:
```yaml
- src: mrlesmithjr.manage_lvm # Note: underscore, not hyphen
```
> **Note:** As of December 2025, the canonical Galaxy name is `mrlesmithjr.manage_lvm` (underscore).
> Update any `requirements.yml` using the older hyphen-style name `mrlesmithjr.manage-lvm`.
The previous role names (`mrlesmithjr.manage-lvm` and `mrlesmithjr.manage_lvm`) were
consolidated into a single role. If you were using `mrlesmithjr.manage-lvm`, please
update your `requirements.yml` to use `mrlesmithjr.manage_lvm`.
<details>
<summary>Historical download statistics</summary>
**Note:** This role is used by [OpenStack Kayobe](https://docs.openstack.org/kayobe/latest/)
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) |
|-----------|---------------------------|
| `mrlesmithjr.manage_lvm` | 697,492 |
| `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.
</details>
## 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+ |
Due to Ansible Galaxy limitations, download counts reset when roles are re-imported.
The historical data above represents the actual community usage of this role.
## Requirements
- Unpartitioned disk devices to assign to volume groups
- `lvm2` package (installed automatically by the role)
Devices/disks to be members of the LVM setup **must be** identified prior to
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
manage_lvm: true
```
## Dependencies
This prevents accidental modifications on misconfigured runs.
None
## Quick Start
## Example Playbook
```yaml
---
- 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.
[playbook.yml](playbook.yml)
## License
MIT
## Support This Project
## Author Information
This role has been downloaded over **1.1 million times** from Ansible Galaxy.
If your organization depends on it in production, consider
[sponsoring its maintenance](https://github.com/sponsors/mrlesmithjr).
Enterprise support tiers are available.
Larry Smith Jr.
## 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-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0"
ansible-lint==6.8.7 ; python_version >= "3.9" and python_version < "4.0"
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0"
arrow==1.2.3 ; python_version >= "3.9" and python_version < "4.0"
astroid==2.15.5 ; python_version >= "3.9" and python_version < "4.0"
attrs==23.1.0 ; python_version >= "3.9" and python_version < "4.0"
binaryornot==0.4.4 ; python_version >= "3.9" and python_version < "4.0"
black==22.12.0 ; python_version >= "3.9" and python_version < "4.0"
bracex==2.3.post1 ; python_version >= "3.9" and python_version < "4.0"
certifi==2023.5.7 ; python_version >= "3.9" and python_version < "4.0"
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0"
cfgv==3.3.1 ; python_version >= "3.9" and python_version < "4.0"
chardet==5.1.0 ; python_version >= "3.9" and python_version < "4.0"
charset-normalizer==3.1.0 ; python_version >= "3.9" and python_version < "4.0"
click-help-colors==0.9.1 ; python_version >= "3.9" and python_version < "4.0"
click==8.1.3 ; python_version >= "3.9" and python_version < "4.0"
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"
cookiecutter==2.1.1 ; python_version >= "3.9" and python_version < "4.0"
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0"
dill==0.3.6 ; python_version >= "3.9" and python_version < "4.0"
distlib==0.3.6 ; python_version >= "3.9" and python_version < "4.0"
enrich==1.2.7 ; python_version >= "3.9" and python_version < "4.0"
filelock==3.12.2 ; python_version >= "3.9" and python_version < "4.0"
flake8==6.0.0 ; python_version >= "3.9" and python_version < "4.0"
identify==2.5.24 ; python_version >= "3.9" and python_version < "4.0"
idna==3.4 ; python_version >= "3.9" and python_version < "4.0"
isort==5.12.0 ; python_version >= "3.9" and python_version < "4.0"
jinja2-time==0.2.0 ; python_version >= "3.9" and python_version < "4.0"
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0"
jsonschema==4.17.3 ; python_version >= "3.9" and python_version < "4.0"
lazy-object-proxy==1.9.0 ; python_version >= "3.9" and python_version < "4.0"
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0"
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0"
mccabe==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
molecule-plugins[vagrant]==23.4.1 ; python_version >= "3.9" and python_version < "4.0"
molecule==5.0.1 ; python_version >= "3.9" and python_version < "4.0"
molecule[docker]==5.0.1 ; python_version >= "3.9" and python_version < "4.0"
mypy-extensions==0.4.4 ; python_version >= "3.9" and python_version < "4.0"
nodeenv==1.8.0 ; python_version >= "3.9" and python_version < "4.0"
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0"
pathspec==0.11.1 ; python_version >= "3.9" and python_version < "4.0"
platformdirs==2.6.2 ; python_version >= "3.9" and python_version < "4.0"
pluggy==0.13.1 ; python_version >= "3.9" and python_version < "4.0"
pre-commit==2.21.0 ; python_version >= "3.9" and python_version < "4.0"
pycodestyle==2.10.0 ; python_version >= "3.9" and python_version < "4.0"
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0"
pyflakes==3.0.1 ; python_version >= "3.9" and python_version < "4.0"
pygments==2.20.0 ; python_version >= "3.9" and python_version < "4.0"
pylint==2.17.4 ; python_version >= "3.9" and python_version < "4.0"
pyrsistent==0.19.3 ; python_version >= "3.9" and python_version < "4.0"
python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "4.0"
python-slugify==8.0.1 ; python_version >= "3.9" and python_version < "4.0"
python-vagrant==1.0.0 ; python_version >= "3.9" and python_version < "4.0"
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0"
requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0"
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0"
rich==13.4.2 ; python_version >= "3.9" and python_version < "4.0"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.12" and python_version >= "3.9"
ruamel-yaml==0.17.31 ; python_version >= "3.9" and python_version < "4.0"
setuptools==67.8.0 ; python_version >= "3.9" and python_version < "4.0"
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0"
subprocess-tee==0.4.1 ; python_version >= "3.9" and python_version < "4.0"
text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0"
tomli==1.2.3 ; python_version >= "3.9" and python_full_version < "3.11.0a7"
tomlkit==0.11.8 ; python_version >= "3.9" and python_version < "4.0"
typing-extensions==4.6.3 ; python_version >= "3.9" and python_version < "3.11"
urllib3==1.26.16 ; python_version >= "3.9" and python_version < "4.0"
virtualenv==20.21.1 ; python_version >= "3.9" and python_version < "4.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"
ansible-compat==24.10.0
ansible-core==2.15.13
ansible-lint==6.8.7
arrow==1.4.0
astroid==2.15.8
attrs==26.1.0
binaryornot==0.6.0
black==22.12.0
bracex==2.6
certifi==2026.2.25
cffi==2.0.0
cfgv==3.5.0
charset-normalizer==3.4.6
click==8.3.1
click-help-colors==0.9.4
cookiecutter==2.7.1
cryptography==46.0.5
dill==0.4.1
distlib==0.4.0
enrich==1.2.7
filelock==3.25.2
flake8==6.1.0
identify==2.6.18
idna==3.11
isort==5.13.2
jinja2==3.1.6
jsonschema==4.26.0
jsonschema-specifications==2025.9.1
lazy-object-proxy==1.12.0
markdown-it-py==4.0.0
markupsafe==3.0.3
mccabe==0.7.0
mdurl==0.1.2
molecule==5.1.0
molecule-plugins==23.5.0
mypy-extensions==1.1.0
nodeenv==1.10.0
packaging==26.0
pathspec==1.0.4
platformdirs==4.9.4
pluggy==1.6.0
pre-commit==2.21.0
pycodestyle==2.11.1
pycparser==3.0
pyflakes==3.1.0
pygments==2.19.2
pylint==2.17.7
python-dateutil==2.9.0.post0
python-discovery==1.2.0
python-slugify==8.0.4
python-vagrant==1.0.0
pyyaml==6.0.3
referencing==0.37.0
requests==2.33.0
resolvelib==1.0.1
rich==14.3.3
rpds-py==0.30.0
ruamel-yaml==0.17.40
ruamel-yaml-clib==0.2.15
six==1.17.0
subprocess-tee==0.4.2
text-unidecode==1.3
tomlkit==0.14.0
typing-extensions==4.15.0
tzdata==2025.3
urllib3==2.6.3
virtualenv==21.2.0
wcmatch==10.1
wrapt==1.17.3
yamllint==1.38.0
+10 -10
View File
@@ -1,10 +1,10 @@
ansible-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0"
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0"
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0"
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0"
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0"
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0"
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0"
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0"
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0"
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0"
ansible==8.5.0
ansible-core==2.15.13
cffi==2.0.0
cryptography==46.0.5
jinja2==3.1.6
markupsafe==3.0.3
packaging==26.0
pycparser==3.0
pyyaml==6.0.3
resolvelib==1.0.1