Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/act/push.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"ref": "refs/heads/main",
"before": "0000000000000000000000000000000000000000",
"after": "0000000000000000000000000000000000000001",
"forced": false,
"repository": {
"name": "prepare_linux_desktop",
"full_name": "ansible102/prepare_linux_desktop",
"private": false,
"default_branch": "main"
},
"pusher": {
"name": "mbojko",
"email": "marcinbojko.pl@gmail.com"
},
"head_commit": {
"id": "0000000000000000000000000000000000000001",
"message": "test push",
"author": {
"name": "mbojko",
"email": "marcinbojko.pl@gmail.com"
}
}
}
14 changes: 14 additions & 0 deletions .github/linters/.yamllint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
extends: default

rules:
line-length:
max: 160
level: warning
document-start: disable
brackets:
min-spaces-inside: 0
max-spaces-inside: 0
braces:
min-spaces-inside: 0
max-spaces-inside: 1
39 changes: 9 additions & 30 deletions .github/workflows/01_lint_me.yml
Original file line number Diff line number Diff line change
@@ -1,51 +1,30 @@
name: Super-Linter

# Run this workflow every time a new commit pushed to your repository
on:
push:
branches: [main, master, test, develop]
pull_request:
branches: [main, master]
workflow_dispatch:

permissions:
contents: write
pull-requests: write
packages: write
actions: read
deployments: read
id-token: write
issues: write
discussions: read
pages: read
repository-projects: read
security-events: read
attestations: read # Added this
checks: write # Added this
statuses: write # Added
contents: read
statuses: write

jobs:
# Set the job key. The key is displayed as the job name
# when a job name is not provided
super-lint:
# Name the Job
name: Lint code base
# Set the type of machine to run on
runs-on: ubuntu-latest

steps:
# Checks out a copy of your repository on the ubuntu-latest machine
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

# Runs the Super-Linter action
- name: Run Super-Linter
# workaround for superlinter issues
uses: github/super-linter@main
uses: super-linter/super-linter@9e863354e3ff62e0727d37183162c4a88873df41 # v8.6.0
env:
DEFAULT_BRANCH: ${{ github.ref_name }}
DEFAULT_BRANCH: ${{ github.event.pull_request.base.ref || github.event.repository.default_branch || 'main' }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_ALL_CODEBASE: ${{ github.event_name != 'pull_request' }}
VALIDATE_JSCPD: false
# VALIDATE_ANSIBLE: false
VALIDATE_NATURAL_LANGUAGE: false
# VALIDATE_DOCKERFILE_HADOLINT: false
VALIDATE_ALL_CODEBASE: false
VALIDATE_YAML: true
34 changes: 34 additions & 0 deletions .github/workflows/02_syntax_check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: Syntax Check

on:
push:
pull_request:
branches: [main, master]
workflow_dispatch:

permissions:
contents: read

jobs:
syntax-check:
name: Ansible syntax check
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install dependencies
run: pip install -r molecule/requirements.txt

- name: Install collections
run: ansible-galaxy collection install -r requirements.yml

- name: Run molecule syntax
run: molecule syntax
Comment on lines +33 to +34
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, find molecule-related files in the repository
fd -t f -i "molecule" | head -20

Repository: marcinbojko/pld

Length of output: 119


🏁 Script executed:

# Search for molecule.yml or similar config files
fd -t f "molecule\.y*ml" | head -20

Repository: marcinbojko/pld

Length of output: 119


🏁 Script executed:

# Also check for molecule directory structures
fd -t d "molecule" | head -20

Repository: marcinbojko/pld

Length of output: 69


🏁 Script executed:

# Read the workflow file to see current state
cat -n .github/workflows/02_syntax_check.yml

Repository: marcinbojko/pld

Length of output: 955


🏁 Script executed:

# Check Molecule documentation about the syntax command and scenario selection
rg "molecule syntax" --type yaml -A 3 -B 3

Repository: marcinbojko/pld

Length of output: 41


🏁 Script executed:

# Check the default scenario configuration
head -30 molecule/default/molecule.yml

Repository: marcinbojko/pld

Length of output: 510


🏁 Script executed:

# Check the proxmox scenario configuration
head -30 molecule/proxmox/molecule.yml

Repository: marcinbojko/pld

Length of output: 693


🏁 Script executed:

# Look for any .molecule.yml or setup.cfg that might set defaults
find . -name ".molecule.yml" -o -name "setup.cfg" -o -name "pyproject.toml" | xargs cat 2>/dev/null | head -50

Repository: marcinbojko/pld

Length of output: 41


🌐 Web query:

Molecule syntax command scenario behavior default

💡 Result:

Molecule is an Ansible testing framework where scenarios define testing configurations in directories under molecule/, with the default scenario named "default". If no scenario is specified with -s/--scenario-name, Molecule targets the "default" scenario. Scenario syntax in molecule.yml: scenario: name: default # Optional; defaults to directory name if omitted test_sequence: - dependency - cleanup - destroy - syntax - create - prepare - converge - idempotence - side_effect - verify - cleanup - destroy # Similar for create_sequence, converge_sequence, etc. Commands like molecule test execute the defined sequence for the targeted scenario. molecule syntax runs syntax checks. Default behavior starts fresh by destroying existing instances unless overridden (e.g., --destroy=never). Scenarios are independent unless shared_state: true is configured. CLI example: molecule test # Runs default scenario's test_sequence molecule test -s my_scenario # Targets my_scenario molecule converge # Runs converge_sequence on default

Citations:


🌐 Web query:

molecule syntax all scenarios or single scenario

💡 Result:

In Ansible Molecule, Molecule commands (such as test, syntax, converge, destroy, etc.) can target either a single scenario or all scenarios, using specific command-line syntax. Single scenario: Use the -s or --scenario-name option followed by the scenario name (defaults to 'default' if omitted). Examples: molecule test -s default molecule test -s tls molecule syntax --scenario-name clustered All scenarios: Use the --all flag (primarily documented for test, but applicable to other actions like destroy). Example: molecule test --all This runs the full test sequence across all discovered scenarios sequentially. Each scenario executes independently with its own lifecycle (destroy -> create -> ... -> destroy per test_sequence). Note: --all loops through each scenario, executing the command/sequence for one at a time. For destroy, some commands support destroy --all directly. Scenarios are directories under molecule/ (e.g., molecule/default, molecule/centos), each with its own molecule.yml configuring driver, platforms, sequences, etc. Official docs confirm --scenario-name targets specific/nested scenarios (with / or wildcards), while --all runs everything.

Citations:


Syntax check should explicitly cover both Molecule scenarios.

molecule syntax without flags targets only the default scenario; the proxmox scenario syntax remains unchecked. Both scenarios must be validated. Use --scenario-name to explicitly run syntax for each scenario, or use --all to run for all discovered scenarios.

Suggested change
      - name: Run molecule syntax
        run: molecule syntax
+      - name: Run molecule syntax (all scenarios)
+        run: |
+          molecule syntax --scenario-name default
+          molecule syntax --scenario-name proxmox

Ref: https://molecule.readthedocs.io/usage/

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Run molecule syntax
run: molecule syntax
- name: Run molecule syntax
run: molecule syntax
- name: Run molecule syntax (all scenarios)
run: |
molecule syntax --scenario-name default
molecule syntax --scenario-name proxmox
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/02_syntax_check.yml around lines 33 - 34, The workflow
step labeled "Run molecule syntax" currently runs only "molecule syntax" which
validates the default scenario only; update that step to explicitly validate all
scenarios by replacing the command with either "molecule syntax --all" or run
two commands such as "molecule syntax --scenario-name default" and "molecule
syntax --scenario-name proxmox" so both the default and proxmox scenarios are
checked (reference the step name "Run molecule syntax" and the command "molecule
syntax").

12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@

# Custom rules (everything added below won't be overriden by 'Generate .gitignore File' if you use 'Update' option)

### act (local GitHub Actions runner) ###
.github/act/*.secrets
.github/act/*.env
.env
.env.*

### Python ###
__pycache__/
*.py[cod]

*.retry
*.out
*.html
Expand All @@ -54,3 +64,5 @@
*/.cache*
.cache*
.vscode/
Claude.md
.claude/
34 changes: 34 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,39 @@
# Changelog "prepare_linux_desktop" ansible role

## Version 1.2.0 [2025-12-27]

- [BUGFIX] fixed `palemoon` repository to use home:stevenpusser instead of home:stevenpusser:palemoon-GTK3
- [BUGFIX] fixed `palemoon` repository URL to xUbuntu_24.04 (was xUbuntu_23.10)
- [BUGFIX] disabled invalid `helm-stable-debian` repository (Helm installed via HashiCorp repo)
- [BUGFIX] fixed `gping` download filename format (gping_1.20.1_linux_x86_64.tar.gz)
- [DEB] upgraded `ipscan` to version 3.9.3
- [DEB] upgraded `tabby` to version 1.0.228
- [DEB] upgraded `minikube` to version 1.37.0
- [DEB] upgraded `balena-etcher` to version 2.1.4
- [DEB] upgraded `kube-bench` to version 0.14.1
- [DEB] upgraded `syft` to version 1.33.0
- [DEB] upgraded `steampipe` to version 2.2.0
- [DEB] upgraded `rambox` to version 2.5.2
- [DEB] upgraded `k9s` to version 0.50.12
- [DEB] upgraded `sops` to version 3.11.0
- [DEB] upgraded `atuin` to version 18.10.0
- [PACKAGES] upgraded `kubeconform` to version 0.7.0
- [PACKAGES] upgraded `tflint` to version 0.60.1
- [PACKAGES] upgraded `nerdctl` to version 2.1.1
- [PACKAGES] upgraded `kustomize` to version 5.8.0
- [PACKAGES] upgraded `kubent` to stable version 0.7.3
- [PACKAGES] upgraded `act` to version 0.2.83
- [PACKAGES] upgraded `eza` to version 0.23.4
- [PACKAGES] upgraded `polaris` to version 9.6.3
- [PACKAGES] upgraded `gping` to version 1.20.1
- [PACKAGES] upgraded `lazydocker` to version 0.24.3
- [PACKAGES] upgraded `k3s` to version 1.34.2+k3s1
- [PACKAGES] upgraded `k3d` to version 5.8.3
- [PACKAGES] upgraded `hadolint` to version 2.14.0
- [PACKAGES] upgraded `yq` to version 4.49.1
- [PACKAGES] upgraded `kubeswitch` to version 0.9.3
- [PACKAGES] upgraded `argocd` to version 2.14.20

## Version 1.1.1 [2024-11-17]

- [PACKAGES] added `shfmt` -[https://github.com/patrickvane/shfmt](https://github.com/patrickvane/shfmt)
Expand Down
8 changes: 8 additions & 0 deletions molecule/default/converge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
- name: Converge
hosts: all
gather_facts: true
roles:
- role: pld
vars:
pld_active_user: "{{ ansible_user_id | default('ci') }}"
27 changes: 27 additions & 0 deletions molecule/default/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
dependency:
name: galaxy
options:
requirements-file: requirements.yml
ignore-certs: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# Check if the file exists and examine its content
if [ -f "molecule/default/molecule.yml" ]; then
  echo "=== File found ==="
  wc -l molecule/default/molecule.yml
  echo -e "\n=== Full content with line numbers ==="
  cat -n molecule/default/molecule.yml
else
  echo "File not found"
  find . -name "molecule.yml" -type f 2>/dev/null
fi

Repository: marcinbojko/pld

Length of output: 791


🏁 Script executed:

# Check repository metadata and docs
ls -la | head -20
echo -e "\n=== Checking for README or docs ==="
find . -maxdepth 2 -name "README*" -o -name "CONTRIBUTING*" | head -5
echo -e "\n=== Checking git status ==="
git log --oneline -5 2>/dev/null || echo "No git history available"
echo -e "\n=== Checking if this is a CI/CD file or test file ==="
find . -name ".github" -o -name ".gitlab-ci.yml" -o -name ".travis.yml" -o -name "tox.ini" 2>/dev/null | head -5

Repository: marcinbojko/pld

Length of output: 1381


🏁 Script executed:

# Check README for project context (first 100 lines)
echo "=== README.md (first 100 lines) ==="
head -100 README.md

echo -e "\n=== .gitlab-ci.yml ==="
cat .gitlab-ci.yml

Repository: marcinbojko/pld

Length of output: 6170


🏁 Script executed:

# Check if there's any documentation about why ignore-certs is needed
echo "=== Checking requirements.yml ==="
cat requirements.yml

echo -e "\n=== Checking for any comments or docs about molecule setup ==="
find molecule -type f | head -20
cat molecule/default/molecule.yml

echo -e "\n=== Check git history for ignore-certs introduction ==="
git log --oneline --all -- molecule/default/molecule.yml | head -10
git log -p --follow -- molecule/default/molecule.yml | head -50

Repository: marcinbojko/pld

Length of output: 1019


Disable TLS certificate verification bypass in Molecule test configuration.

The ignore-certs: true setting on line 6 disables TLS verification for Ansible Galaxy collection downloads. Official collections from secure sources do not require this override, and it weakens supply-chain security even in test environments. Change to ignore-certs: false.

Suggested change
-    ignore-certs: true
+    ignore-certs: false

Ref: https://docs.ansible.com/ansible/latest/cli/ansible-galaxy.html

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
ignore-certs: true
ignore-certs: false
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@molecule/default/molecule.yml` at line 6, Update the Molecule configuration
to stop bypassing TLS verification: change the ignore-certs setting in
molecule.yml from true to false so Ansible Galaxy collection downloads validate
certificates; locate the ignore-certs key in the top-level config block (symbol:
ignore-certs) and set it to false, then run your Molecule test/playbook to
confirm collection installs still succeed with proper TLS validation.

ignore-errors: true

driver:
name: default

platforms:
- name: instance

provisioner:
name: ansible
env:
ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/roles"
config_options:
defaults:
interpreter_python: auto_silent
any_errors_fatal: false
playbooks:
converge: converge.yml

verifier:
name: ansible
33 changes: 33 additions & 0 deletions molecule/proxmox/create.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
- name: Create Proxmox snapshots before converge
hosts: localhost
gather_facts: false
vars:
snapshot_name: "molecule-before"
proxmox_api: &proxmox_api
api_host: "{{ lookup('env', 'PROXMOX_HOST') }}"
api_port: "{{ lookup('env', 'PROXMOX_PORT') | int }}"
api_user: "{{ lookup('env', 'PROXMOX_API_USER') }}"
api_token_id: "{{ lookup('env', 'PROXMOX_TOKEN_ID') }}"
api_token_secret: "{{ lookup('env', 'PROXMOX_TOKEN_SECRET') }}"
validate_certs: false
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

fd -type f -name "create.yml" | grep proxmox

Repository: marcinbojko/pld

Length of output: 230


🏁 Script executed:

fd -type f -name "destroy.yml" | grep proxmox

Repository: marcinbojko/pld

Length of output: 230


🏁 Script executed:

git ls-files | grep -E "proxmox.*\.yml"

Repository: marcinbojko/pld

Length of output: 146


🏁 Script executed:

cat -n molecule/proxmox/create.yml

Repository: marcinbojko/pld

Length of output: 1341


🏁 Script executed:

cat -n molecule/proxmox/destroy.yml

Repository: marcinbojko/pld

Length of output: 1223


Enable Proxmox API certificate verification by default.

Both molecule/proxmox/create.yml (line 13) and molecule/proxmox/destroy.yml (line 13) have validate_certs: false, which disables TLS trust checks on API calls. This should default to true and be overrideable when needed.

Suggested changes:

molecule/proxmox/create.yml
-      validate_certs: false
+      validate_certs: "{{ lookup('env', 'PROXMOX_VALIDATE_CERTS') | default('true') | bool }}"
molecule/proxmox/destroy.yml
-      validate_certs: false
+      validate_certs: "{{ lookup('env', 'PROXMOX_VALIDATE_CERTS') | default('true') | bool }}"

Ref: https://docs.ansible.com/ansible/latest/collections/community/proxmox/proxmox_snap_module.html

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
validate_certs: false
validate_certs: "{{ lookup('env', 'PROXMOX_VALIDATE_CERTS') | default('true') | bool }}"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@molecule/proxmox/create.yml` at line 13, Update the Proxmox molecule
playbooks so TLS certificate verification is enabled by default: change the
validate_certs key from false to a parameterized value that defaults to true
(e.g., validate_certs: "{{ proxmox_validate_certs | default(true) }}") in both
create.yml and destroy.yml so callers can still override by setting
proxmox_validate_certs when necessary; ensure the key name validate_certs is
used exactly as shown.


tasks:
- name: Remove stale molecule snapshot if present
community.proxmox.proxmox_snap:
<<: *proxmox_api
vmid: "{{ item }}"
snapname: "{{ snapshot_name }}"
state: absent
loop: [153, 167]
ignore_errors: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

find . -name "create.yml" -path "*/proxmox/*" | head -20

Repository: marcinbojko/pld

Length of output: 89


🏁 Script executed:

cat -n ./molecule/proxmox/create.yml

Repository: marcinbojko/pld

Length of output: 1341


🏁 Script executed:

# Check if there are other similar Ansible patterns in the repo to understand error handling practices
rg "ignore_errors" --type yaml | head -20

Repository: marcinbojko/pld

Length of output: 1287


🏁 Script executed:

# Check for failed_when patterns in similar contexts
rg "failed_when" --type yaml -A 1 -B 1 | head -40

Repository: marcinbojko/pld

Length of output: 2173


Handle only the "snapshot missing" error case explicitly instead of suppressing all errors.

The ignore_errors: true on line 23 hides authentication failures, connectivity issues, and API errors that could leave the VMs in an invalid state before the snapshot creation task runs. Since the task name indicates the snapshot may not exist, use failed_when to only ignore the snapshot-not-found case:

failed_when: false

or with specific error checking:

register: snapshot_result
failed_when: snapshot_result.failed and "snapshot does not exist" not in snapshot_result.msg | default("")
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@molecule/proxmox/create.yml` at line 23, Replace the blanket ignore_errors:
true on the snapshot creation task with targeted failure-handling: remove
ignore_errors, add register: snapshot_result to capture the task result, and add
a failed_when that only suppresses failures when the error indicates the
snapshot is missing (e.g., failed_when: snapshot_result.failed and "snapshot
does not exist" not in snapshot_result.msg | default("")). This ensures
authentication, connectivity, or API errors still fail the play while only the
"snapshot missing" case is ignored.


- name: Create snapshot
community.proxmox.proxmox_snap:
<<: *proxmox_api
vmid: "{{ item }}"
snapname: "{{ snapshot_name }}"
description: "Created by molecule before converge"
state: present
timeout: 120
loop: [153, 167]
31 changes: 31 additions & 0 deletions molecule/proxmox/destroy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
- name: Rollback Proxmox snapshots after converge
hosts: localhost
gather_facts: false
vars:
snapshot_name: "molecule-before"
proxmox_api: &proxmox_api
api_host: "{{ lookup('env', 'PROXMOX_HOST') }}"
api_port: "{{ lookup('env', 'PROXMOX_PORT') | int }}"
api_user: "{{ lookup('env', 'PROXMOX_API_USER') }}"
api_token_id: "{{ lookup('env', 'PROXMOX_TOKEN_ID') }}"
api_token_secret: "{{ lookup('env', 'PROXMOX_TOKEN_SECRET') }}"
validate_certs: false

tasks:
- name: Rollback to snapshot
community.proxmox.proxmox_snap:
<<: *proxmox_api
vmid: "{{ item }}"
snapname: "{{ snapshot_name }}"
state: rollback
timeout: 120
loop: [153, 167]

- name: Delete snapshot
community.proxmox.proxmox_snap:
<<: *proxmox_api
vmid: "{{ item }}"
snapname: "{{ snapshot_name }}"
state: absent
loop: [153, 167]
46 changes: 46 additions & 0 deletions molecule/proxmox/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
dependency:
name: galaxy
options:
requirements-file: requirements.yml
ignore-certs: true
ignore-errors: true

driver:
name: default

platforms:
- name: mint22-0
- name: mint22-2

provisioner:
name: ansible
env:
ANSIBLE_ROLES_PATH: "${MOLECULE_PROJECT_DIRECTORY}/roles"
config_options:
defaults:
interpreter_python: auto_silent
any_errors_fatal: false
host_key_checking: false
connection_options:
ansible_user: "${PROXMOX_VM_USER}"
ansible_password: "${PROXMOX_VM_PASSWORD}"
ansible_become: true
ansible_become_password: "${PROXMOX_VM_PASSWORD}"
inventory:
hosts:
all:
hosts:
mint22-0:
ansible_host: "${PROXMOX_VM_167_HOST}"
proxmox_vmid: 167
mint22-2:
ansible_host: "${PROXMOX_VM_153_HOST}"
proxmox_vmid: 153
playbooks:
create: create.yml
destroy: destroy.yml
converge: ../default/converge.yml

verifier:
name: ansible
7 changes: 7 additions & 0 deletions molecule/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ansible-core>=2.19
molecule>=25.7
molecule-plugins>=25.8
ansible-lint>=25.12
yamllint>=1.37
proxmoxer>=2.0
requests>=2.31
1 change: 1 addition & 0 deletions requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ collections:
- name: ansible.posix
- name: community.general
- name: community.crypto
- name: community.proxmox
1 change: 1 addition & 0 deletions roles/pld/handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
---
Loading
Loading