├── .ansible-lint ├── .devcontainer ├── .gitignore └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github ├── dependabot.yml └── workflows │ ├── ci.yml │ └── release.yml ├── .gitignore ├── .python-version ├── .yamllint ├── LICENSE ├── README.md ├── defaults └── main.yml ├── handlers └── main.yml ├── meta └── main.yml ├── molecule ├── debian-max-java-max-lts-offline │ ├── INSTALL.rst │ └── molecule.yml ├── debian-max-java-min-offline │ ├── INSTALL.rst │ └── molecule.yml ├── debian-min-java-max-lts-online │ ├── INSTALL.rst │ └── molecule.yml ├── debian-min-java-min-online │ ├── INSTALL.rst │ └── molecule.yml ├── default │ ├── INSTALL.rst │ └── molecule.yml ├── fedora-java-min-online │ ├── INSTALL.rst │ └── molecule.yml ├── java-max-lts-offline │ └── converge.yml ├── java-max-lts-online │ └── converge.yml ├── java-max-lts │ └── tests │ │ ├── conftest.py │ │ └── test_role.py ├── java-max-non-lts-offline │ └── converge.yml ├── java-max-non-lts-online │ └── converge.yml ├── java-max-non-lts │ └── tests │ │ ├── conftest.py │ │ └── test_role.py ├── java-min-offline │ └── converge.yml ├── java-min-online │ └── converge.yml ├── java-min │ └── tests │ │ ├── conftest.py │ │ └── test_role.py ├── java-old-lts-offline │ └── converge.yml ├── java-old-lts-online │ └── converge.yml ├── java-old-lts │ └── tests │ │ ├── conftest.py │ │ └── test_role.py ├── opensuse-java-min-online │ ├── INSTALL.rst │ ├── collections.yml │ └── molecule.yml ├── rocky-java-max-lts-offline │ ├── INSTALL.rst │ └── molecule.yml ├── rocky-java-min-offline │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-max-java-max-lts-offline │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-max-java-max-non-lts-offline │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-max-java-min-offline │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-max-java-old-lts-offline │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-min-java-max-lts-online │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-min-java-max-non-lts-online │ ├── INSTALL.rst │ └── molecule.yml ├── ubuntu-min-java-min-online │ ├── INSTALL.rst │ └── molecule.yml └── ubuntu-min-java-old-lts-online │ ├── INSTALL.rst │ └── molecule.yml ├── requirements ├── ansible-max.in ├── ansible-max.txt ├── ansible-min.in ├── ansible-min.txt ├── compile.sh ├── dev.in ├── dev.txt ├── lint.in ├── lint.txt ├── molecule.in ├── molecule.txt ├── tox.in └── tox.txt ├── tasks ├── adoptium-copy-local-jdk.yml ├── adoptium-query.yml ├── adoptium.yml ├── main.yml └── write-environment-config.yml ├── templates ├── facts.j2 └── java.sh.j2 ├── tox.ini └── vars ├── architecture ├── default.yml └── x64.yml ├── main.yml └── packages ├── apt.yml ├── default.yml ├── dnf.yml ├── dnf5.yml ├── yum.yml └── zypper.yml /.ansible-lint: -------------------------------------------------------------------------------- 1 | skip_list: 2 | - '106' # Role name {} does not match ``^[a-z][a-z0-9_]+$`` pattern 3 | exclude_paths: 4 | - .tox/ 5 | - .venv/ 6 | -------------------------------------------------------------------------------- /.devcontainer/.gitignore: -------------------------------------------------------------------------------- 1 | .devpod-internal 2 | -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 | // README at: https://github.com/devcontainers/templates/tree/main/src/python 3 | { 4 | "name": "ansible-role-golang", 5 | "image": "mcr.microsoft.com/devcontainers/python:3.12", 6 | "features": { 7 | "ghcr.io/devcontainers/features/common-utils:2": { 8 | "installZsh": true, 9 | "configureZshAsDefaultShell": true, 10 | "installOhMyZsh": true 11 | }, 12 | "ghcr.io/devcontainers/features/docker-in-docker:2": {}, 13 | "ghcr.io/devcontainers/features/github-cli:1": {}, 14 | "ghcr.io/devcontainers-contrib/features/apt-get-packages:1": { 15 | "packages": "fzf grc zoxide" 16 | }, 17 | "ghcr.io/devcontainers-contrib/features/fd:1": {}, 18 | "ghcr.io/devcontainers-contrib/features/ripgrep:1": {}, 19 | "ghcr.io/devcontainers-contrib/features/starship:1": {}, 20 | "ghcr.io/devcontainers-contrib/features/zsh-plugins:0": { 21 | "plugins": "autopep8 dirhistory docker fd fzf git-escape-magic gh git grc pip pipenv ripgrep starship sudo zoxide zsh-autosuggestions zsh-syntax-highlighting", 22 | "omzPlugins": "https://github.com/zsh-users/zsh-autosuggestions https://github.com/zsh-users/zsh-syntax-highlighting.git" 23 | } 24 | }, 25 | "customizations": { 26 | "vscode": { 27 | "extensions": [ 28 | "DavidAnson.vscode-markdownlint", 29 | "donjayamanne.githistory", 30 | "EditorConfig.EditorConfig", 31 | "github.vscode-github-actions", 32 | "GitHub.vscode-pull-request-github", 33 | "ldez.ignore-files", 34 | "me-dutour-mathieu.vscode-github-actions", 35 | "oderwat.indent-rainbow", 36 | "redhat.ansible", 37 | "streetsidesoftware.code-spell-checker", 38 | "wholroyd.jinja" 39 | ] 40 | } 41 | }, 42 | "remoteEnv": { 43 | "PATH": "/home/vscode/.local/bin:${containerEnv:PATH}" 44 | }, 45 | "postCreateCommand": "pip3 install --user -r requirements/dev.txt" 46 | } 47 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Defaults for all editor files 7 | [*] 8 | insert_final_newline = true 9 | indent_style = space 10 | indent_size = 4 11 | trim_trailing_whitespace = true 12 | 13 | # Files with a smaller indent 14 | [*.{md,yml}] 15 | indent_size = 2 16 | 17 | # Ansible Lint 18 | [.ansible-lint] 19 | indent_size = 2 20 | 21 | # Jinja2 template files 22 | [*.j2] 23 | end_of_line = lf 24 | 25 | # Devcontainer config 26 | [devcontainer.json] 27 | indent_style = tab 28 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | .gitignore text 7 | .gitattributes text 8 | .python-version text 9 | *.xml text 10 | *.yml text 11 | *.yaml text 12 | *.json text 13 | *.txt text 14 | *.md text 15 | *.htm text 16 | *.html text 17 | *.xhtml text 18 | *.js text 19 | *.ts text 20 | *.css text 21 | *.less text 22 | *.scss text 23 | *.cfg text 24 | *.in text 25 | *.ini text 26 | LICENSE text 27 | 28 | # Declare files that will always have CRLF line endings on checkout. 29 | *.bat text eol=crlf 30 | *.cmd text eol=crlf 31 | 32 | # Declare files that will always have LF line endings on checkout. 33 | *.sh text eol=lf 34 | *.service eol=lf 35 | *.conf eol=lf 36 | *.desktop eol=lf 37 | *.j2 eol=lf 38 | 39 | # Denote all files that are truly binary and should not be modified. 40 | *.png binary 41 | *.jpg binary 42 | *.jpeg binary 43 | *.gif binary 44 | *.eot binary 45 | *.tff binary 46 | *.woff binary 47 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: "/" 5 | schedule: 6 | interval: weekly 7 | day: saturday 8 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | - develop 8 | pull_request: {} 9 | 10 | env: 11 | PY_COLORS: '1' 12 | 13 | jobs: 14 | lint: 15 | name: Lint 16 | runs-on: ubuntu-24.04 17 | 18 | steps: 19 | - name: Checkout 20 | uses: actions/checkout@v4 21 | 22 | - name: Set up Python 23 | id: setup-python 24 | uses: actions/setup-python@v5 25 | with: 26 | python-version-file: '.python-version' 27 | 28 | - name: Tox cache 29 | id: tox-cache 30 | uses: actions/cache@v4 31 | with: 32 | path: ~/.cache/pip 33 | key: tox-${{ hashFiles('requirements/tox.txt') }}-py${{ steps.setup-python.outputs.python-version}} 34 | 35 | - name: Lint cache 36 | id: lint-cache 37 | uses: actions/cache@v4 38 | with: 39 | path: .tox 40 | key: lint-${{ hashFiles('requirements/lint.txt') }}-py${{ steps.setup-python.outputs.python-version}} 41 | 42 | - name: Install tox 43 | run: pip3 install --no-compile -r requirements/tox.txt 44 | 45 | - name: Lint 46 | run: tox --colored=yes run -e lint 47 | 48 | - name: Compact lint cache 49 | if: steps.lint-cache.outputs.cache-hit != 'true' 50 | run: find .tox -name '__pycache__' -exec rm -rf {} + 51 | 52 | - name: Compact tox cache 53 | if: steps.tox-cache.outputs.cache-hit != 'true' 54 | run: find ~/.cache/pip -name '__pycache__' -exec rm -rf {} + 55 | 56 | test: 57 | name: Molecule test 58 | runs-on: ubuntu-24.04 59 | 60 | strategy: 61 | max-parallel: 3 62 | matrix: 63 | ansible-version: 64 | - max 65 | molecule-scenario: 66 | - ubuntu-min-java-max-lts-online 67 | # - ubuntu-min-java-max-non-lts-online 68 | # - ubuntu-min-java-old-lts-online 69 | - ubuntu-max-java-min-offline 70 | - ubuntu-max-java-max-lts-offline 71 | - ubuntu-max-java-max-non-lts-offline 72 | - ubuntu-max-java-old-lts-offline 73 | # - debian-max-java-min-offline 74 | - debian-max-java-max-lts-offline 75 | # - rocky-java-min-offline 76 | - rocky-java-max-lts-offline 77 | - fedora-java-min-online 78 | - opensuse-java-min-online 79 | include: 80 | - ansible-version: min 81 | molecule-scenario: ubuntu-min-java-min-online 82 | 83 | steps: 84 | - name: Checkout 85 | uses: actions/checkout@v4 86 | 87 | - name: Set up Python 88 | id: setup-python 89 | uses: actions/setup-python@v5 90 | with: 91 | python-version-file: '.python-version' 92 | 93 | - name: Tox cache 94 | id: tox-cache 95 | uses: actions/cache@v4 96 | with: 97 | path: ~/.cache/pip 98 | key: tox-${{ hashFiles('requirements/tox.txt') }}-py${{ steps.setup-python.outputs.python-version}} 99 | 100 | - name: Molecule cache 101 | id: molecule-cache 102 | uses: actions/cache@v4 103 | with: 104 | path: .tox 105 | key: molecule-${{ hashFiles(format('requirements/ansible-{0}.txt', matrix.ansible-version)) }}-py${{ steps.setup-python.outputs.python-version}} 106 | 107 | - name: Install tox 108 | run: pip3 install --no-compile -r requirements/tox.txt 109 | 110 | - name: Login to Docker Hub 111 | if: '!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository' 112 | uses: docker/login-action@v3 113 | with: 114 | username: ${{ secrets.DOCKERHUB_USERNAME }} 115 | password: ${{ secrets.DOCKERHUB_TOKEN }} 116 | 117 | - name: Molecule test 118 | run: tox --colored=yes run -e ansible-${{ matrix.ansible-version }} -- --scenario-name=${{ matrix.molecule-scenario }} 119 | 120 | - name: Compact Molecule cache 121 | if: steps.molecule-cache.outputs.cache-hit != 'true' 122 | run: find .tox -name '__pycache__' -exec rm -rf {} + 123 | 124 | - name: Compact tox cache 125 | if: steps.tox-cache.outputs.cache-hit != 'true' 126 | run: find ~/.cache/pip -name '__pycache__' -exec rm -rf {} + 127 | 128 | test-arm: 129 | name: Molecule test ARM 130 | runs-on: ubuntu-24.04-arm 131 | 132 | strategy: 133 | max-parallel: 3 134 | matrix: 135 | ansible-version: 136 | - max 137 | molecule-scenario: 138 | # - debian-min-java-min-online 139 | - debian-min-java-max-lts-online 140 | 141 | steps: 142 | - name: Checkout 143 | uses: actions/checkout@v4 144 | 145 | - name: Set up Python 146 | id: setup-python 147 | uses: actions/setup-python@v5 148 | with: 149 | python-version-file: '.python-version' 150 | 151 | - name: Tox cache 152 | id: tox-cache 153 | uses: actions/cache@v4 154 | with: 155 | path: ~/.cache/pip 156 | key: tox-${{ hashFiles('requirements/tox.txt') }}-py${{ steps.setup-python.outputs.python-version}} 157 | 158 | - name: Molecule cache 159 | id: molecule-cache 160 | uses: actions/cache@v4 161 | with: 162 | path: .tox 163 | key: molecule-${{ hashFiles(format('requirements/ansible-{0}.txt', matrix.ansible-version)) }}-py${{ steps.setup-python.outputs.python-version}} 164 | 165 | - name: Install tox 166 | run: pip3 install --no-compile -r requirements/tox.txt 167 | 168 | - name: Login to Docker Hub 169 | if: '!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository' 170 | uses: docker/login-action@v3 171 | with: 172 | username: ${{ secrets.DOCKERHUB_USERNAME }} 173 | password: ${{ secrets.DOCKERHUB_TOKEN }} 174 | 175 | - name: Molecule test 176 | run: tox --colored=yes run -e ansible-${{ matrix.ansible-version }} -- --scenario-name=${{ matrix.molecule-scenario }} 177 | 178 | - name: Compact Molecule cache 179 | if: steps.molecule-cache.outputs.cache-hit != 'true' 180 | run: find .tox -name '__pycache__' -exec rm -rf {} + 181 | 182 | - name: Compact tox cache 183 | if: steps.tox-cache.outputs.cache-hit != 'true' 184 | run: find ~/.cache/pip -name '__pycache__' -exec rm -rf {} + 185 | 186 | test-all: 187 | if: ${{ always() }} 188 | name: Test (matrix) 189 | runs-on: ubuntu-24.04 190 | needs: 191 | - lint 192 | - test 193 | - test-arm 194 | steps: 195 | - name: Check test matrix status 196 | run: "[[ '${{ needs.test.result }}' == 'success' ]] || exit 1" 197 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | 8 | jobs: 9 | release: 10 | name: Release 11 | uses: gantsign/workflows/.github/workflows/ansible-galaxy-import.yml@v1 12 | secrets: inherit 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/windows,linux,osx,vim,emacs,intellij,eclipse,visualstudiocode,ansible 2 | 3 | ### Windows ### 4 | # Windows image file caches 5 | Thumbs.db 6 | ehthumbs.db 7 | 8 | # Folder config file 9 | Desktop.ini 10 | 11 | # Recycle Bin used on file shares 12 | $RECYCLE.BIN/ 13 | 14 | # Windows Installer files 15 | *.cab 16 | *.msi 17 | *.msm 18 | *.msp 19 | 20 | # Windows shortcuts 21 | *.lnk 22 | 23 | 24 | ### Linux ### 25 | *~ 26 | 27 | # temporary files which can be created if a process still has a handle open of a deleted file 28 | .fuse_hidden* 29 | 30 | # KDE directory preferences 31 | .directory 32 | 33 | # Linux trash folder which might appear on any partition or disk 34 | .Trash-* 35 | 36 | 37 | ### OSX ### 38 | *.DS_Store 39 | .AppleDouble 40 | .LSOverride 41 | 42 | # Icon must end with two \r 43 | Icon 44 | 45 | 46 | # Thumbnails 47 | ._* 48 | 49 | # Files that might appear in the root of a volume 50 | .DocumentRevisions-V100 51 | .fseventsd 52 | .Spotlight-V100 53 | .TemporaryItems 54 | .Trashes 55 | .VolumeIcon.icns 56 | .com.apple.timemachine.donotpresent 57 | 58 | # Directories potentially created on remote AFP share 59 | .AppleDB 60 | .AppleDesktop 61 | Network Trash Folder 62 | Temporary Items 63 | .apdisk 64 | 65 | 66 | ### Vim ### 67 | # swap 68 | [._]*.s[a-w][a-z] 69 | [._]s[a-w][a-z] 70 | # session 71 | Session.vim 72 | # temporary 73 | .netrwhist 74 | *~ 75 | # auto-generated tag files 76 | tags 77 | 78 | 79 | ### Emacs ### 80 | # -*- mode: gitignore; -*- 81 | *~ 82 | \#*\# 83 | /.emacs.desktop 84 | /.emacs.desktop.lock 85 | *.elc 86 | auto-save-list 87 | tramp 88 | .\#* 89 | 90 | # Org-mode 91 | .org-id-locations 92 | *_archive 93 | 94 | # flymake-mode 95 | *_flymake.* 96 | 97 | # eshell files 98 | /eshell/history 99 | /eshell/lastdir 100 | 101 | # elpa packages 102 | /elpa/ 103 | 104 | # reftex files 105 | *.rel 106 | 107 | # AUCTeX auto folder 108 | /auto/ 109 | 110 | # cask packages 111 | .cask/ 112 | dist/ 113 | 114 | # Flycheck 115 | flycheck_*.el 116 | 117 | # server auth directory 118 | /server/ 119 | 120 | # projectiles files 121 | .projectile 122 | 123 | ### Intellij ### 124 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 125 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 126 | 127 | # User-specific stuff: 128 | .idea/workspace.xml 129 | .idea/tasks.xml 130 | .idea/dictionaries 131 | .idea/vcs.xml 132 | .idea/jsLibraryMappings.xml 133 | 134 | # Sensitive or high-churn files: 135 | .idea/dataSources.ids 136 | .idea/dataSources.xml 137 | .idea/dataSources.local.xml 138 | .idea/sqlDataSources.xml 139 | .idea/dynamic.xml 140 | .idea/uiDesigner.xml 141 | 142 | # Gradle: 143 | .idea/gradle.xml 144 | .idea/libraries 145 | 146 | # Mongo Explorer plugin: 147 | .idea/mongoSettings.xml 148 | 149 | ## File-based project format: 150 | *.iws 151 | 152 | ## Plugin-specific files: 153 | 154 | # IntelliJ 155 | /out/ 156 | 157 | # mpeltonen/sbt-idea plugin 158 | .idea_modules/ 159 | 160 | # JIRA plugin 161 | atlassian-ide-plugin.xml 162 | 163 | # Crashlytics plugin (for Android Studio and IntelliJ) 164 | com_crashlytics_export_strings.xml 165 | crashlytics.properties 166 | crashlytics-build.properties 167 | fabric.properties 168 | 169 | ### Intellij Patch ### 170 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 171 | 172 | # *.iml 173 | # modules.xml 174 | # .idea/misc.xml 175 | # *.ipr 176 | 177 | 178 | ### Eclipse ### 179 | 180 | .metadata 181 | bin/ 182 | tmp/ 183 | *.tmp 184 | *.bak 185 | *.swp 186 | *~.nib 187 | local.properties 188 | .settings/ 189 | .loadpath 190 | .recommenders 191 | 192 | # Eclipse Core 193 | .project 194 | 195 | # External tool builders 196 | .externalToolBuilders/ 197 | 198 | # Locally stored "Eclipse launch configurations" 199 | *.launch 200 | 201 | # PyDev specific (Python IDE for Eclipse) 202 | *.pydevproject 203 | 204 | # CDT-specific (C/C++ Development Tooling) 205 | .cproject 206 | 207 | # JDT-specific (Eclipse Java Development Tools) 208 | .classpath 209 | 210 | # Java annotation processor (APT) 211 | .factorypath 212 | 213 | # PDT-specific (PHP Development Tools) 214 | .buildpath 215 | 216 | # sbteclipse plugin 217 | .target 218 | 219 | # Tern plugin 220 | .tern-project 221 | 222 | # TeXlipse plugin 223 | .texlipse 224 | 225 | # STS (Spring Tool Suite) 226 | .springBeans 227 | 228 | # Code Recommenders 229 | .recommenders/ 230 | 231 | 232 | ### VisualStudioCode ### 233 | .vscode/* 234 | !.vscode/settings.json 235 | !.vscode/tasks.json 236 | !.vscode/launch.json 237 | 238 | 239 | ### Ansible ### 240 | *.retry 241 | 242 | #################### 243 | ### Custom rules ### 244 | #################### 245 | 246 | ### Molecule ### 247 | 248 | __pycache__ 249 | .cache 250 | .molecule 251 | /tests/files/* 252 | /molecule/*/files/* 253 | 254 | ### Tox ### 255 | .tox 256 | 257 | ### For development ### 258 | .venv 259 | -------------------------------------------------------------------------------- /.python-version: -------------------------------------------------------------------------------- 1 | 3.12 2 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | # Based on ansible-lint config 3 | extends: default 4 | 5 | rules: 6 | comments: 7 | # https://github.com/prettier/prettier/issues/6780 8 | min-spaces-from-content: 1 9 | # https://github.com/adrienverge/yamllint/issues/384 10 | comments-indentation: false 11 | document-start: disable 12 | # 160 chars was the default used by old E204 rule, but 13 | # you can easily change it or disable in your .yamllint file. 14 | line-length: 15 | max: 160 16 | # We are adding an extra space inside braces as that's how prettier does it 17 | # and we are trying not to fight other linters. 18 | braces: 19 | min-spaces-inside: 0 # yamllint defaults to 0 20 | max-spaces-inside: 1 # yamllint defaults to 0 21 | # key-duplicates: 22 | # forbid-duplicated-merge-keys: true # not enabled by default 23 | octal-values: 24 | forbid-implicit-octal: true # yamllint defaults to false 25 | forbid-explicit-octal: true # yamllint defaults to false 26 | # quoted-strings: 27 | # quote-type: double 28 | # required: only-when-needed 29 | truthy: 30 | allowed-values: ['true', 'false', 'on'] 31 | 32 | ignore: | 33 | .tox/ 34 | .venv/ 35 | venv 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 GantSign Ltd. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Ansible Role: Java 2 | ================== 3 | 4 | [![Tests](https://github.com/gantsign/ansible-role-java/workflows/Tests/badge.svg)](https://github.com/gantsign/ansible-role-java/actions?query=workflow%3ATests) 5 | [![Ansible Galaxy](https://img.shields.io/badge/ansible--galaxy-gantsign.java-blue.svg)](https://galaxy.ansible.com/gantsign/java) 6 | [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/gantsign/ansible-role-java/master/LICENSE) 7 | 8 | Role to install the Java JDK. 9 | 10 | Requirements 11 | ------------ 12 | 13 | * Ansible Core >= 2.17 14 | 15 | * Linux Distribution 16 | 17 | * Debian Family 18 | 19 | * Debian 20 | 21 | * Bullseye (11) 22 | * Bookworm (12) 23 | 24 | * Ubuntu 25 | 26 | * Jammy (22.04) 27 | * Noble (24.04) 28 | 29 | * RedHat Family 30 | 31 | * Rocky Linux 32 | 33 | * 9 34 | 35 | * Fedora 36 | 37 | * 41 38 | 39 | * SUSE Family 40 | 41 | * openSUSE 42 | 43 | * Tumbleweed 44 | 45 | * Note: other versions are likely to work but have not been tested. 46 | 47 | Role Variables 48 | -------------- 49 | 50 | The following variables will change the behavior of this role (default values 51 | are shown below): 52 | 53 | ```yaml 54 | # Java version number 55 | # Specify '8', '11', '17', '21' or '24' to get the latest patch version of that 56 | # release. 57 | java_version: '21.0.6+7' 58 | 59 | # Base installation directory for any Java distribution 60 | java_install_dir: '/opt/java' 61 | 62 | # Directory to store files downloaded for Java installation on the remote box 63 | java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}" 64 | 65 | # Location Java installations packages can be found on the local box 66 | # local packages will be uses in preference to downloading new packages. 67 | java_local_archive_dir: '{{ playbook_dir }}/files' 68 | 69 | # Wether to use installation packages in the local archive (if available) 70 | java_use_local_archive: true 71 | 72 | # If this is the default installation, profile scripts will be written to set 73 | # the JAVA_HOME environment variable and add the bin directory to the PATH 74 | # environment variable. 75 | java_is_default_installation: true 76 | 77 | # Name of the group of Ansible facts relating this Java installation. 78 | # 79 | # Override if you want use this role more than once to install multiple versions 80 | # of Java. 81 | # 82 | # e.g. java_fact_group_name: java_8 83 | # would change the Java home fact to: 84 | # ansible_local.java_8.general.home 85 | java_fact_group_name: java 86 | 87 | # The SHA-256 for the JDK redistributable 88 | java_redis_sha256sum: 89 | 90 | # Mirror location for JDK download (e.g. https://example.com/provisioning/files) 91 | java_redis_mirror: 92 | 93 | # File name for the JDK redistributable installation file 94 | java_redis_filename: 95 | 96 | # Timeout for JDK download response in seconds 97 | java_download_timeout_seconds: 600 98 | 99 | # The timeout for the Adoptium API 100 | java_api_timeout_seconds: 30 101 | ``` 102 | 103 | Example Playbooks 104 | ----------------- 105 | 106 | By default this role will install the latest LTS JDK version provided by 107 | Adoptium that has been tested and is known to work with this role: 108 | 109 | ```yaml 110 | - hosts: servers 111 | roles: 112 | - role: gantsign.java 113 | ``` 114 | 115 | You can install a specific version of the JDK by specifying the `java_version`. 116 | 117 | ```yaml 118 | - hosts: servers 119 | roles: 120 | - role: gantsign.java 121 | java_version: '8.0.442+6' 122 | ``` 123 | 124 | **Note:** with [curl](https://curl.haxx.se) and 125 | [jq](https://stedolan.github.io/jq) you can view the available versions by 126 | running the following command: 127 | 128 | ```bash 129 | for i in 24 21 17 11 8; do (curl --silent http \ 130 | "https://api.adoptium.net/v3/info/release_names?version=%5B$i,$(($i + 1)))\ 131 | &release_type=ga" | jq --raw-output '.releases[]' | sed -E 's/^jdk\-?//'); done 132 | ``` 133 | 134 | You can install the multiple versions of the JDK by using this role more than 135 | once: 136 | 137 | ```yaml 138 | - hosts: servers 139 | roles: 140 | - role: ansible-role-java 141 | java_version: '8' 142 | java_is_default_installation: false 143 | java_fact_group_name: java_8 144 | 145 | - role: ansible-role-java 146 | java_version: '11' 147 | java_is_default_installation: true 148 | java_fact_group_name: java 149 | ``` 150 | 151 | To perform an offline install, you need to specify a bit more information (i.e. 152 | `java_major_version`, `java_release_name`, `java_redis_filename` and 153 | `java_redis_sha256sum`). E.g. to perform an offline install of `11.0.26+4`: 154 | 155 | ```yaml 156 | # Before performing the offline install, download 157 | # `OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz` to 158 | # `{{ playbook_dir }}/files/` on the local machine. 159 | - hosts: servers 160 | roles: 161 | - role: gantsign.java 162 | java_major_version: '11' 163 | java_version: '11.0.26+4' 164 | java_release_name: 'jdk-11.0.26+4' 165 | java_redis_filename: 'OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz' 166 | java_redis_sha256sum: '7def4c5807b38ef1a7bb30a86572a795ca604127cc8d1f5b370abf23618104e6' 167 | ``` 168 | 169 | Role Facts 170 | ---------- 171 | 172 | This role exports the following Ansible facts for use by other roles: 173 | 174 | * `ansible_local.java.general.version` 175 | 176 | * e.g. `8u442` 177 | 178 | * `ansible_local.java.general.home` 179 | 180 | * e.g. `/opt/java/jdk8u442` 181 | 182 | Overriding `java_fact_group_name` will change the names of the facts e.g.: 183 | 184 | ```yaml 185 | java_fact_group_name: java_8 186 | ``` 187 | 188 | Would change the name of the facts to: 189 | 190 | * `ansible_local.java_8.general.version` 191 | * `ansible_local.java_8.general.home` 192 | 193 | More Roles From GantSign 194 | ------------------------ 195 | 196 | You can find more roles from GantSign on 197 | [Ansible Galaxy](https://galaxy.ansible.com/ui/standalone/namespaces/2463/). 198 | 199 | Development & Testing 200 | --------------------- 201 | 202 | This project uses the following tooling: 203 | * [Molecule](http://molecule.readthedocs.io/) for orchestrating test scenarios 204 | * [Testinfra](http://testinfra.readthedocs.io/) for testing the changes on the 205 | remote 206 | * [pytest](http://docs.pytest.org/) the testing framework 207 | * [Tox](https://tox.wiki/en/latest/) manages Python virtual 208 | environments for linting and testing 209 | * [pip-tools](https://github.com/jazzband/pip-tools) for managing dependencies 210 | 211 | A Visual Studio Code 212 | [Dev Container](https://code.visualstudio.com/docs/devcontainers/containers) is 213 | provided for developing and testing this role. 214 | 215 | License 216 | ------- 217 | 218 | MIT 219 | 220 | Author Information 221 | ------------------ 222 | 223 | John Freeman 224 | 225 | GantSign Ltd. 226 | Company No. 06109112 (registered in England) 227 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Java version number 4 | # Specify '8', '11', '17', '21' or '24' to get the latest patch version of that 5 | # release. 6 | java_version: '21.0.6+7' 7 | 8 | # Base installation directory for any Java distribution 9 | java_install_dir: '/opt/java' 10 | 11 | # Directory to store files downloaded for Java installation on the remote box 12 | java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}" 13 | 14 | # Location Java installations packages can be found on the local box 15 | # local packages will be uses in preference to downloading new packages. 16 | java_local_archive_dir: '{{ playbook_dir }}/files' 17 | 18 | # Wether to use installation packages in the local archive (if available) 19 | java_use_local_archive: true 20 | 21 | # If this is the default installation, profile scripts will be written to set 22 | # the JAVA_HOME environment variable and add the bin directory to the PATH 23 | # environment variable. 24 | java_is_default_installation: true 25 | 26 | # Name of the group of Ansible facts relating this Java installation. 27 | # 28 | # Override if you want use this role more than once to install multiple versions 29 | # of Java. 30 | # 31 | # e.g. java_fact_group_name: java_8 32 | # would change the Java home fact to: 33 | # ansible_local.java_8.general.home 34 | java_fact_group_name: java 35 | 36 | # The SHA-256 for the JDK redistributable 37 | java_redis_sha256sum: 38 | 39 | # Mirror location for JDK download (e.g. https://example.com/provisioning/files) 40 | java_redis_mirror: 41 | 42 | # File name for the JDK redistributable installation file 43 | java_redis_filename: 44 | 45 | # Timeout for JDK download response in seconds 46 | java_download_timeout_seconds: 600 47 | 48 | # The timeout for the Adoptium API 49 | java_api_timeout_seconds: 30 50 | -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # handlers file for java 3 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | author: John Freeman 4 | description: Role for installing the Java JDK. 5 | company: GantSign Ltd. 6 | license: MIT 7 | min_ansible_version: '2.17' 8 | platforms: 9 | - name: EL 10 | versions: 11 | - '9' 12 | - name: Fedora 13 | versions: 14 | - '41' 15 | - name: opensuse 16 | versions: 17 | - 'all' 18 | - name: Ubuntu 19 | versions: 20 | - jammy 21 | - noble 22 | - name: Debian 23 | versions: 24 | - bullseye 25 | - bookworm 26 | galaxy_tags: 27 | - java 28 | - jdk 29 | - openjdk 30 | - adoptium 31 | - temurin 32 | - development 33 | - web 34 | - system 35 | dependencies: [] 36 | -------------------------------------------------------------------------------- /molecule/debian-max-java-max-lts-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian-max-java-max-lts-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-debian-max-java-max-lts 12 | image: debian:12 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-lts-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/debian-max-java-min-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian-max-java-min-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-debian-max 12 | image: debian:12 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/debian-min-java-max-lts-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian-min-java-max-lts-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-debian-min-java-max-lts 12 | image: debian:11 13 | platform: linux/arm64/v8 14 | 15 | provisioner: 16 | name: ansible 17 | playbooks: 18 | converge: ../java-max-lts-online/converge.yml 19 | 20 | verifier: 21 | name: testinfra 22 | directory: ../java-max-lts/tests 23 | -------------------------------------------------------------------------------- /molecule/debian-min-java-min-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/debian-min-java-min-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-debian-min 12 | image: debian:11 13 | platform: linux/arm64/v8 14 | 15 | provisioner: 16 | name: ansible 17 | playbooks: 18 | converge: ../java-min-online/converge.yml 19 | 20 | verifier: 21 | name: testinfra 22 | directory: ../java-min/tests 23 | -------------------------------------------------------------------------------- /molecule/default/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | provisioner: 3 | name: ansible 4 | playbooks: 5 | converge: ../java-min-online/converge.yml 6 | 7 | dependency: 8 | name: galaxy 9 | 10 | driver: 11 | name: docker 12 | 13 | role_name_check: 2 14 | 15 | platforms: 16 | - name: ansible-role-java-default 17 | image: ubuntu:24.04 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/fedora-java-min-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/fedora-java-min-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-fedora 12 | image: fedora:41 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/java-max-lts-offline/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | - name: Create local archive directory 21 | ansible.builtin.file: 22 | state: directory 23 | mode: 'u=rwx,go=rx' 24 | dest: '{{ java_local_archive_dir }}' 25 | delegate_to: localhost 26 | 27 | - name: Download JDK for offline install 28 | ansible.builtin.get_url: 29 | url: "https://api.adoptium.net/v3/binary/version/{{ 'jdk-21.0.6+7' | urlencode }}/linux/x64/jdk/hotspot/normal/adoptium?project=jdk" # noqa 204 30 | dest: '{{ java_local_archive_dir }}/OpenJDK21-jdk_x64_linux_hotspot_21.0.6_7.tar.gz' 31 | force: false 32 | timeout: '{{ java_download_timeout_seconds }}' 33 | mode: 'u=rw,go=r' 34 | delegate_to: localhost 35 | 36 | roles: 37 | - role: ansible-role-java 38 | java_use_local_archive: true 39 | java_major_version: '21' 40 | java_version: '21.0.6+7' 41 | java_release_name: 'jdk-21.0.6+7' 42 | 43 | java_redis_filename: 'OpenJDK21-jdk_x64_linux_hotspot_21.0.6_7.tar.gz' 44 | java_redis_sha256sum: 'a2650fba422283fbed20d936ce5d2a52906a5414ec17b2f7676dddb87201dbae' 45 | 46 | post_tasks: 47 | - name: Verify java facts 48 | ansible.builtin.assert: 49 | that: 50 | - ansible_local.java.general.version is defined 51 | - ansible_local.java.general.home is defined 52 | 53 | - name: Install find - required for tests (dnf, zypper) 54 | ansible.builtin.package: 55 | name: findutils 56 | state: present 57 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 58 | -------------------------------------------------------------------------------- /molecule/java-max-lts-online/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | roles: 21 | - role: ansible-role-java 22 | java_use_local_archive: false 23 | 24 | post_tasks: 25 | - name: Verify java facts 26 | ansible.builtin.assert: 27 | that: 28 | - ansible_local.java.general.version is defined 29 | - ansible_local.java.general.home is defined 30 | 31 | - name: Install find - required for tests (dnf, zypper) 32 | ansible.builtin.package: 33 | name: findutils 34 | state: present 35 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 36 | -------------------------------------------------------------------------------- /molecule/java-max-lts/tests/conftest.py: -------------------------------------------------------------------------------- 1 | """PyTest Fixtures.""" 2 | from __future__ import absolute_import 3 | 4 | import os 5 | 6 | import pytest 7 | 8 | 9 | def pytest_runtest_setup(item): 10 | """Run tests only when under molecule with testinfra installed.""" 11 | try: 12 | import testinfra 13 | except ImportError: 14 | pytest.skip("Test requires testinfra", allow_module_level=True) 15 | if "MOLECULE_INVENTORY_FILE" in os.environ: 16 | pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( 17 | os.environ["MOLECULE_INVENTORY_FILE"] 18 | ).get_hosts("all") 19 | else: 20 | pytest.skip( 21 | "Test should run only from inside molecule.", 22 | allow_module_level=True) 23 | -------------------------------------------------------------------------------- /molecule/java-max-lts/tests/test_role.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import re 3 | 4 | 5 | def test_java(host): 6 | cmd = host.run('. /etc/profile && java -version') 7 | assert cmd.rc == 0 8 | m = re.search('(?:java|openjdk) version "([0-9]+)', cmd.stderr) 9 | assert m is not None 10 | java_version = m.group(1) 11 | assert '21' == java_version 12 | 13 | 14 | def test_javac(host): 15 | cmd = host.run('. /etc/profile && javac -version') 16 | assert cmd.rc == 0 17 | m = re.search('javac ([0-9]+)', cmd.stdout) 18 | assert m is not None 19 | java_version = m.group(1) 20 | assert '21' == java_version 21 | 22 | 23 | @pytest.mark.parametrize('version_dir_pattern', [ 24 | 'jdk-21(\\.[0-9]+){,3}(\\+[0-9]+)?$' 25 | ]) 26 | def test_java_installed(host, version_dir_pattern): 27 | 28 | java_home = host.check_output('find %s | grep --color=never -E %s', 29 | '/opt/java/', 30 | version_dir_pattern) 31 | 32 | java_exe = host.file(java_home + '/bin/java') 33 | 34 | assert java_exe.exists 35 | assert java_exe.is_file 36 | assert java_exe.user == 'root' 37 | assert java_exe.group == 'root' 38 | assert oct(java_exe.mode) == '0o755' 39 | 40 | 41 | @pytest.mark.parametrize('fact_group_name', [ 42 | 'java' 43 | ]) 44 | def test_facts_installed(host, fact_group_name): 45 | fact_file = host.file('/etc/ansible/facts.d/' + fact_group_name + '.fact') 46 | 47 | assert fact_file.exists 48 | assert fact_file.is_file 49 | assert fact_file.user == 'root' 50 | assert fact_file.group == 'root' 51 | assert oct(fact_file.mode) == '0o644' 52 | -------------------------------------------------------------------------------- /molecule/java-max-non-lts-offline/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | - name: Create local archive directory 21 | ansible.builtin.file: 22 | state: directory 23 | mode: 'u=rwx,go=rx' 24 | dest: '{{ java_local_archive_dir }}' 25 | delegate_to: localhost 26 | 27 | - name: Download JDK for offline install 28 | ansible.builtin.get_url: 29 | url: "https://api.adoptium.net/v3/binary/version/{{ 'jdk-24+36' | urlencode }}/linux/x64/jdk/hotspot/normal/adoptium?project=jdk" # noqa 204 30 | dest: '{{ java_local_archive_dir }}/OpenJDK23-jdk_x64_linux_hotspot_24_36.tar.gz' 31 | force: false 32 | timeout: '{{ java_download_timeout_seconds }}' 33 | mode: 'u=rw,go=r' 34 | delegate_to: localhost 35 | 36 | roles: 37 | - role: ansible-role-java 38 | java_use_local_archive: true 39 | java_major_version: '24' 40 | java_version: '24+36' 41 | java_release_name: 'jdk-24+36' 42 | java_redis_filename: 'OpenJDK23-jdk_x64_linux_hotspot_24_36.tar.gz' 43 | java_redis_sha256sum: 'c340dee97b6aa215d248bc196dcac5b56e7be9b5c5d45e691344d40d5d0b171d' 44 | 45 | post_tasks: 46 | - name: Verify java facts 47 | ansible.builtin.assert: 48 | that: 49 | - ansible_local.java.general.version is defined 50 | - ansible_local.java.general.home is defined 51 | 52 | - name: Install find - required for tests (dnf) 53 | ansible.builtin.package: 54 | name: findutils 55 | state: present 56 | when: ansible_pkg_mgr in ('dnf', 'dnf5') 57 | -------------------------------------------------------------------------------- /molecule/java-max-non-lts-online/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | roles: 21 | - role: ansible-role-java 22 | java_version: '24' 23 | java_use_local_archive: false 24 | 25 | post_tasks: 26 | - name: Verify java facts 27 | ansible.builtin.assert: 28 | that: 29 | - ansible_local.java.general.version is defined 30 | - ansible_local.java.general.home is defined 31 | 32 | - name: Install find - required for tests (dnf, zypper) 33 | ansible.builtin.package: 34 | name: findutils 35 | state: present 36 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 37 | -------------------------------------------------------------------------------- /molecule/java-max-non-lts/tests/conftest.py: -------------------------------------------------------------------------------- 1 | """PyTest Fixtures.""" 2 | from __future__ import absolute_import 3 | 4 | import os 5 | 6 | import pytest 7 | 8 | 9 | def pytest_runtest_setup(item): 10 | """Run tests only when under molecule with testinfra installed.""" 11 | try: 12 | import testinfra 13 | except ImportError: 14 | pytest.skip("Test requires testinfra", allow_module_level=True) 15 | if "MOLECULE_INVENTORY_FILE" in os.environ: 16 | pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( 17 | os.environ["MOLECULE_INVENTORY_FILE"] 18 | ).get_hosts("all") 19 | else: 20 | pytest.skip( 21 | "Test should run only from inside molecule.", 22 | allow_module_level=True) 23 | -------------------------------------------------------------------------------- /molecule/java-max-non-lts/tests/test_role.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import re 3 | 4 | 5 | def test_java(host): 6 | cmd = host.run('. /etc/profile && java -version') 7 | assert cmd.rc == 0 8 | m = re.search('(?:java|openjdk) version "([0-9]+)', cmd.stderr) 9 | assert m is not None 10 | java_version = m.group(1) 11 | assert '24' == java_version 12 | 13 | 14 | def test_javac(host): 15 | cmd = host.run('. /etc/profile && javac -version') 16 | assert cmd.rc == 0 17 | m = re.search('javac ([0-9]+)', cmd.stdout) 18 | assert m is not None 19 | java_version = m.group(1) 20 | assert '24' == java_version 21 | 22 | 23 | @pytest.mark.parametrize('version_dir_pattern', [ 24 | 'jdk-24(\\.[0-9]+\\.[0-9]+)?(\\+[0-9]+)?$' 25 | ]) 26 | def test_java_installed(host, version_dir_pattern): 27 | 28 | java_home = host.check_output('find %s | grep --color=never -E %s', 29 | '/opt/java/', 30 | version_dir_pattern) 31 | 32 | java_exe = host.file(java_home + '/bin/java') 33 | 34 | assert java_exe.exists 35 | assert java_exe.is_file 36 | assert java_exe.user == 'root' 37 | assert java_exe.group == 'root' 38 | assert oct(java_exe.mode) == '0o755' 39 | 40 | 41 | @pytest.mark.parametrize('fact_group_name', [ 42 | 'java' 43 | ]) 44 | def test_facts_installed(host, fact_group_name): 45 | fact_file = host.file('/etc/ansible/facts.d/' + fact_group_name + '.fact') 46 | 47 | assert fact_file.exists 48 | assert fact_file.is_file 49 | assert fact_file.user == 'root' 50 | assert fact_file.group == 'root' 51 | assert oct(fact_file.mode) == '0o644' 52 | -------------------------------------------------------------------------------- /molecule/java-min-offline/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | - name: Create local archive directory 21 | ansible.builtin.file: 22 | state: directory 23 | mode: 'u=rwx,go=rx' 24 | dest: '{{ java_local_archive_dir }}' 25 | delegate_to: localhost 26 | when: java_use_local_archive 27 | 28 | - name: Download JDK for offline install 29 | ansible.builtin.get_url: 30 | url: 'https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u442-b06/OpenJDK8U-jdk_x64_linux_hotspot_8u442b06.tar.gz' 31 | dest: '{{ java_local_archive_dir }}/OpenJDK8U-jdk_x64_linux_hotspot_8u442b06.tar.gz' 32 | force: false 33 | use_proxy: true 34 | validate_certs: true 35 | timeout: '{{ java_download_timeout_seconds }}' 36 | mode: 'u=rw,go=r' 37 | delegate_to: localhost 38 | when: java_use_local_archive 39 | 40 | roles: 41 | - role: ansible-role-java 42 | java_major_version: '8' 43 | java_version: '8.0.442+6' 44 | java_release_name: 'jdk8u442-b06' 45 | java_use_local_archive: true 46 | java_redis_filename: 'OpenJDK8U-jdk_x64_linux_hotspot_8u442b06.tar.gz' 47 | java_redis_sha256sum: '5b0a0145e7790552a9c8767b4680074c4628ec276e5bb278b61d85cf90facafa' 48 | 49 | post_tasks: 50 | - name: Verify java facts 51 | ansible.builtin.assert: 52 | that: 53 | - ansible_local.java.general.version is defined 54 | - ansible_local.java.general.home is defined 55 | 56 | - name: Install find - required for tests (dnf, zypper) 57 | ansible.builtin.package: 58 | name: findutils 59 | state: present 60 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 61 | -------------------------------------------------------------------------------- /molecule/java-min-online/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | roles: 21 | - role: ansible-role-java 22 | java_version: 8.0.442+6 23 | java_use_local_archive: false 24 | 25 | post_tasks: 26 | - name: Verify java facts 27 | ansible.builtin.assert: 28 | that: 29 | - ansible_local.java.general.version is defined 30 | - ansible_local.java.general.home is defined 31 | 32 | - name: Install find - required for tests (dnf, zypper) 33 | ansible.builtin.package: 34 | name: findutils 35 | state: present 36 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 37 | -------------------------------------------------------------------------------- /molecule/java-min/tests/conftest.py: -------------------------------------------------------------------------------- 1 | """PyTest Fixtures.""" 2 | from __future__ import absolute_import 3 | 4 | import os 5 | 6 | import pytest 7 | 8 | 9 | def pytest_runtest_setup(item): 10 | """Run tests only when under molecule with testinfra installed.""" 11 | try: 12 | import testinfra 13 | except ImportError: 14 | pytest.skip("Test requires testinfra", allow_module_level=True) 15 | if "MOLECULE_INVENTORY_FILE" in os.environ: 16 | pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( 17 | os.environ["MOLECULE_INVENTORY_FILE"] 18 | ).get_hosts("all") 19 | else: 20 | pytest.skip( 21 | "Test should run only from inside molecule.", 22 | allow_module_level=True) 23 | -------------------------------------------------------------------------------- /molecule/java-min/tests/test_role.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | 4 | @pytest.mark.parametrize('command', [ 5 | 'java', 6 | 'javac' 7 | ]) 8 | def test_java_tools(host, command): 9 | cmd = host.run('. /etc/profile && ' + command + ' -version') 10 | assert cmd.rc == 0 11 | assert ' 1.8.0_' in cmd.stderr 12 | 13 | 14 | @pytest.mark.parametrize('version_dir_pattern', [ 15 | r'jdk8u[0-9b\.-]+$' 16 | ]) 17 | def test_java_installed(host, version_dir_pattern): 18 | 19 | java_home = host.check_output('find %s | grep --color=never -E %s', 20 | '/opt/java/', 21 | version_dir_pattern) 22 | 23 | java_exe = host.file(java_home + '/bin/java') 24 | 25 | assert java_exe.exists 26 | assert java_exe.is_file 27 | assert java_exe.user == 'root' 28 | assert java_exe.group == 'root' 29 | assert oct(java_exe.mode) == '0o755' 30 | 31 | 32 | @pytest.mark.parametrize('fact_group_name', [ 33 | 'java' 34 | ]) 35 | def test_facts_installed(host, fact_group_name): 36 | fact_file = host.file('/etc/ansible/facts.d/' + fact_group_name + '.fact') 37 | 38 | assert fact_file.exists 39 | assert fact_file.is_file 40 | assert fact_file.user == 'root' 41 | assert fact_file.group == 'root' 42 | assert oct(fact_file.mode) == '0o644' 43 | -------------------------------------------------------------------------------- /molecule/java-old-lts-offline/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | - name: Create local archive directory 21 | ansible.builtin.file: 22 | state: directory 23 | mode: 'u=rwx,go=rx' 24 | dest: '{{ java_local_archive_dir }}' 25 | delegate_to: localhost 26 | 27 | - name: Download JDK for offline install 28 | ansible.builtin.get_url: 29 | url: "https://api.adoptium.net/v3/binary/version/{{ 'jdk-11.0.26+4' | urlencode }}/linux/x64/jdk/hotspot/normal/adoptium?project=jdk" # noqa 204 30 | dest: '{{ java_local_archive_dir }}/OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz' 31 | force: false 32 | timeout: '{{ java_download_timeout_seconds }}' 33 | mode: 'u=rw,go=r' 34 | delegate_to: localhost 35 | 36 | roles: 37 | - role: ansible-role-java 38 | java_use_local_archive: true 39 | java_major_version: '11' 40 | java_version: '11.0.26+4' 41 | java_release_name: 'jdk-11.0.26+4' 42 | java_redis_filename: 'OpenJDK11U-jdk_x64_linux_hotspot_11.0.26_4.tar.gz' 43 | java_redis_sha256sum: '7def4c5807b38ef1a7bb30a86572a795ca604127cc8d1f5b370abf23618104e6' 44 | 45 | post_tasks: 46 | - name: Verify java facts 47 | ansible.builtin.assert: 48 | that: 49 | - ansible_local.java.general.version is defined 50 | - ansible_local.java.general.home is defined 51 | 52 | - name: Install find - required for tests (dnf, zypper) 53 | ansible.builtin.package: 54 | name: findutils 55 | state: present 56 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 57 | -------------------------------------------------------------------------------- /molecule/java-old-lts-online/converge.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Converge 4 | hosts: all 5 | 6 | pre_tasks: 7 | - name: Update apt cache 8 | ansible.builtin.apt: 9 | update_cache: true 10 | changed_when: false 11 | when: ansible_pkg_mgr == 'apt' 12 | 13 | # Workaround for Fedora 41 https://github.com/ansible/ansible/issues/84206 14 | - name: Install python3-libdnf5 15 | become: true 16 | ansible.builtin.command: dnf install -y python3-libdnf5 17 | when: ansible_facts.pkg_mgr == 'dnf5' 18 | changed_when: false 19 | 20 | roles: 21 | - role: ansible-role-java 22 | java_version: '11' 23 | java_use_local_archive: false 24 | 25 | post_tasks: 26 | - name: Verify java facts 27 | ansible.builtin.assert: 28 | that: 29 | - ansible_local.java.general.version is defined 30 | - ansible_local.java.general.home is defined 31 | 32 | - name: Install find - required for tests (dnf, zypper) 33 | ansible.builtin.package: 34 | name: findutils 35 | state: present 36 | when: ansible_pkg_mgr in ('dnf', 'dnf5', 'zypper') 37 | -------------------------------------------------------------------------------- /molecule/java-old-lts/tests/conftest.py: -------------------------------------------------------------------------------- 1 | """PyTest Fixtures.""" 2 | from __future__ import absolute_import 3 | 4 | import os 5 | 6 | import pytest 7 | 8 | 9 | def pytest_runtest_setup(item): 10 | """Run tests only when under molecule with testinfra installed.""" 11 | try: 12 | import testinfra 13 | except ImportError: 14 | pytest.skip("Test requires testinfra", allow_module_level=True) 15 | if "MOLECULE_INVENTORY_FILE" in os.environ: 16 | pytest.testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner( 17 | os.environ["MOLECULE_INVENTORY_FILE"] 18 | ).get_hosts("all") 19 | else: 20 | pytest.skip( 21 | "Test should run only from inside molecule.", 22 | allow_module_level=True) 23 | -------------------------------------------------------------------------------- /molecule/java-old-lts/tests/test_role.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import re 3 | 4 | 5 | def test_java(host): 6 | cmd = host.run('. /etc/profile && java -version') 7 | assert cmd.rc == 0 8 | m = re.search('(?:java|openjdk) version "([0-9]+)', cmd.stderr) 9 | assert m is not None 10 | java_version = m.group(1) 11 | assert '11' == java_version 12 | 13 | 14 | def test_javac(host): 15 | cmd = host.run('. /etc/profile && javac -version') 16 | assert cmd.rc == 0 17 | m = re.search('javac ([0-9]+)', cmd.stdout) 18 | assert m is not None 19 | java_version = m.group(1) 20 | assert '11' == java_version 21 | 22 | 23 | @pytest.mark.parametrize('version_dir_pattern', [ 24 | 'jdk-11(\\.[0-9]+){,3}(\\+[0-9]+)?$' 25 | ]) 26 | def test_java_installed(host, version_dir_pattern): 27 | 28 | java_home = host.check_output('find %s | grep --color=never -E %s', 29 | '/opt/java/', 30 | version_dir_pattern) 31 | 32 | java_exe = host.file(java_home + '/bin/java') 33 | 34 | assert java_exe.exists 35 | assert java_exe.is_file 36 | assert java_exe.user == 'root' 37 | assert java_exe.group == 'root' 38 | assert oct(java_exe.mode) == '0o755' 39 | 40 | 41 | @pytest.mark.parametrize('fact_group_name', [ 42 | 'java' 43 | ]) 44 | def test_facts_installed(host, fact_group_name): 45 | fact_file = host.file('/etc/ansible/facts.d/' + fact_group_name + '.fact') 46 | 47 | assert fact_file.exists 48 | assert fact_file.is_file 49 | assert fact_file.user == 'root' 50 | assert fact_file.group == 'root' 51 | assert oct(fact_file.mode) == '0o644' 52 | -------------------------------------------------------------------------------- /molecule/opensuse-java-min-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/opensuse-java-min-online/collections.yml: -------------------------------------------------------------------------------- 1 | --- 2 | collections: 3 | - community.general 4 | -------------------------------------------------------------------------------- /molecule/opensuse-java-min-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-opensuse 12 | image: opensuse/tumbleweed 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/rocky-java-max-lts-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/rocky-java-max-lts-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-centos-max-java-max-lts 12 | image: rockylinux/rockylinux:9 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-lts-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/rocky-java-min-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/rocky-java-min-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-centos-max 12 | image: rockylinux/rockylinux:9 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-max-lts-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-max-lts-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-max-java-max-lts 12 | image: ubuntu:24.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-lts-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-max-non-lts-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-max-non-lts-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-max-java-max-non-lts 12 | image: ubuntu:24.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-non-lts-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-non-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-min-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-min-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-max 12 | image: ubuntu:24.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-old-lts-offline/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-max-java-old-lts-offline/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-max-java-old-lts 12 | image: ubuntu:24.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-old-lts-offline/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-old-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-max-lts-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-max-lts-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-min-java-max-lts 12 | image: ubuntu:22.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-lts-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-max-non-lts-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-max-non-lts-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-min-java-max-non-lts 12 | image: ubuntu:22.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-max-non-lts-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-max-non-lts/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-min-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-min-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-min 12 | image: ubuntu:22.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-min-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-min/tests 22 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-old-lts-online/INSTALL.rst: -------------------------------------------------------------------------------- 1 | ******* 2 | Docker driver installation guide 3 | ******* 4 | 5 | Requirements 6 | ============ 7 | 8 | * Docker Engine 9 | 10 | Install 11 | ======= 12 | 13 | Please refer to the `Virtual environment`_ documentation for installation best 14 | practices. If not using a virtual environment, please consider passing the 15 | widely recommended `'--user' flag`_ when invoking ``pip``. 16 | 17 | .. _Virtual environment: https://virtualenv.pypa.io/en/latest/ 18 | .. _'--user' flag: https://packaging.python.org/tutorials/installing-packages/#installing-to-the-user-site 19 | 20 | .. code-block:: bash 21 | 22 | $ python3 -m pip install 'molecule[docker]' 23 | -------------------------------------------------------------------------------- /molecule/ubuntu-min-java-old-lts-online/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | 5 | driver: 6 | name: docker 7 | 8 | role_name_check: 2 9 | 10 | platforms: 11 | - name: ansible-role-java-ubuntu-min-java-old-lts 12 | image: ubuntu:22.04 13 | 14 | provisioner: 15 | name: ansible 16 | playbooks: 17 | converge: ../java-old-lts-online/converge.yml 18 | 19 | verifier: 20 | name: testinfra 21 | directory: ../java-old-lts/tests 22 | -------------------------------------------------------------------------------- /requirements/ansible-max.in: -------------------------------------------------------------------------------- 1 | ansible-core==2.18.1 2 | -r molecule.in 3 | -------------------------------------------------------------------------------- /requirements/ansible-min.in: -------------------------------------------------------------------------------- 1 | ansible-core==2.17.7 2 | -r molecule.in 3 | -------------------------------------------------------------------------------- /requirements/compile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | dir="$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)" 4 | 5 | cd "$dir" || exit 1 6 | 7 | find . -name '*.in' -exec pip-compile --resolver=backtracking --generate-hashes '{}' \; 8 | 9 | pip-compile --resolver=backtracking dev.in 10 | -------------------------------------------------------------------------------- /requirements/dev.in: -------------------------------------------------------------------------------- 1 | -r ansible-max.in 2 | -r lint.in 3 | -r tox.in 4 | pip-tools==7.4.1 5 | -------------------------------------------------------------------------------- /requirements/dev.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.12 3 | # by the following command: 4 | # 5 | # pip-compile dev.in 6 | # 7 | ansible-compat==25.1.5 8 | # via 9 | # ansible-lint 10 | # molecule 11 | ansible-core==2.18.1 12 | # via 13 | # -r /workspaces/ansible-role-java/requirements/ansible-max.in 14 | # ansible-compat 15 | # ansible-lint 16 | # molecule 17 | ansible-lint==24.10.0 18 | # via -r /workspaces/ansible-role-java/requirements/lint.in 19 | attrs==25.3.0 20 | # via 21 | # jsonschema 22 | # referencing 23 | black==25.1.0 24 | # via ansible-lint 25 | bracex==2.5.post1 26 | # via wcmatch 27 | build==1.2.2.post1 28 | # via pip-tools 29 | cachetools==5.5.2 30 | # via tox 31 | certifi==2025.1.31 32 | # via requests 33 | cffi==1.17.1 34 | # via cryptography 35 | chardet==5.2.0 36 | # via tox 37 | charset-normalizer==3.4.1 38 | # via requests 39 | click==8.1.8 40 | # via 41 | # black 42 | # click-help-colors 43 | # molecule 44 | # pip-tools 45 | click-help-colors==0.9.4 46 | # via molecule 47 | colorama==0.4.6 48 | # via tox 49 | cryptography==44.0.2 50 | # via ansible-core 51 | distlib==0.3.9 52 | # via virtualenv 53 | distro==1.9.0 54 | # via selinux 55 | docker==7.1.0 56 | # via molecule-plugins 57 | enrich==1.2.7 58 | # via molecule 59 | filelock==3.18.0 60 | # via 61 | # ansible-lint 62 | # tox 63 | # virtualenv 64 | flake8==7.1.1 65 | # via -r /workspaces/ansible-role-java/requirements/lint.in 66 | idna==3.10 67 | # via requests 68 | importlib-metadata==8.6.1 69 | # via ansible-lint 70 | iniconfig==2.1.0 71 | # via pytest 72 | jinja2==3.1.6 73 | # via 74 | # ansible-core 75 | # molecule 76 | jsonschema==4.23.0 77 | # via 78 | # ansible-compat 79 | # ansible-lint 80 | # molecule 81 | jsonschema-specifications==2024.10.1 82 | # via jsonschema 83 | markdown-it-py==3.0.0 84 | # via rich 85 | markupsafe==3.0.2 86 | # via jinja2 87 | mccabe==0.7.0 88 | # via flake8 89 | mdurl==0.1.2 90 | # via markdown-it-py 91 | molecule==24.9.0 92 | # via 93 | # -r /workspaces/ansible-role-java/requirements/molecule.in 94 | # molecule-plugins 95 | molecule-plugins[docker]==23.6.0 96 | # via -r /workspaces/ansible-role-java/requirements/molecule.in 97 | mypy-extensions==1.0.0 98 | # via black 99 | packaging==24.2 100 | # via 101 | # ansible-compat 102 | # ansible-core 103 | # ansible-lint 104 | # black 105 | # build 106 | # molecule 107 | # pyproject-api 108 | # pytest 109 | # tox 110 | pathspec==0.12.1 111 | # via 112 | # ansible-lint 113 | # black 114 | # yamllint 115 | pip-tools==7.4.1 116 | # via -r dev.in 117 | platformdirs==4.3.7 118 | # via 119 | # black 120 | # tox 121 | # virtualenv 122 | pluggy==1.5.0 123 | # via 124 | # molecule 125 | # pytest 126 | # tox 127 | pycodestyle==2.12.1 128 | # via flake8 129 | pycparser==2.22 130 | # via cffi 131 | pyflakes==3.2.0 132 | # via flake8 133 | pygments==2.19.1 134 | # via rich 135 | pyproject-api==1.9.0 136 | # via tox 137 | pyproject-hooks==1.2.0 138 | # via 139 | # build 140 | # pip-tools 141 | pytest==8.3.5 142 | # via pytest-testinfra 143 | pytest-testinfra==10.2.2 144 | # via -r /workspaces/ansible-role-java/requirements/molecule.in 145 | pyyaml==6.0.2 146 | # via 147 | # ansible-compat 148 | # ansible-core 149 | # ansible-lint 150 | # molecule 151 | # yamllint 152 | referencing==0.36.2 153 | # via 154 | # jsonschema 155 | # jsonschema-specifications 156 | requests==2.32.3 157 | # via 158 | # docker 159 | # molecule-plugins 160 | resolvelib==1.0.1 161 | # via ansible-core 162 | rich==14.0.0 163 | # via 164 | # ansible-lint 165 | # enrich 166 | # molecule 167 | rpds-py==0.24.0 168 | # via 169 | # jsonschema 170 | # referencing 171 | ruamel-yaml==0.18.10 172 | # via ansible-lint 173 | ruamel-yaml-clib==0.2.12 174 | # via ruamel-yaml 175 | selinux==0.3.0 176 | # via molecule-plugins 177 | subprocess-tee==0.4.2 178 | # via 179 | # ansible-compat 180 | # ansible-lint 181 | tox==4.23.2 182 | # via -r /workspaces/ansible-role-java/requirements/tox.in 183 | typing-extensions==4.13.2 184 | # via referencing 185 | urllib3==2.4.0 186 | # via 187 | # docker 188 | # requests 189 | virtualenv==20.30.0 190 | # via tox 191 | wcmatch==10.0 192 | # via 193 | # ansible-lint 194 | # molecule 195 | wheel==0.45.1 196 | # via pip-tools 197 | yamllint==1.35.1 198 | # via 199 | # -r /workspaces/ansible-role-java/requirements/lint.in 200 | # ansible-lint 201 | zipp==3.21.0 202 | # via importlib-metadata 203 | 204 | # The following packages are considered to be unsafe in a requirements file: 205 | # pip 206 | # setuptools 207 | -------------------------------------------------------------------------------- /requirements/lint.in: -------------------------------------------------------------------------------- 1 | ansible-lint==24.10.0 2 | flake8==7.1.1 3 | yamllint==1.35.1 4 | -------------------------------------------------------------------------------- /requirements/lint.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.12 3 | # by the following command: 4 | # 5 | # pip-compile --generate-hashes ./lint.in 6 | # 7 | ansible-compat==25.1.5 \ 8 | --hash=sha256:066c280b02e12eedcacfb3390a3e459c4d325bb9971f86bd6486b25d1d1f161d \ 9 | --hash=sha256:1dd35c21ba0301c93b19fe2bb3aa2caa2a630a05373a103adcc2621465f8da6a 10 | # via ansible-lint 11 | ansible-core==2.18.4 \ 12 | --hash=sha256:c642d484c1d3486a923b152150034eddd5cdf4bea58039c928183900fb35d8ba \ 13 | --hash=sha256:e1f8f5c33546362b0ee933e0969a3ba364b486515a6fa1bc25ebb5d95f8ec5f4 14 | # via 15 | # ansible-compat 16 | # ansible-lint 17 | ansible-lint==24.10.0 \ 18 | --hash=sha256:1c4f4c3a79cc983edab9deb09cc898285cbee30658112d66f72cc9f67932d616 \ 19 | --hash=sha256:59b396bcd9be734f9ae40796e9660c267ae85f1f13e47811fd8abdc6aaffea5c 20 | # via -r ./lint.in 21 | attrs==25.3.0 \ 22 | --hash=sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3 \ 23 | --hash=sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b 24 | # via 25 | # jsonschema 26 | # referencing 27 | black==25.1.0 \ 28 | --hash=sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171 \ 29 | --hash=sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7 \ 30 | --hash=sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da \ 31 | --hash=sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2 \ 32 | --hash=sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc \ 33 | --hash=sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666 \ 34 | --hash=sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f \ 35 | --hash=sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b \ 36 | --hash=sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32 \ 37 | --hash=sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f \ 38 | --hash=sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717 \ 39 | --hash=sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299 \ 40 | --hash=sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0 \ 41 | --hash=sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18 \ 42 | --hash=sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0 \ 43 | --hash=sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3 \ 44 | --hash=sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355 \ 45 | --hash=sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096 \ 46 | --hash=sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e \ 47 | --hash=sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9 \ 48 | --hash=sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba \ 49 | --hash=sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f 50 | # via ansible-lint 51 | bracex==2.5.post1 \ 52 | --hash=sha256:12c50952415bfa773d2d9ccb8e79651b8cdb1f31a42f6091b804f6ba2b4a66b6 \ 53 | --hash=sha256:13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6 54 | # via wcmatch 55 | cffi==1.17.1 \ 56 | --hash=sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8 \ 57 | --hash=sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2 \ 58 | --hash=sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1 \ 59 | --hash=sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15 \ 60 | --hash=sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36 \ 61 | --hash=sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 \ 62 | --hash=sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8 \ 63 | --hash=sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36 \ 64 | --hash=sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17 \ 65 | --hash=sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf \ 66 | --hash=sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc \ 67 | --hash=sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3 \ 68 | --hash=sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed \ 69 | --hash=sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702 \ 70 | --hash=sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1 \ 71 | --hash=sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8 \ 72 | --hash=sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903 \ 73 | --hash=sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6 \ 74 | --hash=sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d \ 75 | --hash=sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b \ 76 | --hash=sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e \ 77 | --hash=sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be \ 78 | --hash=sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c \ 79 | --hash=sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683 \ 80 | --hash=sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9 \ 81 | --hash=sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c \ 82 | --hash=sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8 \ 83 | --hash=sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1 \ 84 | --hash=sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4 \ 85 | --hash=sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655 \ 86 | --hash=sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67 \ 87 | --hash=sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595 \ 88 | --hash=sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0 \ 89 | --hash=sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65 \ 90 | --hash=sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41 \ 91 | --hash=sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6 \ 92 | --hash=sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401 \ 93 | --hash=sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6 \ 94 | --hash=sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3 \ 95 | --hash=sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16 \ 96 | --hash=sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93 \ 97 | --hash=sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e \ 98 | --hash=sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4 \ 99 | --hash=sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964 \ 100 | --hash=sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c \ 101 | --hash=sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576 \ 102 | --hash=sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0 \ 103 | --hash=sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3 \ 104 | --hash=sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662 \ 105 | --hash=sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3 \ 106 | --hash=sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff \ 107 | --hash=sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5 \ 108 | --hash=sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd \ 109 | --hash=sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f \ 110 | --hash=sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5 \ 111 | --hash=sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14 \ 112 | --hash=sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d \ 113 | --hash=sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9 \ 114 | --hash=sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7 \ 115 | --hash=sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382 \ 116 | --hash=sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a \ 117 | --hash=sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e \ 118 | --hash=sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a \ 119 | --hash=sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4 \ 120 | --hash=sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99 \ 121 | --hash=sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87 \ 122 | --hash=sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b 123 | # via cryptography 124 | click==8.1.8 \ 125 | --hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \ 126 | --hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a 127 | # via black 128 | cryptography==44.0.2 \ 129 | --hash=sha256:04abd71114848aa25edb28e225ab5f268096f44cf0127f3d36975bdf1bdf3390 \ 130 | --hash=sha256:0529b1d5a0105dd3731fa65680b45ce49da4d8115ea76e9da77a875396727b41 \ 131 | --hash=sha256:1bc312dfb7a6e5d66082c87c34c8a62176e684b6fe3d90fcfe1568de675e6688 \ 132 | --hash=sha256:268e4e9b177c76d569e8a145a6939eca9a5fec658c932348598818acf31ae9a5 \ 133 | --hash=sha256:29ecec49f3ba3f3849362854b7253a9f59799e3763b0c9d0826259a88efa02f1 \ 134 | --hash=sha256:2bf7bf75f7df9715f810d1b038870309342bff3069c5bd8c6b96128cb158668d \ 135 | --hash=sha256:3b721b8b4d948b218c88cb8c45a01793483821e709afe5f622861fc6182b20a7 \ 136 | --hash=sha256:3c00b6b757b32ce0f62c574b78b939afab9eecaf597c4d624caca4f9e71e7843 \ 137 | --hash=sha256:3dc62975e31617badc19a906481deacdeb80b4bb454394b4098e3f2525a488c5 \ 138 | --hash=sha256:4973da6ca3db4405c54cd0b26d328be54c7747e89e284fcff166132eb7bccc9c \ 139 | --hash=sha256:4e389622b6927d8133f314949a9812972711a111d577a5d1f4bee5e58736b80a \ 140 | --hash=sha256:51e4de3af4ec3899d6d178a8c005226491c27c4ba84101bfb59c901e10ca9f79 \ 141 | --hash=sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6 \ 142 | --hash=sha256:6210c05941994290f3f7f175a4a57dbbb2afd9273657614c506d5976db061181 \ 143 | --hash=sha256:6f101b1f780f7fc613d040ca4bdf835c6ef3b00e9bd7125a4255ec574c7916e4 \ 144 | --hash=sha256:7bdcd82189759aba3816d1f729ce42ffded1ac304c151d0a8e89b9996ab863d5 \ 145 | --hash=sha256:7ca25849404be2f8e4b3c59483d9d3c51298a22c1c61a0e84415104dacaf5562 \ 146 | --hash=sha256:81276f0ea79a208d961c433a947029e1a15948966658cf6710bbabb60fcc2639 \ 147 | --hash=sha256:8cadc6e3b5a1f144a039ea08a0bdb03a2a92e19c46be3285123d32029f40a922 \ 148 | --hash=sha256:8e0ddd63e6bf1161800592c71ac794d3fb8001f2caebe0966e77c5234fa9efc3 \ 149 | --hash=sha256:909c97ab43a9c0c0b0ada7a1281430e4e5ec0458e6d9244c0e821bbf152f061d \ 150 | --hash=sha256:96e7a5e9d6e71f9f4fca8eebfd603f8e86c5225bb18eb621b2c1e50b290a9471 \ 151 | --hash=sha256:9a1e657c0f4ea2a23304ee3f964db058c9e9e635cc7019c4aa21c330755ef6fd \ 152 | --hash=sha256:9eb9d22b0a5d8fd9925a7764a054dca914000607dff201a24c791ff5c799e1fa \ 153 | --hash=sha256:af4ff3e388f2fa7bff9f7f2b31b87d5651c45731d3e8cfa0944be43dff5cfbdb \ 154 | --hash=sha256:b042d2a275c8cee83a4b7ae30c45a15e6a4baa65a179a0ec2d78ebb90e4f6699 \ 155 | --hash=sha256:bc821e161ae88bfe8088d11bb39caf2916562e0a2dc7b6d56714a48b784ef0bb \ 156 | --hash=sha256:c505d61b6176aaf982c5717ce04e87da5abc9a36a5b39ac03905c4aafe8de7aa \ 157 | --hash=sha256:c63454aa261a0cf0c5b4718349629793e9e634993538db841165b3df74f37ec0 \ 158 | --hash=sha256:c7362add18b416b69d58c910caa217f980c5ef39b23a38a0880dfd87bdf8cd23 \ 159 | --hash=sha256:d03806036b4f89e3b13b6218fefea8d5312e450935b1a2d55f0524e2ed7c59d9 \ 160 | --hash=sha256:d1b3031093a366ac767b3feb8bcddb596671b3aaff82d4050f984da0c248b615 \ 161 | --hash=sha256:d1c3572526997b36f245a96a2b1713bf79ce99b271bbcf084beb6b9b075f29ea \ 162 | --hash=sha256:efcfe97d1b3c79e486554efddeb8f6f53a4cdd4cf6086642784fa31fc384e1d7 \ 163 | --hash=sha256:f514ef4cd14bb6fb484b4a60203e912cfcb64f2ab139e88c2274511514bf7308 164 | # via ansible-core 165 | filelock==3.18.0 \ 166 | --hash=sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2 \ 167 | --hash=sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de 168 | # via ansible-lint 169 | flake8==7.1.1 \ 170 | --hash=sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38 \ 171 | --hash=sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213 172 | # via -r ./lint.in 173 | importlib-metadata==8.6.1 \ 174 | --hash=sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e \ 175 | --hash=sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580 176 | # via ansible-lint 177 | jinja2==3.1.6 \ 178 | --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ 179 | --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 180 | # via ansible-core 181 | jsonschema==4.23.0 \ 182 | --hash=sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4 \ 183 | --hash=sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566 184 | # via 185 | # ansible-compat 186 | # ansible-lint 187 | jsonschema-specifications==2024.10.1 \ 188 | --hash=sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272 \ 189 | --hash=sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf 190 | # via jsonschema 191 | markdown-it-py==3.0.0 \ 192 | --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ 193 | --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb 194 | # via rich 195 | markupsafe==3.0.2 \ 196 | --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ 197 | --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ 198 | --hash=sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0 \ 199 | --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ 200 | --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ 201 | --hash=sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13 \ 202 | --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ 203 | --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ 204 | --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ 205 | --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ 206 | --hash=sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0 \ 207 | --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ 208 | --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ 209 | --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ 210 | --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ 211 | --hash=sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff \ 212 | --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ 213 | --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ 214 | --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ 215 | --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ 216 | --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ 217 | --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ 218 | --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ 219 | --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ 220 | --hash=sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a \ 221 | --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ 222 | --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ 223 | --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ 224 | --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ 225 | --hash=sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144 \ 226 | --hash=sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f \ 227 | --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ 228 | --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ 229 | --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ 230 | --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ 231 | --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ 232 | --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ 233 | --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ 234 | --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ 235 | --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ 236 | --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ 237 | --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ 238 | --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ 239 | --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ 240 | --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ 241 | --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ 242 | --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ 243 | --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ 244 | --hash=sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29 \ 245 | --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ 246 | --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ 247 | --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ 248 | --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ 249 | --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ 250 | --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ 251 | --hash=sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a \ 252 | --hash=sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178 \ 253 | --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ 254 | --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ 255 | --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ 256 | --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 257 | # via jinja2 258 | mccabe==0.7.0 \ 259 | --hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \ 260 | --hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e 261 | # via flake8 262 | mdurl==0.1.2 \ 263 | --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ 264 | --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba 265 | # via markdown-it-py 266 | mypy-extensions==1.0.0 \ 267 | --hash=sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d \ 268 | --hash=sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782 269 | # via black 270 | packaging==24.2 \ 271 | --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ 272 | --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f 273 | # via 274 | # ansible-compat 275 | # ansible-core 276 | # ansible-lint 277 | # black 278 | pathspec==0.12.1 \ 279 | --hash=sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08 \ 280 | --hash=sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712 281 | # via 282 | # ansible-lint 283 | # black 284 | # yamllint 285 | platformdirs==4.3.7 \ 286 | --hash=sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94 \ 287 | --hash=sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351 288 | # via black 289 | pycodestyle==2.12.1 \ 290 | --hash=sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3 \ 291 | --hash=sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521 292 | # via flake8 293 | pycparser==2.22 \ 294 | --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ 295 | --hash=sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc 296 | # via cffi 297 | pyflakes==3.2.0 \ 298 | --hash=sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f \ 299 | --hash=sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a 300 | # via flake8 301 | pygments==2.19.1 \ 302 | --hash=sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f \ 303 | --hash=sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c 304 | # via rich 305 | pyyaml==6.0.2 \ 306 | --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ 307 | --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ 308 | --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ 309 | --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ 310 | --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ 311 | --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ 312 | --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ 313 | --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ 314 | --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ 315 | --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ 316 | --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ 317 | --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ 318 | --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ 319 | --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ 320 | --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ 321 | --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ 322 | --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ 323 | --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ 324 | --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ 325 | --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ 326 | --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ 327 | --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ 328 | --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ 329 | --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ 330 | --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ 331 | --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ 332 | --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ 333 | --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ 334 | --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ 335 | --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ 336 | --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ 337 | --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ 338 | --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ 339 | --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ 340 | --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ 341 | --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ 342 | --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ 343 | --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ 344 | --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ 345 | --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ 346 | --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ 347 | --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ 348 | --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ 349 | --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ 350 | --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ 351 | --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ 352 | --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ 353 | --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ 354 | --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ 355 | --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ 356 | --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ 357 | --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ 358 | --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 359 | # via 360 | # ansible-compat 361 | # ansible-core 362 | # ansible-lint 363 | # yamllint 364 | referencing==0.36.2 \ 365 | --hash=sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa \ 366 | --hash=sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0 367 | # via 368 | # jsonschema 369 | # jsonschema-specifications 370 | resolvelib==1.0.1 \ 371 | --hash=sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309 \ 372 | --hash=sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf 373 | # via ansible-core 374 | rich==14.0.0 \ 375 | --hash=sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0 \ 376 | --hash=sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725 377 | # via ansible-lint 378 | rpds-py==0.24.0 \ 379 | --hash=sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046 \ 380 | --hash=sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724 \ 381 | --hash=sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33 \ 382 | --hash=sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc \ 383 | --hash=sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032 \ 384 | --hash=sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a \ 385 | --hash=sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7 \ 386 | --hash=sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c \ 387 | --hash=sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718 \ 388 | --hash=sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc \ 389 | --hash=sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d \ 390 | --hash=sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272 \ 391 | --hash=sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f \ 392 | --hash=sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d \ 393 | --hash=sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b \ 394 | --hash=sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb \ 395 | --hash=sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef \ 396 | --hash=sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b \ 397 | --hash=sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45 \ 398 | --hash=sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4 \ 399 | --hash=sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796 \ 400 | --hash=sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3 \ 401 | --hash=sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c \ 402 | --hash=sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9 \ 403 | --hash=sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f \ 404 | --hash=sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029 \ 405 | --hash=sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9 \ 406 | --hash=sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399 \ 407 | --hash=sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586 \ 408 | --hash=sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda \ 409 | --hash=sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91 \ 410 | --hash=sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b \ 411 | --hash=sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a \ 412 | --hash=sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c \ 413 | --hash=sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405 \ 414 | --hash=sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5 \ 415 | --hash=sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143 \ 416 | --hash=sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a \ 417 | --hash=sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c \ 418 | --hash=sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78 \ 419 | --hash=sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0 \ 420 | --hash=sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350 \ 421 | --hash=sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7 \ 422 | --hash=sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba \ 423 | --hash=sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664 \ 424 | --hash=sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a \ 425 | --hash=sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56 \ 426 | --hash=sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e \ 427 | --hash=sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d \ 428 | --hash=sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1 \ 429 | --hash=sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964 \ 430 | --hash=sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791 \ 431 | --hash=sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124 \ 432 | --hash=sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e \ 433 | --hash=sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120 \ 434 | --hash=sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad \ 435 | --hash=sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc \ 436 | --hash=sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c \ 437 | --hash=sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e \ 438 | --hash=sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba \ 439 | --hash=sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797 \ 440 | --hash=sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149 \ 441 | --hash=sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5 \ 442 | --hash=sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240 \ 443 | --hash=sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034 \ 444 | --hash=sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25 \ 445 | --hash=sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7 \ 446 | --hash=sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d \ 447 | --hash=sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793 \ 448 | --hash=sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba \ 449 | --hash=sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d \ 450 | --hash=sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d \ 451 | --hash=sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391 \ 452 | --hash=sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e \ 453 | --hash=sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f \ 454 | --hash=sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7 \ 455 | --hash=sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd \ 456 | --hash=sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f \ 457 | --hash=sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb \ 458 | --hash=sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea \ 459 | --hash=sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e \ 460 | --hash=sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052 \ 461 | --hash=sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd \ 462 | --hash=sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47 \ 463 | --hash=sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d \ 464 | --hash=sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9 \ 465 | --hash=sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8 \ 466 | --hash=sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875 \ 467 | --hash=sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65 \ 468 | --hash=sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e \ 469 | --hash=sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114 \ 470 | --hash=sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44 \ 471 | --hash=sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9 \ 472 | --hash=sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a \ 473 | --hash=sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205 \ 474 | --hash=sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164 \ 475 | --hash=sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58 \ 476 | --hash=sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3 \ 477 | --hash=sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6 \ 478 | --hash=sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97 \ 479 | --hash=sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6 \ 480 | --hash=sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae \ 481 | --hash=sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727 \ 482 | --hash=sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098 \ 483 | --hash=sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c \ 484 | --hash=sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1 \ 485 | --hash=sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8 \ 486 | --hash=sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d \ 487 | --hash=sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103 \ 488 | --hash=sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30 \ 489 | --hash=sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d \ 490 | --hash=sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5 \ 491 | --hash=sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07 \ 492 | --hash=sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83 493 | # via 494 | # jsonschema 495 | # referencing 496 | ruamel-yaml==0.18.10 \ 497 | --hash=sha256:20c86ab29ac2153f80a428e1254a8adf686d3383df04490514ca3b79a362db58 \ 498 | --hash=sha256:30f22513ab2301b3d2b577adc121c6471f28734d3d9728581245f1e76468b4f1 499 | # via ansible-lint 500 | ruamel-yaml-clib==0.2.12 \ 501 | --hash=sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b \ 502 | --hash=sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4 \ 503 | --hash=sha256:0b7e75b4965e1d4690e93021adfcecccbca7d61c7bddd8e22406ef2ff20d74ef \ 504 | --hash=sha256:11f891336688faf5156a36293a9c362bdc7c88f03a8a027c2c1d8e0bcde998e5 \ 505 | --hash=sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3 \ 506 | --hash=sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632 \ 507 | --hash=sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6 \ 508 | --hash=sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7 \ 509 | --hash=sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680 \ 510 | --hash=sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf \ 511 | --hash=sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da \ 512 | --hash=sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6 \ 513 | --hash=sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a \ 514 | --hash=sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01 \ 515 | --hash=sha256:5a0e060aace4c24dcaf71023bbd7d42674e3b230f7e7b97317baf1e953e5b519 \ 516 | --hash=sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6 \ 517 | --hash=sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f \ 518 | --hash=sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd \ 519 | --hash=sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2 \ 520 | --hash=sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52 \ 521 | --hash=sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd \ 522 | --hash=sha256:943f32bc9dedb3abff9879edc134901df92cfce2c3d5c9348f172f62eb2d771d \ 523 | --hash=sha256:95c3829bb364fdb8e0332c9931ecf57d9be3519241323c5274bd82f709cebc0c \ 524 | --hash=sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6 \ 525 | --hash=sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb \ 526 | --hash=sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a \ 527 | --hash=sha256:a606ef75a60ecf3d924613892cc603b154178ee25abb3055db5062da811fd969 \ 528 | --hash=sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28 \ 529 | --hash=sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d \ 530 | --hash=sha256:bb43a269eb827806502c7c8efb7ae7e9e9d0573257a46e8e952f4d4caba4f31e \ 531 | --hash=sha256:bc5f1e1c28e966d61d2519f2a3d451ba989f9ea0f2307de7bc45baa526de9e45 \ 532 | --hash=sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4 \ 533 | --hash=sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12 \ 534 | --hash=sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31 \ 535 | --hash=sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642 \ 536 | --hash=sha256:d84318609196d6bd6da0edfa25cedfbabd8dbde5140a0a23af29ad4b8f91fb1e \ 537 | --hash=sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285 \ 538 | --hash=sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed \ 539 | --hash=sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1 \ 540 | --hash=sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7 \ 541 | --hash=sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3 \ 542 | --hash=sha256:e7e3736715fbf53e9be2a79eb4db68e4ed857017344d697e8b9749444ae57475 \ 543 | --hash=sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5 \ 544 | --hash=sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76 \ 545 | --hash=sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987 \ 546 | --hash=sha256:fd5415dded15c3822597455bc02bcd66e81ef8b7a48cb71a33628fc9fdde39df 547 | # via ruamel-yaml 548 | subprocess-tee==0.4.2 \ 549 | --hash=sha256:21942e976715af4a19a526918adb03a8a27a8edab959f2d075b777e3d78f532d \ 550 | --hash=sha256:91b2b4da3aae9a7088d84acaf2ea0abee3f4fd9c0d2eae69a9b9122a71476590 551 | # via 552 | # ansible-compat 553 | # ansible-lint 554 | typing-extensions==4.13.2 \ 555 | --hash=sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c \ 556 | --hash=sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef 557 | # via referencing 558 | wcmatch==10.0 \ 559 | --hash=sha256:0dd927072d03c0a6527a20d2e6ad5ba8d0380e60870c383bc533b71744df7b7a \ 560 | --hash=sha256:e72f0de09bba6a04e0de70937b0cf06e55f36f37b3deb422dfaf854b867b840a 561 | # via ansible-lint 562 | yamllint==1.35.1 \ 563 | --hash=sha256:2e16e504bb129ff515b37823b472750b36b6de07963bd74b307341ef5ad8bdc3 \ 564 | --hash=sha256:7a003809f88324fd2c877734f2d575ee7881dd9043360657cc8049c809eba6cd 565 | # via 566 | # -r ./lint.in 567 | # ansible-lint 568 | zipp==3.21.0 \ 569 | --hash=sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4 \ 570 | --hash=sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931 571 | # via importlib-metadata 572 | -------------------------------------------------------------------------------- /requirements/molecule.in: -------------------------------------------------------------------------------- 1 | molecule==24.9.0 2 | molecule-plugins[docker] 3 | pytest-testinfra 4 | -------------------------------------------------------------------------------- /requirements/molecule.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.12 3 | # by the following command: 4 | # 5 | # pip-compile --generate-hashes ./molecule.in 6 | # 7 | ansible-compat==25.1.5 \ 8 | --hash=sha256:066c280b02e12eedcacfb3390a3e459c4d325bb9971f86bd6486b25d1d1f161d \ 9 | --hash=sha256:1dd35c21ba0301c93b19fe2bb3aa2caa2a630a05373a103adcc2621465f8da6a 10 | # via molecule 11 | ansible-core==2.18.4 \ 12 | --hash=sha256:c642d484c1d3486a923b152150034eddd5cdf4bea58039c928183900fb35d8ba \ 13 | --hash=sha256:e1f8f5c33546362b0ee933e0969a3ba364b486515a6fa1bc25ebb5d95f8ec5f4 14 | # via 15 | # ansible-compat 16 | # molecule 17 | attrs==25.3.0 \ 18 | --hash=sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3 \ 19 | --hash=sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b 20 | # via 21 | # jsonschema 22 | # referencing 23 | bracex==2.5.post1 \ 24 | --hash=sha256:12c50952415bfa773d2d9ccb8e79651b8cdb1f31a42f6091b804f6ba2b4a66b6 \ 25 | --hash=sha256:13e5732fec27828d6af308628285ad358047cec36801598368cb28bc631dbaf6 26 | # via wcmatch 27 | certifi==2025.1.31 \ 28 | --hash=sha256:3d5da6925056f6f18f119200434a4780a94263f10d1c21d032a6f6b2baa20651 \ 29 | --hash=sha256:ca78db4565a652026a4db2bcdf68f2fb589ea80d0be70e03929ed730746b84fe 30 | # via requests 31 | cffi==1.17.1 \ 32 | --hash=sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8 \ 33 | --hash=sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2 \ 34 | --hash=sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1 \ 35 | --hash=sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15 \ 36 | --hash=sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36 \ 37 | --hash=sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824 \ 38 | --hash=sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8 \ 39 | --hash=sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36 \ 40 | --hash=sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17 \ 41 | --hash=sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf \ 42 | --hash=sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc \ 43 | --hash=sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3 \ 44 | --hash=sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed \ 45 | --hash=sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702 \ 46 | --hash=sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1 \ 47 | --hash=sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8 \ 48 | --hash=sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903 \ 49 | --hash=sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6 \ 50 | --hash=sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d \ 51 | --hash=sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b \ 52 | --hash=sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e \ 53 | --hash=sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be \ 54 | --hash=sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c \ 55 | --hash=sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683 \ 56 | --hash=sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9 \ 57 | --hash=sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c \ 58 | --hash=sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8 \ 59 | --hash=sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1 \ 60 | --hash=sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4 \ 61 | --hash=sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655 \ 62 | --hash=sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67 \ 63 | --hash=sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595 \ 64 | --hash=sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0 \ 65 | --hash=sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65 \ 66 | --hash=sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41 \ 67 | --hash=sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6 \ 68 | --hash=sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401 \ 69 | --hash=sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6 \ 70 | --hash=sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3 \ 71 | --hash=sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16 \ 72 | --hash=sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93 \ 73 | --hash=sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e \ 74 | --hash=sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4 \ 75 | --hash=sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964 \ 76 | --hash=sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c \ 77 | --hash=sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576 \ 78 | --hash=sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0 \ 79 | --hash=sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3 \ 80 | --hash=sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662 \ 81 | --hash=sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3 \ 82 | --hash=sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff \ 83 | --hash=sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5 \ 84 | --hash=sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd \ 85 | --hash=sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f \ 86 | --hash=sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5 \ 87 | --hash=sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14 \ 88 | --hash=sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d \ 89 | --hash=sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9 \ 90 | --hash=sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7 \ 91 | --hash=sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382 \ 92 | --hash=sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a \ 93 | --hash=sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e \ 94 | --hash=sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a \ 95 | --hash=sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4 \ 96 | --hash=sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99 \ 97 | --hash=sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87 \ 98 | --hash=sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b 99 | # via cryptography 100 | charset-normalizer==3.4.1 \ 101 | --hash=sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537 \ 102 | --hash=sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa \ 103 | --hash=sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a \ 104 | --hash=sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294 \ 105 | --hash=sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b \ 106 | --hash=sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd \ 107 | --hash=sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601 \ 108 | --hash=sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd \ 109 | --hash=sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4 \ 110 | --hash=sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d \ 111 | --hash=sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2 \ 112 | --hash=sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313 \ 113 | --hash=sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd \ 114 | --hash=sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa \ 115 | --hash=sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8 \ 116 | --hash=sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1 \ 117 | --hash=sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2 \ 118 | --hash=sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496 \ 119 | --hash=sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d \ 120 | --hash=sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b \ 121 | --hash=sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e \ 122 | --hash=sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a \ 123 | --hash=sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4 \ 124 | --hash=sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca \ 125 | --hash=sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78 \ 126 | --hash=sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408 \ 127 | --hash=sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5 \ 128 | --hash=sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3 \ 129 | --hash=sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f \ 130 | --hash=sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a \ 131 | --hash=sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765 \ 132 | --hash=sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6 \ 133 | --hash=sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146 \ 134 | --hash=sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6 \ 135 | --hash=sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9 \ 136 | --hash=sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd \ 137 | --hash=sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c \ 138 | --hash=sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f \ 139 | --hash=sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545 \ 140 | --hash=sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176 \ 141 | --hash=sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770 \ 142 | --hash=sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824 \ 143 | --hash=sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f \ 144 | --hash=sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf \ 145 | --hash=sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487 \ 146 | --hash=sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d \ 147 | --hash=sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd \ 148 | --hash=sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b \ 149 | --hash=sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534 \ 150 | --hash=sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f \ 151 | --hash=sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b \ 152 | --hash=sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9 \ 153 | --hash=sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd \ 154 | --hash=sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125 \ 155 | --hash=sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9 \ 156 | --hash=sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de \ 157 | --hash=sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11 \ 158 | --hash=sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d \ 159 | --hash=sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35 \ 160 | --hash=sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f \ 161 | --hash=sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda \ 162 | --hash=sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7 \ 163 | --hash=sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a \ 164 | --hash=sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971 \ 165 | --hash=sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8 \ 166 | --hash=sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41 \ 167 | --hash=sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d \ 168 | --hash=sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f \ 169 | --hash=sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757 \ 170 | --hash=sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a \ 171 | --hash=sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886 \ 172 | --hash=sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77 \ 173 | --hash=sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76 \ 174 | --hash=sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247 \ 175 | --hash=sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85 \ 176 | --hash=sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb \ 177 | --hash=sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7 \ 178 | --hash=sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e \ 179 | --hash=sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6 \ 180 | --hash=sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037 \ 181 | --hash=sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1 \ 182 | --hash=sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e \ 183 | --hash=sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807 \ 184 | --hash=sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407 \ 185 | --hash=sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c \ 186 | --hash=sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12 \ 187 | --hash=sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3 \ 188 | --hash=sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089 \ 189 | --hash=sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd \ 190 | --hash=sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e \ 191 | --hash=sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00 \ 192 | --hash=sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616 193 | # via requests 194 | click==8.1.8 \ 195 | --hash=sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2 \ 196 | --hash=sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a 197 | # via 198 | # click-help-colors 199 | # molecule 200 | click-help-colors==0.9.4 \ 201 | --hash=sha256:b33c5803eeaeb084393b1ab5899dc5476c7196b87a18713045afe76f840b42db \ 202 | --hash=sha256:f4cabe52cf550299b8888f4f2ee4c5f359ac27e33bcfe4d61db47785a5cc936c 203 | # via molecule 204 | cryptography==44.0.2 \ 205 | --hash=sha256:04abd71114848aa25edb28e225ab5f268096f44cf0127f3d36975bdf1bdf3390 \ 206 | --hash=sha256:0529b1d5a0105dd3731fa65680b45ce49da4d8115ea76e9da77a875396727b41 \ 207 | --hash=sha256:1bc312dfb7a6e5d66082c87c34c8a62176e684b6fe3d90fcfe1568de675e6688 \ 208 | --hash=sha256:268e4e9b177c76d569e8a145a6939eca9a5fec658c932348598818acf31ae9a5 \ 209 | --hash=sha256:29ecec49f3ba3f3849362854b7253a9f59799e3763b0c9d0826259a88efa02f1 \ 210 | --hash=sha256:2bf7bf75f7df9715f810d1b038870309342bff3069c5bd8c6b96128cb158668d \ 211 | --hash=sha256:3b721b8b4d948b218c88cb8c45a01793483821e709afe5f622861fc6182b20a7 \ 212 | --hash=sha256:3c00b6b757b32ce0f62c574b78b939afab9eecaf597c4d624caca4f9e71e7843 \ 213 | --hash=sha256:3dc62975e31617badc19a906481deacdeb80b4bb454394b4098e3f2525a488c5 \ 214 | --hash=sha256:4973da6ca3db4405c54cd0b26d328be54c7747e89e284fcff166132eb7bccc9c \ 215 | --hash=sha256:4e389622b6927d8133f314949a9812972711a111d577a5d1f4bee5e58736b80a \ 216 | --hash=sha256:51e4de3af4ec3899d6d178a8c005226491c27c4ba84101bfb59c901e10ca9f79 \ 217 | --hash=sha256:5f6f90b72d8ccadb9c6e311c775c8305381db88374c65fa1a68250aa8a9cb3a6 \ 218 | --hash=sha256:6210c05941994290f3f7f175a4a57dbbb2afd9273657614c506d5976db061181 \ 219 | --hash=sha256:6f101b1f780f7fc613d040ca4bdf835c6ef3b00e9bd7125a4255ec574c7916e4 \ 220 | --hash=sha256:7bdcd82189759aba3816d1f729ce42ffded1ac304c151d0a8e89b9996ab863d5 \ 221 | --hash=sha256:7ca25849404be2f8e4b3c59483d9d3c51298a22c1c61a0e84415104dacaf5562 \ 222 | --hash=sha256:81276f0ea79a208d961c433a947029e1a15948966658cf6710bbabb60fcc2639 \ 223 | --hash=sha256:8cadc6e3b5a1f144a039ea08a0bdb03a2a92e19c46be3285123d32029f40a922 \ 224 | --hash=sha256:8e0ddd63e6bf1161800592c71ac794d3fb8001f2caebe0966e77c5234fa9efc3 \ 225 | --hash=sha256:909c97ab43a9c0c0b0ada7a1281430e4e5ec0458e6d9244c0e821bbf152f061d \ 226 | --hash=sha256:96e7a5e9d6e71f9f4fca8eebfd603f8e86c5225bb18eb621b2c1e50b290a9471 \ 227 | --hash=sha256:9a1e657c0f4ea2a23304ee3f964db058c9e9e635cc7019c4aa21c330755ef6fd \ 228 | --hash=sha256:9eb9d22b0a5d8fd9925a7764a054dca914000607dff201a24c791ff5c799e1fa \ 229 | --hash=sha256:af4ff3e388f2fa7bff9f7f2b31b87d5651c45731d3e8cfa0944be43dff5cfbdb \ 230 | --hash=sha256:b042d2a275c8cee83a4b7ae30c45a15e6a4baa65a179a0ec2d78ebb90e4f6699 \ 231 | --hash=sha256:bc821e161ae88bfe8088d11bb39caf2916562e0a2dc7b6d56714a48b784ef0bb \ 232 | --hash=sha256:c505d61b6176aaf982c5717ce04e87da5abc9a36a5b39ac03905c4aafe8de7aa \ 233 | --hash=sha256:c63454aa261a0cf0c5b4718349629793e9e634993538db841165b3df74f37ec0 \ 234 | --hash=sha256:c7362add18b416b69d58c910caa217f980c5ef39b23a38a0880dfd87bdf8cd23 \ 235 | --hash=sha256:d03806036b4f89e3b13b6218fefea8d5312e450935b1a2d55f0524e2ed7c59d9 \ 236 | --hash=sha256:d1b3031093a366ac767b3feb8bcddb596671b3aaff82d4050f984da0c248b615 \ 237 | --hash=sha256:d1c3572526997b36f245a96a2b1713bf79ce99b271bbcf084beb6b9b075f29ea \ 238 | --hash=sha256:efcfe97d1b3c79e486554efddeb8f6f53a4cdd4cf6086642784fa31fc384e1d7 \ 239 | --hash=sha256:f514ef4cd14bb6fb484b4a60203e912cfcb64f2ab139e88c2274511514bf7308 240 | # via ansible-core 241 | distro==1.9.0 \ 242 | --hash=sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed \ 243 | --hash=sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2 244 | # via selinux 245 | docker==7.1.0 \ 246 | --hash=sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c \ 247 | --hash=sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0 248 | # via molecule-plugins 249 | enrich==1.2.7 \ 250 | --hash=sha256:0a2ab0d2931dff8947012602d1234d2a3ee002d9a355b5d70be6bf5466008893 \ 251 | --hash=sha256:f29b2c8c124b4dbd7c975ab5c3568f6c7a47938ea3b7d2106c8a3bd346545e4f 252 | # via molecule 253 | idna==3.10 \ 254 | --hash=sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9 \ 255 | --hash=sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3 256 | # via requests 257 | iniconfig==2.1.0 \ 258 | --hash=sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7 \ 259 | --hash=sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760 260 | # via pytest 261 | jinja2==3.1.6 \ 262 | --hash=sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d \ 263 | --hash=sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67 264 | # via 265 | # ansible-core 266 | # molecule 267 | jsonschema==4.23.0 \ 268 | --hash=sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4 \ 269 | --hash=sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566 270 | # via 271 | # ansible-compat 272 | # molecule 273 | jsonschema-specifications==2024.10.1 \ 274 | --hash=sha256:0f38b83639958ce1152d02a7f062902c41c8fd20d558b0c34344292d417ae272 \ 275 | --hash=sha256:a09a0680616357d9a0ecf05c12ad234479f549239d0f5b55f3deea67475da9bf 276 | # via jsonschema 277 | markdown-it-py==3.0.0 \ 278 | --hash=sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1 \ 279 | --hash=sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb 280 | # via rich 281 | markupsafe==3.0.2 \ 282 | --hash=sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4 \ 283 | --hash=sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30 \ 284 | --hash=sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0 \ 285 | --hash=sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9 \ 286 | --hash=sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396 \ 287 | --hash=sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13 \ 288 | --hash=sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028 \ 289 | --hash=sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca \ 290 | --hash=sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557 \ 291 | --hash=sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832 \ 292 | --hash=sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0 \ 293 | --hash=sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b \ 294 | --hash=sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579 \ 295 | --hash=sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a \ 296 | --hash=sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c \ 297 | --hash=sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff \ 298 | --hash=sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c \ 299 | --hash=sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22 \ 300 | --hash=sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094 \ 301 | --hash=sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb \ 302 | --hash=sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e \ 303 | --hash=sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5 \ 304 | --hash=sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a \ 305 | --hash=sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d \ 306 | --hash=sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a \ 307 | --hash=sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b \ 308 | --hash=sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8 \ 309 | --hash=sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225 \ 310 | --hash=sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c \ 311 | --hash=sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144 \ 312 | --hash=sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f \ 313 | --hash=sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87 \ 314 | --hash=sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d \ 315 | --hash=sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93 \ 316 | --hash=sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf \ 317 | --hash=sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158 \ 318 | --hash=sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84 \ 319 | --hash=sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb \ 320 | --hash=sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48 \ 321 | --hash=sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171 \ 322 | --hash=sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c \ 323 | --hash=sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6 \ 324 | --hash=sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd \ 325 | --hash=sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d \ 326 | --hash=sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1 \ 327 | --hash=sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d \ 328 | --hash=sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca \ 329 | --hash=sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a \ 330 | --hash=sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29 \ 331 | --hash=sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe \ 332 | --hash=sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798 \ 333 | --hash=sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c \ 334 | --hash=sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8 \ 335 | --hash=sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f \ 336 | --hash=sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f \ 337 | --hash=sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a \ 338 | --hash=sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178 \ 339 | --hash=sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0 \ 340 | --hash=sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79 \ 341 | --hash=sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430 \ 342 | --hash=sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50 343 | # via jinja2 344 | mdurl==0.1.2 \ 345 | --hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \ 346 | --hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba 347 | # via markdown-it-py 348 | molecule==24.9.0 \ 349 | --hash=sha256:8548eda13c31a1ea41ba0786b29dde466cfb812617c25792151335b17a410f63 \ 350 | --hash=sha256:ecb15e4c6b66e208e0621e19b100d471a06cd114371f46449620e7eda3ec0a62 351 | # via 352 | # -r ./molecule.in 353 | # molecule-plugins 354 | molecule-plugins[docker]==23.6.0 \ 355 | --hash=sha256:432586a21226ef72fca5eaafb56ec7c0dc6d5e471f4e1e5272be5425357bcd2c \ 356 | --hash=sha256:be3d15329ede00d79a0a60482e8c78cfbb2d18500ad98319c0c076cb833db340 357 | # via -r ./molecule.in 358 | packaging==24.2 \ 359 | --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ 360 | --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f 361 | # via 362 | # ansible-compat 363 | # ansible-core 364 | # molecule 365 | # pytest 366 | pluggy==1.5.0 \ 367 | --hash=sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 \ 368 | --hash=sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669 369 | # via 370 | # molecule 371 | # pytest 372 | pycparser==2.22 \ 373 | --hash=sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 \ 374 | --hash=sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc 375 | # via cffi 376 | pygments==2.19.1 \ 377 | --hash=sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f \ 378 | --hash=sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c 379 | # via rich 380 | pytest==8.3.5 \ 381 | --hash=sha256:c69214aa47deac29fad6c2a4f590b9c4a9fdb16a403176fe154b79c0b4d4d820 \ 382 | --hash=sha256:f4efe70cc14e511565ac476b57c279e12a855b11f48f212af1080ef2263d3845 383 | # via pytest-testinfra 384 | pytest-testinfra==10.2.2 \ 385 | --hash=sha256:537fd5eb88da618c1f461248aa20594cf8d44512e8519b239837e83875e1e9cd \ 386 | --hash=sha256:b785602b0aa868c858e4ef121a8cc0d13a81c04b74ec0364d70969540f8e7c31 387 | # via -r ./molecule.in 388 | pyyaml==6.0.2 \ 389 | --hash=sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff \ 390 | --hash=sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48 \ 391 | --hash=sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086 \ 392 | --hash=sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e \ 393 | --hash=sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133 \ 394 | --hash=sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5 \ 395 | --hash=sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484 \ 396 | --hash=sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee \ 397 | --hash=sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5 \ 398 | --hash=sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68 \ 399 | --hash=sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a \ 400 | --hash=sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf \ 401 | --hash=sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99 \ 402 | --hash=sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8 \ 403 | --hash=sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85 \ 404 | --hash=sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19 \ 405 | --hash=sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc \ 406 | --hash=sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a \ 407 | --hash=sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1 \ 408 | --hash=sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317 \ 409 | --hash=sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c \ 410 | --hash=sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631 \ 411 | --hash=sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d \ 412 | --hash=sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652 \ 413 | --hash=sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5 \ 414 | --hash=sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e \ 415 | --hash=sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b \ 416 | --hash=sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8 \ 417 | --hash=sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476 \ 418 | --hash=sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706 \ 419 | --hash=sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563 \ 420 | --hash=sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237 \ 421 | --hash=sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b \ 422 | --hash=sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083 \ 423 | --hash=sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180 \ 424 | --hash=sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425 \ 425 | --hash=sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e \ 426 | --hash=sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f \ 427 | --hash=sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725 \ 428 | --hash=sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183 \ 429 | --hash=sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab \ 430 | --hash=sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774 \ 431 | --hash=sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725 \ 432 | --hash=sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e \ 433 | --hash=sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5 \ 434 | --hash=sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d \ 435 | --hash=sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290 \ 436 | --hash=sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44 \ 437 | --hash=sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed \ 438 | --hash=sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4 \ 439 | --hash=sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba \ 440 | --hash=sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12 \ 441 | --hash=sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4 442 | # via 443 | # ansible-compat 444 | # ansible-core 445 | # molecule 446 | referencing==0.36.2 \ 447 | --hash=sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa \ 448 | --hash=sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0 449 | # via 450 | # jsonschema 451 | # jsonschema-specifications 452 | requests==2.32.3 \ 453 | --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ 454 | --hash=sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6 455 | # via 456 | # docker 457 | # molecule-plugins 458 | resolvelib==1.0.1 \ 459 | --hash=sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309 \ 460 | --hash=sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf 461 | # via ansible-core 462 | rich==14.0.0 \ 463 | --hash=sha256:1c9491e1951aac09caffd42f448ee3d04e58923ffe14993f6e83068dc395d7e0 \ 464 | --hash=sha256:82f1bc23a6a21ebca4ae0c45af9bdbc492ed20231dcb63f297d6d1021a9d5725 465 | # via 466 | # enrich 467 | # molecule 468 | rpds-py==0.24.0 \ 469 | --hash=sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046 \ 470 | --hash=sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724 \ 471 | --hash=sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33 \ 472 | --hash=sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc \ 473 | --hash=sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032 \ 474 | --hash=sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a \ 475 | --hash=sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7 \ 476 | --hash=sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c \ 477 | --hash=sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718 \ 478 | --hash=sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc \ 479 | --hash=sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d \ 480 | --hash=sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272 \ 481 | --hash=sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f \ 482 | --hash=sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d \ 483 | --hash=sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b \ 484 | --hash=sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb \ 485 | --hash=sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef \ 486 | --hash=sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b \ 487 | --hash=sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45 \ 488 | --hash=sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4 \ 489 | --hash=sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796 \ 490 | --hash=sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3 \ 491 | --hash=sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c \ 492 | --hash=sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9 \ 493 | --hash=sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f \ 494 | --hash=sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029 \ 495 | --hash=sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9 \ 496 | --hash=sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399 \ 497 | --hash=sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586 \ 498 | --hash=sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda \ 499 | --hash=sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91 \ 500 | --hash=sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b \ 501 | --hash=sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a \ 502 | --hash=sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c \ 503 | --hash=sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405 \ 504 | --hash=sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5 \ 505 | --hash=sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143 \ 506 | --hash=sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a \ 507 | --hash=sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c \ 508 | --hash=sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78 \ 509 | --hash=sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0 \ 510 | --hash=sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350 \ 511 | --hash=sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7 \ 512 | --hash=sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba \ 513 | --hash=sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664 \ 514 | --hash=sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a \ 515 | --hash=sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56 \ 516 | --hash=sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e \ 517 | --hash=sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d \ 518 | --hash=sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1 \ 519 | --hash=sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964 \ 520 | --hash=sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791 \ 521 | --hash=sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124 \ 522 | --hash=sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e \ 523 | --hash=sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120 \ 524 | --hash=sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad \ 525 | --hash=sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc \ 526 | --hash=sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c \ 527 | --hash=sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e \ 528 | --hash=sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba \ 529 | --hash=sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797 \ 530 | --hash=sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149 \ 531 | --hash=sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5 \ 532 | --hash=sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240 \ 533 | --hash=sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034 \ 534 | --hash=sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25 \ 535 | --hash=sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7 \ 536 | --hash=sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d \ 537 | --hash=sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793 \ 538 | --hash=sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba \ 539 | --hash=sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d \ 540 | --hash=sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d \ 541 | --hash=sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391 \ 542 | --hash=sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e \ 543 | --hash=sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f \ 544 | --hash=sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7 \ 545 | --hash=sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd \ 546 | --hash=sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f \ 547 | --hash=sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb \ 548 | --hash=sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea \ 549 | --hash=sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e \ 550 | --hash=sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052 \ 551 | --hash=sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd \ 552 | --hash=sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47 \ 553 | --hash=sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d \ 554 | --hash=sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9 \ 555 | --hash=sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8 \ 556 | --hash=sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875 \ 557 | --hash=sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65 \ 558 | --hash=sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e \ 559 | --hash=sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114 \ 560 | --hash=sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44 \ 561 | --hash=sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9 \ 562 | --hash=sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a \ 563 | --hash=sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205 \ 564 | --hash=sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164 \ 565 | --hash=sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58 \ 566 | --hash=sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3 \ 567 | --hash=sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6 \ 568 | --hash=sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97 \ 569 | --hash=sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6 \ 570 | --hash=sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae \ 571 | --hash=sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727 \ 572 | --hash=sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098 \ 573 | --hash=sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c \ 574 | --hash=sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1 \ 575 | --hash=sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8 \ 576 | --hash=sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d \ 577 | --hash=sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103 \ 578 | --hash=sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30 \ 579 | --hash=sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d \ 580 | --hash=sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5 \ 581 | --hash=sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07 \ 582 | --hash=sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83 583 | # via 584 | # jsonschema 585 | # referencing 586 | selinux==0.3.0 \ 587 | --hash=sha256:2a88b337ac46ad0f06f557b2806c3df62421972f766673dd8bf26732fb75a9ea \ 588 | --hash=sha256:ecf7add45c939e9dda682c390a2cd0a845c94a4793a2cce9e8870d4ee9501f99 589 | # via molecule-plugins 590 | subprocess-tee==0.4.2 \ 591 | --hash=sha256:21942e976715af4a19a526918adb03a8a27a8edab959f2d075b777e3d78f532d \ 592 | --hash=sha256:91b2b4da3aae9a7088d84acaf2ea0abee3f4fd9c0d2eae69a9b9122a71476590 593 | # via ansible-compat 594 | typing-extensions==4.13.2 \ 595 | --hash=sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c \ 596 | --hash=sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef 597 | # via referencing 598 | urllib3==2.4.0 \ 599 | --hash=sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466 \ 600 | --hash=sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813 601 | # via 602 | # docker 603 | # requests 604 | wcmatch==10.0 \ 605 | --hash=sha256:0dd927072d03c0a6527a20d2e6ad5ba8d0380e60870c383bc533b71744df7b7a \ 606 | --hash=sha256:e72f0de09bba6a04e0de70937b0cf06e55f36f37b3deb422dfaf854b867b840a 607 | # via molecule 608 | -------------------------------------------------------------------------------- /requirements/tox.in: -------------------------------------------------------------------------------- 1 | tox==4.23.2 2 | -------------------------------------------------------------------------------- /requirements/tox.txt: -------------------------------------------------------------------------------- 1 | # 2 | # This file is autogenerated by pip-compile with Python 3.12 3 | # by the following command: 4 | # 5 | # pip-compile --generate-hashes ./tox.in 6 | # 7 | cachetools==5.5.2 \ 8 | --hash=sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4 \ 9 | --hash=sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a 10 | # via tox 11 | chardet==5.2.0 \ 12 | --hash=sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7 \ 13 | --hash=sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970 14 | # via tox 15 | colorama==0.4.6 \ 16 | --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ 17 | --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 18 | # via tox 19 | distlib==0.3.9 \ 20 | --hash=sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87 \ 21 | --hash=sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403 22 | # via virtualenv 23 | filelock==3.18.0 \ 24 | --hash=sha256:adbc88eabb99d2fec8c9c1b229b171f18afa655400173ddc653d5d01501fb9f2 \ 25 | --hash=sha256:c401f4f8377c4464e6db25fff06205fd89bdd83b65eb0488ed1b160f780e21de 26 | # via 27 | # tox 28 | # virtualenv 29 | packaging==24.2 \ 30 | --hash=sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759 \ 31 | --hash=sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f 32 | # via 33 | # pyproject-api 34 | # tox 35 | platformdirs==4.3.7 \ 36 | --hash=sha256:a03875334331946f13c549dbd8f4bac7a13a50a895a0eb1e8c6a8ace80d40a94 \ 37 | --hash=sha256:eb437d586b6a0986388f0d6f74aa0cde27b48d0e3d66843640bfb6bdcdb6e351 38 | # via 39 | # tox 40 | # virtualenv 41 | pluggy==1.5.0 \ 42 | --hash=sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1 \ 43 | --hash=sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669 44 | # via tox 45 | pyproject-api==1.9.0 \ 46 | --hash=sha256:326df9d68dea22d9d98b5243c46e3ca3161b07a1b9b18e213d1e24fd0e605766 \ 47 | --hash=sha256:7e8a9854b2dfb49454fae421cb86af43efbb2b2454e5646ffb7623540321ae6e 48 | # via tox 49 | tox==4.23.2 \ 50 | --hash=sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38 \ 51 | --hash=sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c 52 | # via -r ./tox.in 53 | virtualenv==20.30.0 \ 54 | --hash=sha256:800863162bcaa5450a6e4d721049730e7f2dae07720e0902b0e4040bd6f9ada8 \ 55 | --hash=sha256:e34302959180fca3af42d1800df014b35019490b119eba981af27f2fa486e5d6 56 | # via tox 57 | -------------------------------------------------------------------------------- /tasks/adoptium-copy-local-jdk.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Check for JDK on local box 4 | ansible.builtin.stat: 5 | path: '{{ java_local_archive_dir }}/{{ java_redis_filename }}' 6 | delegate_to: localhost 7 | register: java_local_file 8 | ignore_errors: true 9 | become: false 10 | when: java_use_local_archive 11 | 12 | - name: Copy JDK from local box 13 | become: true 14 | ansible.builtin.copy: 15 | src: '{{ java_local_archive_dir }}/{{ java_redis_filename }}' 16 | dest: '{{ java_download_dir }}/{{ java_redis_filename }}' 17 | mode: 'u=rw,go=r' 18 | when: java_use_local_archive and java_local_file.stat.exists 19 | -------------------------------------------------------------------------------- /tasks/adoptium-query.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Querying java version 4 | ansible.builtin.debug: 5 | var: java_release 6 | 7 | - name: Query version info 8 | ansible.builtin.uri: 9 | url: '{{ java_api_request }}' 10 | return_content: true 11 | register: java_api_response 12 | 13 | - name: Set major version var from API 14 | ansible.builtin.set_fact: 15 | java_major_version: '{{ (java_api_response.json[0] | default(java_api_response.json)).version_data.major }}' 16 | when: (java_major_version | default(None)) in (None, '', omit) 17 | 18 | - name: Set release name var from API 19 | ansible.builtin.set_fact: 20 | java_release_name: '{{ (java_api_response.json[0] | default(java_api_response.json)).release_name }}' 21 | when: (java_release_name | default(None)) in (None, '', omit) 22 | 23 | - name: Set JDK URL var from API 24 | ansible.builtin.set_fact: 25 | java_redis_url: '{{ (java_api_response.json[0] | default(java_api_response.json)).binaries[0].package.link }}' 26 | when: 27 | - java_redis_mirror in (None, '', omit) 28 | - java_redis_filename in (None, '', omit) or not remote_jdk_file.stat.exists 29 | 30 | - name: Set checksum URL var from API 31 | ansible.builtin.set_fact: 32 | java_redis_sha256sum: '{{ (java_api_response.json[0] | default(java_api_response.json)).binaries[0].package.checksum }}' 33 | when: java_redis_sha256sum in (None, '', omit) 34 | 35 | - name: Set JDK filename var from API 36 | ansible.builtin.set_fact: 37 | java_redis_filename: '{{ (java_api_response.json[0] | default(java_api_response.json)).binaries[0].package.name }}' 38 | when: java_redis_filename in (None, '', omit) 39 | -------------------------------------------------------------------------------- /tasks/adoptium.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Load architecture vars 4 | ansible.builtin.include_vars: '{{ item }}' 5 | with_first_found: 6 | - '../vars/architecture/{{ java_arch }}.yml' 7 | - ../vars/architecture/default.yml 8 | 9 | - name: Load package mgr vars 10 | ansible.builtin.include_vars: '{{ item }}' 11 | with_first_found: 12 | - '../vars/packages/{{ ansible_pkg_mgr }}.yml' 13 | - ../vars/packages/default.yml 14 | 15 | - name: Create download directory 16 | ansible.builtin.file: 17 | state: directory 18 | mode: 'u=rwx,go=rx' 19 | dest: '{{ java_download_dir }}' 20 | 21 | - name: Copy local JDK 22 | ansible.builtin.include_tasks: adoptium-copy-local-jdk.yml 23 | when: 24 | - java_use_local_archive 25 | - java_redis_sha256sum not in (None, '', omit) 26 | - java_redis_filename not in (None, '', omit) 27 | 28 | - name: Check for JDK on remote box 29 | ansible.builtin.stat: 30 | path: '{{ java_download_dir }}/{{ java_redis_filename }}' 31 | checksum_algorithm: sha256 32 | register: remote_jdk_file 33 | ignore_errors: true 34 | when: java_redis_filename not in (None, '', omit) 35 | 36 | - name: Query Adoptium 37 | ansible.builtin.include_tasks: adoptium-query.yml 38 | when: > 39 | (java_major_version | default(None)) in (None, '', omit) 40 | or java_release_name in (None, '', omit) 41 | or java_redis_filename in (None, '', omit) 42 | or java_redis_sha256sum in (None, '', omit) 43 | or (java_redis_mirror in (None, '', omit) and not remote_jdk_file.stat.exists) 44 | 45 | - name: Java version to install 46 | ansible.builtin.debug: 47 | var: java_release_name 48 | 49 | - name: Set JDK version 50 | ansible.builtin.set_fact: 51 | java_jdk_version: "{{ java_release_name | regex_replace('^jdk-?([0-9]+([u\\.][0-9]+)*).*', '\\1') }}" 52 | 53 | - name: Check for JDK on remote box 54 | ansible.builtin.stat: 55 | path: '{{ java_download_dir }}/{{ java_redis_filename }}' 56 | checksum_algorithm: sha256 57 | register: remote_jdk_file 58 | ignore_errors: true 59 | 60 | - name: Assert existing JDK matches checksum 61 | ansible.builtin.assert: 62 | that: 63 | - remote_jdk_file.stat.checksum == java_redis_sha256sum 64 | msg: 'Checksum failed: {{ remote_jdk_file.stat.checksum }} != {{ java_redis_sha256sum }}' 65 | when: remote_jdk_file.stat.exists 66 | 67 | - name: Download JDK 68 | ansible.builtin.get_url: 69 | url: '{{ java_redis_url }}' 70 | dest: '{{ java_download_dir }}/{{ java_redis_filename }}' 71 | checksum: 'sha256:{{ java_redis_sha256sum }}' 72 | force: false 73 | timeout: '{{ java_download_timeout_seconds }}' 74 | mode: 'u=rw,go=r' 75 | when: not remote_jdk_file.stat.exists 76 | 77 | - name: Create Java home directory 78 | become: true 79 | ansible.builtin.file: 80 | path: '{{ java_home }}' 81 | state: directory 82 | owner: root 83 | group: root 84 | mode: 'u=rwx,go=rx' 85 | 86 | - name: Install dependencies (apt, yum, dnf, zypper) 87 | become: true 88 | ansible.builtin.package: 89 | name: '{{ java_dependencies }}' 90 | state: present 91 | when: ansible_pkg_mgr in ('apt', 'yum', 'dnf', 'dnf5', 'zypper') 92 | 93 | # Workaround for: https://github.com/AdoptOpenJDK/openjdk-build/issues/660 94 | - name: Check JDK archive layout 95 | become: true 96 | ansible.builtin.shell: | 97 | set -o pipefail 98 | tar --list --file {{ (java_download_dir + '/' + java_redis_filename) | quote }} | grep --quiet '^\.' 99 | register: java_jdk_layout 100 | failed_when: false 101 | changed_when: false 102 | 103 | - name: Install JDK 104 | become: true 105 | ansible.builtin.unarchive: 106 | src: '{{ java_download_dir }}/{{ java_redis_filename }}' 107 | extra_opts: 108 | - "--strip-components={{ (java_jdk_layout.rc == 0) | ternary('2', '1') }}" 109 | dest: '{{ java_home }}' 110 | creates: '{{ java_home }}/bin/java' 111 | copy: false 112 | owner: root 113 | group: root 114 | mode: 'go-w' 115 | 116 | - name: Generate CDS archive 117 | become: true 118 | ansible.builtin.command: '{{ java_home }}/bin/java -Xshare:dump' 119 | args: 120 | creates: >- 121 | {{ java_home }}{{ (java_major_version == '8') | 122 | ternary('/jre/lib/' + java_arch_dir, '/lib') }}/server/classes.jsa 123 | when: java_major_version in ('8', '9', '10', '11') 124 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Install Adoptium JDK 4 | ansible.builtin.import_tasks: adoptium.yml 5 | 6 | - name: Write environment config 7 | ansible.builtin.include_tasks: write-environment-config.yml 8 | when: java_is_default_installation 9 | 10 | # Set Java facts 11 | - name: Create Ansible facts.d directory 12 | become: true 13 | ansible.builtin.file: 14 | state: directory 15 | dest: /etc/ansible/facts.d 16 | owner: root 17 | group: root 18 | mode: 'u=rwx,go=rx' 19 | 20 | - name: Install Java facts 21 | become: true 22 | ansible.builtin.template: 23 | src: facts.j2 24 | dest: '/etc/ansible/facts.d/{{ java_fact_group_name }}.fact' 25 | owner: root 26 | group: root 27 | mode: 'u=rw,go=r' 28 | 29 | - name: Re-read facts 30 | ansible.builtin.setup: 31 | filter: ansible_local 32 | 33 | - name: Clear facts 34 | ansible.builtin.set_fact: 35 | java_redis_sha256sum: 36 | java_redis_filename: 37 | java_major_version: 38 | java_release_name: 39 | -------------------------------------------------------------------------------- /tasks/write-environment-config.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | - name: Install profile scripts (zypper) 4 | become: true 5 | ansible.builtin.package: 6 | name: aaa_base 7 | state: present 8 | when: ansible_pkg_mgr == 'zypper' 9 | 10 | # Set JAVA_HOME 11 | - name: Make sure /etc/profile.d exists 12 | become: true 13 | ansible.builtin.file: 14 | path: /etc/profile.d 15 | state: directory 16 | owner: root 17 | group: root 18 | mode: 'u=rwx,go=rx' 19 | when: java_is_default_installation 20 | 21 | - name: Export JAVA_HOME and add to PATH 22 | become: true 23 | ansible.builtin.template: 24 | src: java.sh.j2 25 | dest: /etc/profile.d/java.sh 26 | owner: root 27 | group: root 28 | mode: 'u=rw,go=r' 29 | when: java_is_default_installation 30 | -------------------------------------------------------------------------------- /templates/facts.j2: -------------------------------------------------------------------------------- 1 | {{ ansible_managed | comment }} 2 | 3 | [general] 4 | version={{ java_jdk_version }} 5 | home={{ java_home }} 6 | -------------------------------------------------------------------------------- /templates/java.sh.j2: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | {{ ansible_managed | comment }} 4 | 5 | export JAVA_HOME="{{ java_home }}" 6 | export PATH="${JAVA_HOME}/bin:${PATH}" 7 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | env_list = lint, ansible-{min,max}, dev 3 | minversion = 4.5.1 4 | skipsdist = true 5 | 6 | [testenv] 7 | description = tests the role with Molecule 8 | package = wheel 9 | wheel_build_env = .pkg 10 | deps = 11 | ansible-min: -r requirements/ansible-min.txt 12 | ansible-max: -r requirements/ansible-max.txt 13 | commands = 14 | molecule test {posargs} 15 | setenv = 16 | PY_COLORS = 1 17 | ANSIBLE_FORCE_COLOR = 1 18 | 19 | [testenv:lint] 20 | description = runs lint checks on the role 21 | package = wheel 22 | wheel_build_env = .pkg 23 | deps = 24 | -r requirements/lint.txt 25 | commands = 26 | yamllint . 27 | ansible-lint . 28 | flake8 --exclude .tox,.venv 29 | setenv = 30 | PY_COLORS = 1 31 | ANSIBLE_FORCE_COLOR = 1 32 | 33 | [testenv:dev] 34 | description = dependencies for development 35 | package = wheel 36 | wheel_build_env = .pkg 37 | deps = 38 | -r requirements/dev.txt 39 | -------------------------------------------------------------------------------- /vars/architecture/default.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Architecture directory name 4 | java_arch_dir: '{{ java_arch }}' 5 | -------------------------------------------------------------------------------- /vars/architecture/x64.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Architecture directory name 4 | java_arch_dir: amd64 5 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Java Adoptium release 4 | java_release: "{{ java_version | string | regex_search('^((?:[0-9]+\\.)*)([0-9]+)$') | ternary(\ 5 | '[' + (java_version | string) + ',' + (java_version | string | regex_replace('^((?:[0-9]+\\.)*)([0-9]+)$', '\\1')) + \ 6 | (((java_version | string | regex_replace('^((?:[0-9]+\\.)*)([0-9]+)$', '\\2') | int) + 1) | string) + ')', \ 7 | '[' + java_version + ',' + java_version + '.1)') }}" 8 | 9 | # The root folder of this Java installation 10 | java_home: '{{ java_install_dir }}/{{ java_release_name }}' 11 | 12 | # The server for the Adoptium API requests 13 | java_api_server: 'https://api.adoptium.net' 14 | 15 | # The URL for the Adoptium API requests 16 | java_api_request: "{{ java_api_server }}/v3/assets/version/{{ java_release | urlencode }}?jvm_impl=hotspot&os={{ java_os }}&architecture={{ java_arch }}\ 17 | &heap_size={{ java_heap_size }}&image_type=jdk&project=jdk&release_type=ga&page_size=1&sort_order=DESC&vendor=adoptium" 18 | 19 | # Operating System 20 | java_os: linux 21 | 22 | # Architecture 23 | java_arch: "{{ ((ansible_architecture | lower) == 'aarch64') | ternary('aarch64', 'x64') }}" 24 | 25 | # Heap size 26 | java_heap_size: normal 27 | -------------------------------------------------------------------------------- /vars/packages/apt.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: 5 | - tar 6 | - gzip 7 | - unzip 8 | - libfreetype6 9 | - fontconfig 10 | - fonts-dejavu 11 | -------------------------------------------------------------------------------- /vars/packages/default.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: [] 5 | -------------------------------------------------------------------------------- /vars/packages/dnf.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: 5 | - tar 6 | - gzip 7 | - unzip 8 | - freetype 9 | - fontconfig 10 | - dejavu-sans-fonts 11 | -------------------------------------------------------------------------------- /vars/packages/dnf5.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: 5 | - tar 6 | - gzip 7 | - unzip 8 | - freetype 9 | - fontconfig 10 | - dejavu-sans-fonts 11 | -------------------------------------------------------------------------------- /vars/packages/yum.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: 5 | - tar 6 | - gzip 7 | - unzip 8 | - freetype 9 | - fontconfig 10 | - dejavu-sans-fonts 11 | -------------------------------------------------------------------------------- /vars/packages/zypper.yml: -------------------------------------------------------------------------------- 1 | # code: language=ansible 2 | --- 3 | # Dependencies required to install/use Java 4 | java_dependencies: 5 | - tar 6 | - gzip 7 | - unzip 8 | - libfreetype6 9 | - fontconfig 10 | - dejavu-fonts 11 | --------------------------------------------------------------------------------