├── .ansible-lint ├── .gitignore ├── .gitlab-ci.yml ├── .yamllint ├── CHANGELOG.md ├── LICENSE ├── README.md ├── alvistack.svg ├── ansible-galaxy-requirements.yml ├── ansible.cfg ├── defaults └── main.yml ├── files └── .keep ├── handlers └── main.yml ├── meta └── main.yml ├── molecule ├── almalinux-8-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── almalinux-9-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── centos-10-stream-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── centos-7-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── centos-8-stream-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── centos-9-stream-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── debian-12-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── debian-13-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── debian-testing-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── default │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── fedora-41-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── fedora-42-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── fedora-rawhide-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── opensuse-leap-15.6-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── opensuse-tumbleweed-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── rhel-7-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── rhel-8-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── rhel-9-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── ubuntu-20.04-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── ubuntu-22.04-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── ubuntu-24.04-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── ubuntu-25.04-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ │ └── all │ │ │ ├── 00-defaults.yml │ │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml └── ubuntu-25.10-libvirt │ ├── cleanup.yml │ ├── converge.yml │ ├── group_vars │ └── all │ │ ├── 00-defaults.yml │ │ └── 99-molecule.yml │ ├── molecule.yml │ ├── prepare.yml │ └── verify.yml ├── requirements.txt ├── scripts └── bootstrap-ansible.sh ├── tasks ├── debian.yml ├── main.yml ├── redhat-7.yml ├── redhat-8.yml ├── redhat.yml └── suse.yml ├── templates ├── .keep ├── etc │ └── systemd │ │ └── system │ │ └── confluence.service.j2 └── opt │ └── atlassian │ └── confluence │ ├── bin │ └── setenv.sh.j2 │ └── conf │ └── server.xml.j2 └── vars ├── almalinux-10.yml ├── almalinux-8.yml ├── almalinux-9.yml ├── centos-10.yml ├── centos-7.yml ├── centos-8.yml ├── centos-9.yml ├── debian-12.yml ├── debian-13.yml ├── debian.yml ├── fedora-41.yml ├── fedora-42.yml ├── main.yml ├── redhat-7.yml ├── redhat-8.yml ├── redhat-9.yml ├── redhat.yml ├── suse-15.6.yml ├── suse.yml ├── ubuntu-20.04.yml ├── ubuntu-22.04.yml ├── ubuntu-24.04.yml ├── ubuntu-25.04.yml └── ubuntu-25.10.yml /.ansible-lint: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | offline: true 18 | skip_list: 19 | - name[casing] 20 | - name[unique] 21 | - var-naming[no-role-prefix] 22 | - yaml[line-length] 23 | exclude_paths: 24 | - files 25 | - templates 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.orig 3 | *.pyc 4 | *.rej 5 | *.retry 6 | .cache 7 | __pycache__ 8 | 9 | inventory/*/ 10 | !inventory/default/ 11 | 12 | packer/*/*/ 13 | packer/*/packer-provisioner-* 14 | !packer/*/group_vars/ 15 | !packer/*/host_vars/ 16 | 17 | .vagrant/ 18 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | .script-git-submodule: &script-git-submodule 4 | - | 5 | git submodule sync --recursive 6 | git submodule update --init --recursive 7 | 8 | .script-linters: &script-linters 9 | - | 10 | flake8 11 | yamllint . 12 | ansible-lint 13 | 14 | .script-bootstrap-python: &script-bootstrap-python 15 | - | 16 | if ! [[ -x "$(command -v pipx)" && -x "$(command -v flake8)" && -x "$(command -v yamllint)" ]]; then 17 | export DEBIAN_FRONTEND="noninteractive" 18 | printf "Components:\nEnabled: yes\nX-Repolib-Name: alvistack\nSigned-By: /etc/apt/keyrings/home-alvistack.asc\nSuites: /\nTypes: deb\nURIs: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04\n" | sudo tee /etc/apt/sources.list.d/home-alvistack.sources > /dev/null 19 | curl -fsSL https://downloadcontent.opensuse.org/repositories/home:alvistack/xUbuntu_24.04/Release.key | sudo tee /etc/apt/keyrings/home-alvistack.asc > /dev/null 20 | sudo -E apt-get update 21 | sudo -E apt-get install -y bzip2 ca-certificates curl flake8 gcc gnupg gzip iproute2 pipx procps python3 python3-apt python3-cryptography python3-flake8 python3-jmespath python3-lxml python3-netaddr python3-pip python3-setuptools python3-venv python3-virtualenv python3-wheel sudo tar unzip xz-utils yamllint zip 22 | fi 23 | sh -x -c "python3 --version" 24 | sh -x -c "pipx --version" 25 | sh -x -c "flake8 --version" 26 | sh -x -c "yamllint --version" 27 | 28 | .script-bootstrap-ansible: &script-bootstrap-ansible 29 | - | 30 | if ! [[ -x "$(command -v ansible)" && -x "$(command -v ansible-lint)" ]]; then 31 | export DEBIAN_FRONTEND="noninteractive" 32 | printf "Components:\nEnabled: yes\nX-Repolib-Name: alvistack\nSigned-By: /etc/apt/keyrings/home-alvistack.asc\nSuites: /\nTypes: deb\nURIs: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04\n" | sudo tee /etc/apt/sources.list.d/home-alvistack.sources > /dev/null 33 | curl -fsSL https://downloadcontent.opensuse.org/repositories/home:alvistack/xUbuntu_24.04/Release.key | sudo tee /etc/apt/keyrings/home-alvistack.asc > /dev/null 34 | sudo -E apt-get update 35 | sudo -E apt-get install -y ansible ansible-lint python3-docker python3-netaddr python3-vagrant 36 | fi 37 | sh -x -c "ansible --version" 38 | sh -x -c "ansible-lint --version" 39 | 40 | .script-bootstrap-molecule: &script-bootstrap-molecule 41 | - | 42 | if ! [[ -x "$(command -v molecule)" ]]; then 43 | export DEBIAN_FRONTEND="noninteractive" 44 | printf "Components:\nEnabled: yes\nX-Repolib-Name: alvistack\nSigned-By: /etc/apt/keyrings/home-alvistack.asc\nSuites: /\nTypes: deb\nURIs: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04\n" | sudo tee /etc/apt/sources.list.d/home-alvistack.sources > /dev/null 45 | curl -fsSL https://downloadcontent.opensuse.org/repositories/home:alvistack/xUbuntu_24.04/Release.key | sudo tee /etc/apt/keyrings/home-alvistack.asc > /dev/null 46 | sudo -E apt-get update 47 | sudo -E apt-get install -y python3-molecule python3-molecule-plugins 48 | fi 49 | sh -x -c "molecule --version" 50 | 51 | .script-bootstrap-libvirt: &script-bootstrap-libvirt 52 | - | 53 | if ! [[ -x "$(command -v qemu-system-x86_64)" ]]; then 54 | export DEBIAN_FRONTEND="noninteractive" 55 | printf "Components:\nEnabled: yes\nX-Repolib-Name: alvistack\nSigned-By: /etc/apt/keyrings/home-alvistack.asc\nSuites: /\nTypes: deb\nURIs: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04\n" | sudo tee /etc/apt/sources.list.d/home-alvistack.sources > /dev/null 56 | curl -fsSL https://downloadcontent.opensuse.org/repositories/home:alvistack/xUbuntu_24.04/Release.key | sudo tee /etc/apt/keyrings/home-alvistack.asc > /dev/null 57 | sudo -E apt-get update 58 | sudo -E apt-get install -y binutils bridge-utils dnsmasq-base ebtables gcc libarchive-tools libguestfs-tools libvirt-clients libvirt-daemon-system libvirt-dev make qemu-system qemu-utils ruby-dev virt-manager 59 | fi 60 | sudo systemctl start libvirtd.service 61 | sh -x -c "sudo systemctl status --no-pager libvirtd.service" 62 | sh -x -c "qemu-system-x86_64 --version" 63 | sh -x -c "virsh --version" 64 | 65 | .script-bootstrap-vagrant: &script-bootstrap-vagrant 66 | - | 67 | if ! [[ -x "$(command -v vagrant)" ]]; then 68 | export DEBIAN_FRONTEND="noninteractive" 69 | printf "Components:\nEnabled: yes\nX-Repolib-Name: alvistack\nSigned-By: /etc/apt/keyrings/home-alvistack.asc\nSuites: /\nTypes: deb\nURIs: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04\n" | sudo tee /etc/apt/sources.list.d/home-alvistack.sources > /dev/null 70 | curl -fsSL https://downloadcontent.opensuse.org/repositories/home:alvistack/xUbuntu_24.04/Release.key | sudo tee /etc/apt/keyrings/home-alvistack.asc > /dev/null 71 | sudo -E apt-get update 72 | sudo -E apt-get install -y vagrant 73 | vagrant plugin install vagrant-libvirt 74 | fi 75 | sh -x -c "vagrant --version" 76 | sh -x -c "vagrant plugin list" 77 | 78 | .script-symlink-ansible-role: &script-symlink-ansible-role 79 | - | 80 | export _ROLE="$(echo $CI_PROJECT_NAME | sed 's/^ansible-role-//g')" 81 | mkdir -p $HOME/.ansible/roles 82 | ln -s $CI_PROJECT_DIR $HOME/.ansible/roles/alvistack.$_ROLE 83 | 84 | .script-molecule-test: &script-molecule-test 85 | - | 86 | export _MOLECULE_INSTANCE_NAME="$(pwgen -1AB 12)" 87 | sudo -E molecule test -s $_BOX-$_PROVIDER 88 | 89 | .script-ansible-galaxy-role-import: &script-ansible-galaxy-role-import 90 | - | 91 | if [[ -n "$CI_COMMIT_TAG" ]] && [[ "$CI_COMMIT_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+ ]]; then 92 | export _USER="$CI_PROJECT_NAMESPACE" 93 | export _REPO="$CI_PROJECT_NAME" 94 | elif [[ -n "$CI_COMMIT_BRANCH" ]] && [[ "$CI_COMMIT_BRANCH" =~ master ]]; then 95 | export _USER="$CI_PROJECT_NAMESPACE" 96 | export _REPO="$CI_PROJECT_NAME" 97 | else 98 | exit 0 99 | fi 100 | ansible-galaxy role import --token $ANSIBLE_GALAXY_TOKEN $_USER $_REPO 101 | 102 | .job-molecule-test: &job-molecule-test 103 | script: 104 | - *script-bootstrap-python 105 | - *script-bootstrap-ansible 106 | - *script-bootstrap-molecule 107 | - *script-bootstrap-libvirt 108 | - *script-bootstrap-vagrant 109 | - *script-symlink-ansible-role 110 | - *script-molecule-test 111 | 112 | .job-ansible-galaxy-role-import: &job-ansible-galaxy-role-import 113 | script: 114 | - *script-bootstrap-python 115 | - *script-bootstrap-ansible 116 | - *script-ansible-galaxy-role-import 117 | 118 | default: 119 | before_script: 120 | - *script-git-submodule 121 | - *script-linters 122 | retry: 2 123 | 124 | build:ubuntu-25.10-libvirt: 125 | <<: *job-molecule-test 126 | stage: build 127 | variables: 128 | _BOX: ubuntu-25.10 129 | _PROVIDER: libvirt 130 | 131 | build:ubuntu-25.04-libvirt: 132 | <<: *job-molecule-test 133 | stage: build 134 | variables: 135 | _BOX: ubuntu-25.04 136 | _PROVIDER: libvirt 137 | 138 | build:ubuntu-24.04-libvirt: 139 | <<: *job-molecule-test 140 | stage: build 141 | variables: 142 | _BOX: ubuntu-24.04 143 | _PROVIDER: libvirt 144 | 145 | build:ubuntu-22.04-libvirt: 146 | <<: *job-molecule-test 147 | stage: build 148 | variables: 149 | _BOX: ubuntu-22.04 150 | _PROVIDER: libvirt 151 | 152 | build:ubuntu-20.04-libvirt: 153 | <<: *job-molecule-test 154 | stage: build 155 | variables: 156 | _BOX: ubuntu-20.04 157 | _PROVIDER: libvirt 158 | 159 | test:almalinux-9-libvirt: 160 | <<: *job-molecule-test 161 | stage: test 162 | variables: 163 | _BOX: almalinux-9 164 | _PROVIDER: libvirt 165 | allow_failure: true 166 | retry: 0 167 | 168 | test:almalinux-8-libvirt: 169 | <<: *job-molecule-test 170 | stage: test 171 | variables: 172 | _BOX: almalinux-8 173 | _PROVIDER: libvirt 174 | allow_failure: true 175 | retry: 0 176 | 177 | test:opensuse-tumbleweed-libvirt: 178 | <<: *job-molecule-test 179 | stage: test 180 | variables: 181 | _BOX: opensuse-tumbleweed 182 | _PROVIDER: libvirt 183 | allow_failure: true 184 | retry: 0 185 | 186 | test:opensuse-leap-15.6-libvirt: 187 | <<: *job-molecule-test 188 | stage: test 189 | variables: 190 | _BOX: opensuse-leap-15.6 191 | _PROVIDER: libvirt 192 | allow_failure: true 193 | retry: 0 194 | 195 | test:debian-testing-libvirt: 196 | <<: *job-molecule-test 197 | stage: test 198 | variables: 199 | _BOX: debian-testing 200 | _PROVIDER: libvirt 201 | allow_failure: true 202 | retry: 0 203 | 204 | test:debian-13-libvirt: 205 | <<: *job-molecule-test 206 | stage: test 207 | variables: 208 | _BOX: debian-13 209 | _PROVIDER: libvirt 210 | allow_failure: true 211 | retry: 0 212 | 213 | test:debian-12-libvirt: 214 | <<: *job-molecule-test 215 | stage: test 216 | variables: 217 | _BOX: debian-12 218 | _PROVIDER: libvirt 219 | allow_failure: true 220 | retry: 0 221 | 222 | test:fedora-rawhide-libvirt: 223 | <<: *job-molecule-test 224 | stage: test 225 | variables: 226 | _BOX: fedora-rawhide 227 | _PROVIDER: libvirt 228 | allow_failure: true 229 | retry: 0 230 | 231 | test:fedora-42-libvirt: 232 | <<: *job-molecule-test 233 | stage: test 234 | variables: 235 | _BOX: fedora-42 236 | _PROVIDER: libvirt 237 | allow_failure: true 238 | retry: 0 239 | 240 | test:fedora-41-libvirt: 241 | <<: *job-molecule-test 242 | stage: test 243 | variables: 244 | _BOX: fedora-41 245 | _PROVIDER: libvirt 246 | allow_failure: true 247 | retry: 0 248 | 249 | test:centos-10-stream-libvirt: 250 | <<: *job-molecule-test 251 | stage: test 252 | variables: 253 | _BOX: centos-10-stream 254 | _PROVIDER: libvirt 255 | allow_failure: true 256 | retry: 0 257 | 258 | test:centos-9-stream-libvirt: 259 | <<: *job-molecule-test 260 | stage: test 261 | variables: 262 | _BOX: centos-9-stream 263 | _PROVIDER: libvirt 264 | allow_failure: true 265 | retry: 0 266 | 267 | test:centos-8-stream-libvirt: 268 | <<: *job-molecule-test 269 | stage: test 270 | variables: 271 | _BOX: centos-8-stream 272 | _PROVIDER: libvirt 273 | allow_failure: true 274 | retry: 0 275 | 276 | test:centos-7-libvirt: 277 | <<: *job-molecule-test 278 | stage: test 279 | variables: 280 | _BOX: centos-7 281 | _PROVIDER: libvirt 282 | allow_failure: true 283 | retry: 0 284 | 285 | test:rhel-9-libvirt: 286 | <<: *job-molecule-test 287 | stage: test 288 | variables: 289 | _BOX: rhel-9 290 | _PROVIDER: libvirt 291 | allow_failure: true 292 | retry: 0 293 | 294 | test:rhel-8-libvirt: 295 | <<: *job-molecule-test 296 | stage: test 297 | variables: 298 | _BOX: rhel-8 299 | _PROVIDER: libvirt 300 | allow_failure: true 301 | retry: 0 302 | 303 | test:rhel-7-libvirt: 304 | <<: *job-molecule-test 305 | stage: test 306 | variables: 307 | _BOX: rhel-7 308 | _PROVIDER: libvirt 309 | allow_failure: true 310 | retry: 0 311 | 312 | deploy:ansible-galaxy: 313 | <<: *job-ansible-galaxy-role-import 314 | stage: deploy 315 | needs: 316 | - build:ubuntu-25.10-libvirt 317 | - build:ubuntu-25.04-libvirt 318 | - build:ubuntu-24.04-libvirt 319 | - build:ubuntu-22.04-libvirt 320 | - build:ubuntu-20.04-libvirt 321 | -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | extends: default 18 | rules: 19 | braces: 20 | max-spaces-inside: 1 21 | min-spaces-inside: 0 22 | comments: 23 | min-spaces-from-content: 1 24 | comments-indentation: false 25 | document-start: 26 | present: true 27 | indentation: 28 | indent-sequences: consistent 29 | level: error 30 | key-duplicates: 31 | forbid-duplicated-merge-keys: true 32 | line-length: disable 33 | octal-values: 34 | forbid-explicit-octal: true 35 | forbid-implicit-octal: true 36 | ignore: 37 | - files 38 | - templates 39 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Ansible Role for Confluence 2 | 3 | ## 13.0.0 - TBC 4 | 5 | ## 12.1.0 - 2025-10-04 6 | 7 | - Support Ansible community package 12.1.0 8 | 9 | ## 12.0.0 - 2025-10-04 10 | 11 | - Support Ansible community package 12.0.0 12 | 13 | ## 11.10.0 - 2025-09-23 14 | 15 | - Support Ansible community package 11.10.0 16 | - Support Ubuntu 25.10 17 | - Remove Ubuntu 24.10 support 18 | - Support Debian 13 19 | 20 | ## 11.9.0 - 2025-08-17 21 | 22 | - Support Ansible community package 11.9.0 23 | 24 | ## 11.8.0 - 2025-07-17 25 | 26 | - Support Ansible community package 11.8.0 27 | 28 | ## 11.7.0 - 2025-06-18 29 | 30 | - Support Ansible community package 11.7.0 31 | 32 | ## 11.6.0 - 2025-05-21 33 | 34 | - Support Ansible community package 11.6.0 35 | - Remove Fedora 40 support 36 | - Support Fedora 42 37 | 38 | ## 11.5.0 - 2025-04-23 39 | 40 | - Support Ansible community package 11.5.0 41 | - Support Ubuntu 25.04 42 | 43 | ## 11.4.0 - 2025-03-31 44 | 45 | - Support Ansible community package 11.4.0 46 | 47 | ## 11.3.0 - 2025-02-27 48 | 49 | - Support Ansible community package 11.3.0 50 | - Support AlmaLinux Kitten 10 51 | - Support CentOS 10 Stream 52 | 53 | ## 11.2.0 - 2025-01-30 54 | 55 | - Replace `apt-key` with `get_url` 56 | - Replace with `ansible.builtin.deb822_repository` 57 | - Remove Debian 11 support 58 | - Remove openSUSE Leap 15.5 support 59 | - Remove Fedora 39 support 60 | 61 | ## 11.1.0 - 2024-12-04 62 | 63 | - Support Ansible community package 11.1.0 64 | 65 | ## 11.0.0 - 2024-11-20 66 | 67 | - Support Ansible community package 11.0.0 68 | 69 | ## 10.6.0 - 2024-11-09 70 | 71 | - Support Fedora 41 72 | - Support Ansible community package 10.6.0 73 | 74 | ## 10.5.0 - 2024-10-14 75 | 76 | - Support Ubuntu 24.10 77 | - Support Ansible community package 10.5.0 78 | 79 | ## 10.4.0 - 2024-09-11 80 | 81 | - Support Ansible community package 10.4.0 82 | 83 | ## 10.3.0 - 2024-08-18 84 | 85 | - Support Ansible community package 10.3.0 86 | 87 | ## 10.2.0 - 2024-07-17 88 | 89 | - Remove Kubernetes 1.27 support 90 | - Remove Ubuntu 23.10 support 91 | - Support Ansible community package 10.2.0 92 | 93 | ## 10.1.0 - 2024-06-19 94 | 95 | - Support Ansible community package 10.1.0 96 | 97 | ## 10.0.0 - 2024-06-12 98 | 99 | - Support Ansible community package 10.0.0 100 | - Support openSUSE Leap 15.6 101 | - Remove Fedora 38 support 102 | 103 | ## 9.6.0 - 2024-05-27 104 | 105 | - Support Ansible community package 9.6.0 106 | 107 | ## 9.5.0 - 2024-04-24 108 | 109 | - Support Fedora 40 110 | - Support Ansible community package 9.5.0 111 | - Support Ubuntu 24.04 112 | 113 | ## 9.4.0 - TBC 114 | 115 | - Support Ansible community package 9.4.0 116 | 117 | ## 9.3.0 - 2024-02-29 118 | 119 | - Support Ansible community package 9.3.0 120 | - Support AlmaLinux 8 121 | - Support AlmaLinux 9 122 | - Replace OBS repo from CentOS_8_Stream with AlmaLinux_8 123 | - Replace OBS repo from CentOS_9_Stream with AlmaLinux_9 124 | 125 | ## 9.2.0 - 2024-01-31 126 | 127 | - Support Ansible community package 9.2.0 128 | - Remove Ubuntu 23.04 support 129 | 130 | ## 9.1.0 - 2023-12-25 131 | 132 | - Support Ansible community package 9.1.0 133 | - Remove Fedora 37 support 134 | - Remove openSUSE Leap 15.4 support 135 | 136 | ## 9.0.0 - 2023-11-08 137 | 138 | - Support Ansible community package 9.0.0 139 | 140 | ## 8.6.0 - 2023-11-08 141 | 142 | - Support Ansible community package 8.6.0 143 | 144 | ## 8.5.0 - 2023-10-12 145 | 146 | - Support Ansible community package 8.5.0 147 | - Support Fedora 39 148 | - Support Ubuntu 23.10 149 | 150 | ## 8.4.0 - 2023-09-14 151 | 152 | - Support Ansible community package 8.4.0 153 | 154 | ## 8.3.0 - 2023-08-15 155 | 156 | - Support Ansible community package 8.3.0 157 | 158 | ## 8.2.0 - 2023-07-24 159 | 160 | - Support Ansible community package 8.2.0 161 | - Remove Ubuntu 22.10 support 162 | 163 | ## 8.1.0 - 2023-06-23 164 | 165 | - Support Ansible community package 8.1.0 166 | 167 | ## 8.0.0 - 2023-06-17 168 | 169 | - Remove Ubuntu 18.04 support 170 | - Remove Debian 10 support 171 | - Support Debian 12 172 | - Support openSUSE Leap 15.5 173 | - Support Ansible community package 8.0.0 174 | 175 | ## 7.6.0 - 2023-05-24 176 | 177 | - Support Ansible community package 7.6.0 178 | 179 | ## 7.5.0 - 2023-05-16 180 | 181 | - Remove Fedora 36 support 182 | - Support Fedora 38 183 | 184 | ## 7.4.0 - 2023-03-29 185 | 186 | - Support Ansible community package 7.4.0 187 | - Support Ubuntu 23.04 188 | 189 | ## 7.3.0 - 2023-03-01 190 | 191 | - Support Ansible community package 7.3.0 192 | 193 | ## 7.2.0 - 2023-02-01 194 | 195 | - Support Ansible community package 7.2.0 196 | 197 | ## 7.1.0 - 2022-12-09 198 | 199 | - Support Ansible community package 7.1.0 200 | 201 | ## 7.0.0 - 2022-11-26 202 | 203 | - Support Ansible community package 7.0.0 204 | 205 | ## 6.6.0 - 2022-11-10 206 | 207 | - Support Ansible community package 6.6.0 208 | - Remove Fedora 35 support 209 | - Remove openSUSE Leap 15.3 support 210 | 211 | ## 6.5.0 - 2022-10-14 212 | 213 | - Support Ansible community package 6.5.0 214 | - Default with openJDK 11 215 | - Support Ubuntu 22.10 216 | - Support Fedora 37 217 | 218 | ## 6.4.0 - 2022-09-15 219 | 220 | - Support Ansible community package 6.4.0 221 | 222 | ## 6.3.0 - 2022-08-24 223 | 224 | - Support Ansible community package 6.3.0 225 | 226 | ## 6.2.0 - 2022-08-03 227 | 228 | - Support Ansible community package 6.2.0 229 | - Revamp manually download related with OBS repo 230 | 231 | ## 6.1.0 - 2022-07-14 232 | 233 | - Support Ansible community package 6.1.0 234 | - Remove Ubuntu 21.10 support 235 | 236 | ## 6.0.0 - 2022-06-22 237 | 238 | - Support Ansible community package 6.0.0 239 | 240 | ## 5.9.0 - 2022-06-08 241 | 242 | - Support Ansible community package 5.9.0 243 | 244 | ## 5.8.0 - 2022-05-20 245 | 246 | - Support Ansible community package 5.8.0 247 | - Remove Fedora 34 support 248 | 249 | ## 5.7.0 - 2022-04-27 250 | 251 | - Rename Ansible Role with FQCN 252 | - Support Ansible community package 5.7.0 253 | - Support RHEL 9 254 | - Support CentOS 9 Stream 255 | - Support openSUSE Leap 15.4 256 | 257 | ## 5.6.0 - 2022-04-07 258 | 259 | - Support Ansible community package 5.6.0 260 | - Support Fedora 36 261 | - Support Ubuntu 22.04 262 | - Support Ansible community package 5.5.0 263 | - Support Ansible community package 5.4.0 264 | 265 | ## 5.5.0 - 2022-02-11 266 | 267 | - Remove Ubuntu 21.04 support 268 | - Skip package upgrade before running molecule 269 | - Support Fedora Rawhide 270 | - Support Debian Testing 271 | 272 | ## 5.4.0 - 2021-12-31 273 | 274 | - Remove openSUSE Leap 15.2 support 275 | - Upgrade minimal Ansible community package support to 4.10 276 | 277 | ## 5.3.0 - 2021-10-20 278 | 279 | - Remove Fedora 33 support 280 | - Remove Ubuntu 20.10 support 281 | - Support Fedora 35 282 | - Support Ubuntu 21.10 283 | - Upgrade minimal Ansible community package support to 4.7.0 284 | 285 | ## 5.2.0 - 2021-09-19 286 | 287 | - Install dependencies with package manager 288 | - Upgrade minimal Ansible community package support to 4.5.0 289 | 290 | ## 5.1.0 - 2021-07-18 291 | 292 | - Move systemd service to `/etc/systemd` which generally available 293 | - Upgrade minimal Ansible community package support to 4.2.0 294 | - Support Debian 11 295 | - Support openSUSE Leap 15.3 296 | - Improve download archive logic 297 | 298 | ## 5.0.0 - 2021-06-02 299 | 300 | - Upgrade minimal Ansible support to 4.0.0 301 | - Remove MySQL JDBC support 302 | - Support Fedora 34 303 | - Support Ubuntu 21.04 304 | - Bugfix "Purge Old Job Run Details" 305 | - Simplify download archive logic 306 | 307 | ## 4.7.0 - 2021-03-13 308 | 309 | - Bugfix [ansible-lint `namespace`](https://github.com/ansible-community/ansible-lint/pull/1451) 310 | - Bugfix [ansible-lint `no-handler`](https://github.com/ansible-community/ansible-lint/pull/1402) 311 | - Bugfix [ansible-lint `unnamed-task`](https://github.com/ansible-community/ansible-lint/pull/1413) 312 | - Simplify Python dependency with system packages 313 | - Support RHEL 8 with Molecule 314 | - Support RHEL 7 with Molecule 315 | - Remove CentOS 8 support 316 | - Improve HTTP transparent proxy support 317 | - Remove adhoc config with environment variables 318 | - Bugfix session timeout 319 | - Improve download archive logic 320 | - Support CentOS 8 Stream 321 | - Support openSUSE Tumbleweed 322 | - Migrate base Vagrant box from `generic/*` to `alvistack/*` 323 | 324 | ## 4.6.0 - 2020-12-28 325 | 326 | - Simplify Molecule scenario for vagrant-libvirt 327 | - Migrate from Travis CI to GitLab CI 328 | - Support Fedora 33 329 | - Remove Fedora 32 support 330 | - Support Ubuntu 20.10 331 | - Remove redundant tags from tasks 332 | 333 | ## 4.5.0 - 2020-08-26 334 | 335 | - Upgrade minimal Ansible Lint support to 4.3.2 336 | - Upgrade Travis CI test as Ubuntu Focal based 337 | - Upgrade minimal Ansible support to 2.10.0 338 | - Support openSUSE Leap 15.2 339 | - Remove Ubuntu 19.10 support 340 | 341 | ## 4.4.0 - 2020-06-04 342 | 343 | - Support Fedora 32 344 | - Install from AdoptOpenJDK repo 345 | - Support Debian 10 346 | - `molecule -s default` with delegated to localhost 347 | 348 | ## 4.3.0 - 2020-04-22 349 | 350 | - Template `molecule -s default` with dummy docker driver 351 | - Support CentOS/RHEL 8 352 | - Support Ubuntu 20.04 353 | - Remove Ubuntu 16.04 support 354 | - Upgrade minimal Molecule support to 3.0.2 355 | - Migrate role name to lowercase or underline 356 | - Migrate group name to lowercase or underline 357 | - Migrate molecule `group_vars` to file 358 | - Download archives to `{{ ansible_user_dir }}/.ansible/tmp` 359 | - Remove System V init scripts 360 | 361 | ## 4.2.0 - 2020-02-13 362 | 363 | - Migrate molecule driver to Libvirt 364 | - Migrate molecule verifier to Ansible 365 | - Support Ubuntu 19.10 366 | 367 | ## 4.1.0 - 2020-01-16 368 | 369 | - Default `interpreter_python` with `python3` 370 | - Bugfix `python3-xml` not exists for openSUSE Leap 15.1 371 | - Replace `java` with `openjdk` 372 | 373 | ## 4.0.0 - 2019-11-05 374 | 375 | - Upgrade minimal Ansible support to 2.9.0 376 | - Upgrade Travis CI test as Ubuntu Bionic based 377 | - Cleanup supported archives 378 | 379 | ## 3.5.0 - 2019-10-06 380 | 381 | - Support openSUSE Leap 15.1 382 | - Default with Python 3 383 | - Revamp molecule test with vagrant 384 | - Abstract `confluence_owner` and `confluence_group` as variable 385 | - Abstract `confluence_home` and `confluence_catalina` as variable 386 | 387 | ## 3.4.0 - 2019-09-18 388 | 389 | - Run molecule test manually on Travis CI 390 | 391 | ## 3.3.0 - 2019-08-27 392 | 393 | - Update for RHEL 7 394 | - Add Vagrant test for RHEL 7 395 | - Download archives to `/var/cache/ansible` 396 | - Upgrade packages if archives not found from `/var/cache/ansible` 397 | - Restart service serially 398 | 399 | ## 3.2.0 - 2019-07-08 400 | 401 | - Update LXD test profile for Kubernetes v1.15.0 support 402 | - Add dummy tasks and vars placeholder for multi OS support 403 | - Fix molecule `group_vars` with links 404 | - Replace `with_items` with `loop` 405 | - Replace `with_dict` with `var` 406 | - Replace `with_first_found` with `lookup('first_found')` 407 | 408 | ## 3.1.0 - 2019-06-13 409 | 410 | - Always include default variables from `vars/main.yml` 411 | - Always use `become: true` with molecule, especially for vagrant 412 | - Abstract archive download checksum with multiple version support 413 | - Improve service restart implementation 414 | 415 | ## 3.0.0 - 2019-05-20 416 | 417 | - Upgrade minimal Ansible support to 2.8.0 418 | - Improve handlers implementation 419 | 420 | ## 2.6.0 - 2019-05-04 421 | 422 | - Bugfix incorrect install path for mysql_jdbc and postgresql_jdbc 423 | - Refine Travis CI Molecue test cases 424 | 425 | ## 2.5.0 - 2019-04-17 426 | 427 | - Pre-download archives with checksum 428 | - Run test with `travis_wait 120` 429 | 430 | ## 2.4.0 - 2019-03-03 431 | 432 | - Run systemd service with specific system user 433 | - Add openSUSE Leap 15 support 434 | - Remove CentOS 6 support 435 | 436 | ## 2.3.0 - 2019-01-30 437 | 438 | - Porting test to Molecule based 439 | 440 | ## 2.2.0 - 2019-01-26 441 | 442 | - Add systemd service support 443 | - Use handler for `systemctl daemon-reload` 444 | - Skip CONFLUENCE_HOME enforce permission check during service start 445 | 446 | ## 2.1.0 - 2018-12-08 447 | 448 | - Upgrade Ansible support to 2.6 or higher 449 | - Support both Ubuntu 16.04/18.04 and RHEL/CentOS 6/7 450 | - CI with yamllint, ansible-lint and ansible-playbook --syntax-check 451 | - CI with LXD, improve systemd support 452 | - Use shell only when shell functionality is required 453 | - Upgrade both MySQL and PostgreSQL JDBC driver 454 | - Simplify implementation for building Docker image 455 | 456 | ## 1.1.0 - 2017-11-23 457 | 458 | - Install Confluence on Ubuntu 16.04/14.04 and CentOS 7/6 from source 459 | - Update /etc/init.d/confluence with better support for running with dumb-init inside docker 460 | - Update test cases 461 | 462 | ## 1.0.0 - 2017-09-25 463 | 464 | - Ininitial release for Ansible 2.4 465 | - Support both Ubuntu 16.04/14.04 or RHEL/CentOS 7/6 466 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2025 Wong Hoi Sing Edison 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Ansible Role for Confluence 2 | 3 | AlviStack 4 | 5 | [![Gitlab pipeline status](https://img.shields.io/gitlab/pipeline/alvistack/ansible-role-confluence/master)](https://gitlab.com/alvistack/ansible-role-confluence/-/pipelines) 6 | [![GitHub tag](https://img.shields.io/github/tag/alvistack/ansible-role-confluence.svg)](https://github.com/alvistack/ansible-role-confluence/tags) 7 | [![GitHub license](https://img.shields.io/github/license/alvistack/ansible-role-confluence.svg)](https://github.com/alvistack/ansible-role-confluence/blob/master/LICENSE) 8 | [![Ansible Role](https://img.shields.io/badge/galaxy-alvistack.confluence-blue.svg)](https://galaxy.ansible.com/alvistack/confluence) 9 | 10 | Ansible Role for Atlassian Confluence Installation. 11 | 12 | ## Requirements 13 | 14 | This role require Ansible community package 4.10 or higher. 15 | 16 | This role was designed for: 17 | 18 | - Ubuntu 20.04, 22.04, 24.04, 25.04, 25.10 19 | - AlmaLinux 8, 9 20 | - openSUSE Leap 15.6, Tumbleweed 21 | - Debian 12, 13, Testing 22 | - Fedora 41, 42, Rawhide 23 | - CentOS 7, 8 Stream, 9 Stream 24 | - RHEL 7, 8, 9 25 | 26 | ## Role Variables 27 | 28 | [defaults/main.yml](defaults/main.yml) 29 | 30 | ## Dependencies 31 | 32 | [ansible-galaxy-requirements.yml](ansible-galaxy-requirements.yml) 33 | 34 | ## Example Playbook 35 | 36 | [molecule/default/converge.yml](molecule/default/converge.yml) 37 | 38 | This role could simply deploy to `localhost` as below: 39 | 40 | molecule converge -s default 41 | 42 | ## License 43 | 44 | - Code released under [Apache License 2.0](LICENSE) 45 | - Docs released under [CC BY 4.0](http://creativecommons.org/licenses/by/4.0/) 46 | 47 | ## Author Information 48 | 49 | - Wong Hoi Sing Edison 50 | - 51 | - 52 | -------------------------------------------------------------------------------- /alvistack.svg: -------------------------------------------------------------------------------- 1 | 2 | 20 | 22 | 49 | 51 | 52 | 54 | image/svg+xml 55 | 57 | 58 | 59 | 60 | 66 | 73 | 78 | 83 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /ansible-galaxy-requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | collections: 18 | - name: ansible.posix 19 | src: https://galaxy.ansible.com 20 | version: ">=1.4.0,<2.0.0" 21 | 22 | - name: containers.podman 23 | src: https://galaxy.ansible.com 24 | version: ">=1.7.0,<2.0.0" 25 | 26 | roles: 27 | - name: alvistack.openjdk 28 | src: https://github.com/alvistack/ansible-role-openjdk 29 | version: develop 30 | -------------------------------------------------------------------------------- /ansible.cfg: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Wong Hoi Sing Edison 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | [ssh_connection] 16 | control_path = %(directory)s/%%h-%%p-%%r 17 | pipelining = true 18 | scp_extra_args = -O 19 | scp_if_ssh = true 20 | ssh_args = -o ControlMaster=auto -o ControlPersist=600s 21 | transfer_method = smart 22 | 23 | [defaults] 24 | ansible_managed = Ansible managed: Do NOT edit this file manually! 25 | display_failed_stderr = true 26 | forks = 20 27 | host_key_checking = false 28 | interpreter_python = auto 29 | nocows = 1 30 | remote_tmp = $HOME/.ansible/tmp 31 | retry_files_enabled = false 32 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | # Confluence release. 18 | confluence_release: "10.1" 19 | 20 | # Confluence version. 21 | confluence_version: "{{ _confluence_version[confluence_release] }}" 22 | 23 | # Owner and group for Confluence. 24 | confluence_owner: confluence 25 | confluence_group: confluence 26 | 27 | # Confluence home directory. 28 | confluence_home: /var/atlassian/application-data/confluence 29 | 30 | # Confluence installation directory. 31 | confluence_catalina: /opt/atlassian/confluence 32 | 33 | # JVM minimal and maximum memory usage. 34 | confluence_jvm_minimum_memory: 2048m 35 | confluence_jvm_maximum_memory: 2048m 36 | confluence_jvm_reserved_code_cache_size: 512m 37 | 38 | # Proxy and context path setup. 39 | confluence_catalina_connector_port: "8090" 40 | confluence_catalina_connector_scheme: "http" 41 | confluence_catalina_connector_secure: "false" 42 | confluence_catalina_connector_proxyname: 43 | confluence_catalina_connector_proxyport: 44 | confluence_catalina_context_path: "/" 45 | 46 | # Atlassian Support recommended JVM arguments. 47 | confluence_jvm_support_recommended_args: >- 48 | -Datlassian.plugins.enable.wait=300 49 | -XX:+IgnoreUnrecognizedVMOptions 50 | -XX:+UnlockExperimentalVMOptions 51 | 52 | # Default garbage collector and its settings. 53 | confluence_jvm_gc_args: >- 54 | -XX:+UseZGC 55 | -XX:ZCollectionInterval=5 56 | -XX:ZAllocationSpikeTolerance=5 57 | -XX:+ExplicitGCInvokesConcurrent 58 | 59 | # Session timeout (120 minutes = 2 hours). 60 | confluence_session_timeout: "120" 61 | 62 | # Remember Me timeout (10080 minutes = 168 hours = 7 days). 63 | confluence_autologin_cookie_age: "10080" 64 | -------------------------------------------------------------------------------- /files/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alvistack/ansible-role-confluence/65aeb44b7fcd8731b17f06e5e8e0feb0743547ac/files/.keep -------------------------------------------------------------------------------- /handlers/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: confluence | systemctl daemon-reload 17 | ansible.builtin.systemd: 18 | daemon_reload: true 19 | changed_when: false 20 | failed_when: false 21 | 22 | - name: confluence | systemctl restart confluence.service 23 | ansible.builtin.service: 24 | name: confluence.service 25 | state: restarted 26 | enabled: true 27 | loop: "{{ ansible_play_hosts }}" 28 | delegate_to: "{{ item }}" 29 | run_once: true 30 | changed_when: false 31 | failed_when: false 32 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | galaxy_info: 18 | role_name: confluence 19 | namespace: alvistack 20 | author: Wong Hoi Sing Edison 21 | description: Ansible Role for Atlassian Confluence Installation 22 | company: PantaRei Design 23 | license: Apache-2.0 24 | min_ansible_version: "4.10" 25 | platforms: 26 | - name: Ubuntu 27 | versions: 28 | - all 29 | - name: EL 30 | versions: 31 | - all 32 | - name: opensuse 33 | versions: 34 | - all 35 | - name: Debian 36 | versions: 37 | - all 38 | - name: Fedora 39 | versions: 40 | - all 41 | galaxy_tags: 42 | - system 43 | dependencies: [] 44 | -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/almalinux-8 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/almalinux-8-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/almalinux-9 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/almalinux-9-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/centos-10-stream 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/centos-10-stream-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/centos-7 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/centos-7-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/centos-8-stream 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/centos-8-stream-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/centos-9-stream 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/centos-9-stream-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/debian-12 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/debian-12-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/debian-13 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/debian-13-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/debian-testing 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/debian-testing-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/default/cleanup.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: cleanup | all 17 | hosts: all 18 | remote_user: root 19 | become: true 20 | gather_facts: false 21 | ignore_unreachable: true 22 | tasks: 23 | - name: rm -rf /var/cache/ansible/* 24 | ansible.builtin.raw: | 25 | set -eu 26 | rm -rf /var/cache/ansible/* 27 | rm -rf /root/.cache/* 28 | rm -rf /tmp/* 29 | args: 30 | executable: /bin/bash 31 | changed_when: false 32 | failed_when: false 33 | 34 | - name: debian | apt-get -y clean 35 | ansible.builtin.raw: | 36 | set -eu 37 | apt-get -y autoremove 38 | apt-get -y autoclean 39 | apt-get -y clean 40 | rm -rf /var/lib/apt/lists/* 41 | args: 42 | executable: /bin/bash 43 | changed_when: false 44 | failed_when: false 45 | 46 | - name: redhat | yum clean all 47 | ansible.builtin.raw: | 48 | set -eu 49 | yum clean all 50 | rm -rf /var/cache/yum/* 51 | args: 52 | executable: /bin/bash 53 | changed_when: false 54 | failed_when: false 55 | 56 | - name: suse | zypper clean --all 57 | ansible.builtin.raw: | 58 | set -eu 59 | zypper clean --all 60 | rm -rf /var/cache/zypper/* 61 | args: 62 | executable: /bin/bash 63 | changed_when: false 64 | failed_when: false 65 | 66 | - name: redhat | subscription-manager unregister 67 | ansible.builtin.raw: | 68 | set -eu 69 | subscription-manager remove --all 70 | subscription-manager unregister 71 | subscription-manager clean 72 | args: 73 | executable: /bin/bash 74 | changed_when: false 75 | failed_when: false 76 | -------------------------------------------------------------------------------- /molecule/default/converge.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: converge | all 17 | hosts: all 18 | remote_user: root 19 | become: true 20 | tasks: 21 | - name: include role 22 | ansible.builtin.include_role: 23 | name: alvistack.openjdk 24 | 25 | - name: include role 26 | ansible.builtin.include_role: 27 | name: alvistack.confluence 28 | -------------------------------------------------------------------------------- /molecule/default/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/default/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | options: 19 | managed: false 20 | ansible_connection_options: 21 | ansible_connection: local 22 | platforms: 23 | - name: localhost 24 | dependency: 25 | name: galaxy 26 | options: 27 | role-file: ansible-galaxy-requirements.yml 28 | requirements-file: ansible-galaxy-requirements.yml 29 | ignore-errors: true 30 | force: false 31 | provisioner: 32 | name: ansible 33 | inventory: 34 | links: 35 | group_vars: group_vars 36 | verifier: 37 | name: ansible 38 | prerun: false 39 | -------------------------------------------------------------------------------- /molecule/default/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: prepare | all 17 | hosts: all 18 | remote_user: root 19 | become: true 20 | gather_facts: false 21 | tasks: 22 | - name: redhat | subscription-manager register 23 | ansible.builtin.raw: | 24 | set -eu 25 | subscription-manager register \ 26 | --username={{ lookup('env', 'REDHAT_USERNAME') }} \ 27 | --password={{ lookup('env', 'REDHAT_PASSWORD') }} \ 28 | --auto-attach 29 | args: 30 | executable: /bin/bash 31 | changed_when: false 32 | failed_when: false 33 | 34 | - name: debian | apt-get install python3 35 | ansible.builtin.raw: | 36 | set -eu 37 | apt-get update 38 | DEBIAN_FRONTEND=noninteractive apt-get install -y python3 39 | args: 40 | executable: /bin/bash 41 | changed_when: false 42 | failed_when: false 43 | 44 | - name: redhat | yum install python3 45 | ansible.builtin.raw: | 46 | set -eu 47 | yum makecache 48 | yum install -y python3 49 | args: 50 | executable: /bin/bash 51 | changed_when: false 52 | failed_when: false 53 | 54 | - name: suse | zypper install python3 55 | ansible.builtin.raw: | 56 | set -eu 57 | zypper -n --gpg-auto-import-keys refresh 58 | zypper -n install -y python3 59 | args: 60 | executable: /bin/bash 61 | changed_when: false 62 | failed_when: false 63 | 64 | - name: prepare | all 65 | hosts: all 66 | remote_user: root 67 | become: true 68 | tasks: 69 | - name: cp -rfT /etc/skel /root 70 | ansible.builtin.raw: | 71 | set -eu 72 | cp -rfT /etc/skel /root 73 | rm -rf /root/.bash_logout 74 | args: 75 | executable: /bin/bash 76 | changed_when: false 77 | failed_when: false 78 | 79 | - name: setenforce 0 80 | ansible.builtin.raw: | 81 | set -eu 82 | setenforce 0 83 | sed -i 's/^SELINUX=.*$/SELINUX=permissive/g' /etc/selinux/config 84 | args: 85 | executable: /bin/bash 86 | changed_when: false 87 | failed_when: false 88 | 89 | - name: systemctl stop iptables.service 90 | ansible.builtin.raw: | 91 | set -eu 92 | systemctl stop iptables.service 93 | systemctl disable iptables.service 94 | args: 95 | executable: /bin/bash 96 | changed_when: false 97 | failed_when: false 98 | 99 | - name: systemctl stop firewalld.service 100 | ansible.builtin.raw: | 101 | set -eu 102 | systemctl stop firewalld.service 103 | systemctl disable firewalld.service 104 | args: 105 | executable: /bin/bash 106 | changed_when: false 107 | failed_when: false 108 | 109 | - name: systemctl stop ufw.service 110 | ansible.builtin.raw: | 111 | set -eu 112 | systemctl stop ufw.service 113 | systemctl disable ufw.service 114 | args: 115 | executable: /bin/bash 116 | changed_when: false 117 | failed_when: false 118 | 119 | - name: debian | apt-get install *.deb 120 | ansible.builtin.raw: | 121 | set -eu 122 | DEBIAN_FRONTEND=noninteractive apt-get install -y bzip2 ca-certificates curl gcc gnupg gzip hostname iproute2 passwd procps python3 python3-apt python3-debian python3-jmespath python3-lxml python3-pip python3-setuptools python3-venv python3-virtualenv python3-wheel rsync sudo tar unzip util-linux xz-utils zip 123 | args: 124 | executable: /bin/bash 125 | when: ansible_os_family | lower == "debian" 126 | changed_when: false 127 | failed_when: false 128 | 129 | - name: fedora | yum install *.rpm 130 | ansible.builtin.raw: | 131 | set -eu 132 | yum install -y bzip2 ca-certificates curl gcc gnupg2 gzip hostname iproute procps-ng python3 python3-dnf-plugin-versionlock python3-jmespath python3-libselinux python3-lxml python3-pip python3-setuptools python3-virtualenv python3-wheel rsync shadow-utils sudo tar unzip util-linux xz yum-utils zip 133 | args: 134 | executable: /bin/bash 135 | when: ansible_distribution | lower == "fedora" 136 | changed_when: false 137 | failed_when: false 138 | 139 | - name: redhat-9 | yum install *.rpm 140 | ansible.builtin.raw: | 141 | set -eu 142 | yum-config-manager --enable crb || echo $? 143 | yum-config-manager --enable codeready-builder-for-rhel-9-x86_64-rpms || echo $? 144 | yum install -y bzip2 ca-certificates curl gcc gnupg2 gzip hostname iproute procps-ng python3 python3-dnf-plugin-versionlock python3-jmespath python3-libselinux python3-lxml python3-pip python3-setuptools python3-virtualenv python3-wheel rsync shadow-utils sudo tar unzip util-linux xz yum-utils zip 145 | args: 146 | executable: /bin/bash 147 | when: ansible_os_family | lower == "redhat" and ansible_distribution_major_version | lower == "9" 148 | changed_when: false 149 | failed_when: false 150 | 151 | - name: redhat-8 | yum install *.rpm 152 | ansible.builtin.raw: | 153 | set -eu 154 | yum install -y bzip2 ca-certificates curl gcc gnupg2 gzip hostname iproute procps-ng python3 python3-dnf-plugin-versionlock python3-jmespath python3-libselinux python3-lxml python3-pip python3-setuptools python3-virtualenv python3-wheel rsync shadow-utils sudo tar unzip util-linux xz yum-utils zip 155 | args: 156 | executable: /bin/bash 157 | when: ansible_os_family | lower == "redhat" and ansible_distribution_major_version | lower == "8" 158 | changed_when: false 159 | failed_when: false 160 | 161 | - name: redhat-7 | yum install *.rpm 162 | ansible.builtin.raw: | 163 | set -eu 164 | subscription-manager repos --enable=rhel-7-server-optional-rpms || echo $? 165 | yum install -y bzip2 ca-certificates curl gcc gnupg2 gzip hostname iproute procps-ng python3 python3-jmespath python3-libselinux python3-lxml python3-pip python3-setuptools python3-virtualenv python3-wheel rsync shadow-utils sudo tar unzip util-linux xz yum-plugin-versionlock yum-utils zip 166 | args: 167 | executable: /bin/bash 168 | when: ansible_os_family | lower == "redhat" and ansible_distribution_major_version | lower == "7" 169 | changed_when: false 170 | failed_when: false 171 | 172 | - name: suse | zypper -n install *.rpm 173 | ansible.builtin.raw: | 174 | set -eu 175 | zypper -n install -y bzip2 ca-certificates curl gcc gpg2 gzip hostname iproute2 procps python3 python3-jmespath python3-lxml python3-pip python3-setuptools python3-virtualenv python3-wheel rsync shadow sudo tar unzip util-linux xz zip 176 | args: 177 | executable: /bin/bash 178 | when: ansible_os_family | lower == "suse" 179 | changed_when: false 180 | failed_when: false 181 | -------------------------------------------------------------------------------- /molecule/default/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: verify | all 17 | hosts: all 18 | remote_user: root 19 | become: true 20 | tasks: 21 | - name: check port 22 | ansible.builtin.wait_for: 23 | port: 8090 24 | timeout: 300 25 | delay: 10 26 | async: 300 27 | poll: 10 28 | register: result 29 | until: result is succeeded 30 | retries: 30 31 | 32 | - name: check page 33 | ansible.builtin.uri: 34 | url: http://localhost:8090 35 | status_code: 200 36 | timeout: 300 37 | return_content: true 38 | async: 300 39 | poll: 10 40 | register: result 41 | until: result.status == 200 42 | retries: 30 43 | 44 | - name: check result 45 | ansible.builtin.fail: 46 | when: "'confluence' not in result.content" 47 | -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/fedora-41 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/fedora-41-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/fedora-42 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/fedora-42-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/fedora-rawhide 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/fedora-rawhide-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/opensuse-leap-15.6 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/opensuse-leap-15.6-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/opensuse-tumbleweed 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/opensuse-tumbleweed-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/rhel-7 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/rhel-7-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/rhel-8 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/rhel-8-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/rhel-9 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/rhel-9-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/ubuntu-20.04 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/ubuntu-20.04-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/ubuntu-22.04 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/ubuntu-22.04-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/ubuntu-24.04 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/ubuntu-24.04-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/ubuntu-25.04 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.04-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/cleanup.yml: -------------------------------------------------------------------------------- 1 | ../default/cleanup.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/converge.yml: -------------------------------------------------------------------------------- 1 | ../default/converge.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/group_vars/all/00-defaults.yml: -------------------------------------------------------------------------------- 1 | ../../../../defaults/main.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/group_vars/all/99-molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | openjdk_release: "21" 18 | -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | driver: 18 | name: vagrant 19 | provider: 20 | name: libvirt 21 | provision: true 22 | platforms: 23 | - name: ${_MOLECULE_INSTANCE_NAME}-1 24 | box: alvistack/ubuntu-25.10 25 | cpu: 2 26 | memory: 8192 27 | provider_raw_config_args: 28 | - cpu_mode = 'host-passthrough' 29 | - disk_bus = 'virtio' 30 | - nic_model_type = 'virtio' 31 | - video_type = 'virtio' 32 | - disk_driver :cache => 'writeback' 33 | - "storage :file, bus: 'virtio', cache: 'writeback'" 34 | instance_raw_config_args: 35 | - vm.box_check_update = false 36 | dependency: 37 | name: galaxy 38 | options: 39 | role-file: ansible-galaxy-requirements.yml 40 | requirements-file: ansible-galaxy-requirements.yml 41 | ignore-errors: true 42 | force: false 43 | provisioner: 44 | name: ansible 45 | inventory: 46 | links: 47 | group_vars: group_vars 48 | verifier: 49 | name: ansible 50 | prerun: false 51 | -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/prepare.yml: -------------------------------------------------------------------------------- 1 | ../default/prepare.yml -------------------------------------------------------------------------------- /molecule/ubuntu-25.10-libvirt/verify.yml: -------------------------------------------------------------------------------- 1 | ../default/verify.yml -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Copyright 2025 Wong Hoi Sing Edison 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | # See the License for the specific language governing permissions and 13 | # limitations under the License. 14 | 15 | ansible>=4.10 16 | ansible-lint 17 | ansible-runner 18 | ansible-runner-http 19 | argcomplete 20 | docker 21 | flake8 22 | jmespath 23 | molecule 24 | molecule-docker 25 | molecule-vagrant 26 | netaddr 27 | openshift 28 | python-vagrant 29 | yamllint 30 | -------------------------------------------------------------------------------- /scripts/bootstrap-ansible.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | set -euxo pipefail 18 | 19 | cd "$(cd "$(dirname "$0")"; pwd -P)/../" 20 | 21 | # Prepare APT dependencies 22 | if [ -x "$(command -v apt-get)" ]; then 23 | export DEBIAN_FRONTEND="noninteractive" 24 | apt-get update 25 | apt-get dist-upgrade -y 26 | apt-get install -y ansible ansible-lint bzip2 ca-certificates curl flake8 gcc gnupg gzip iproute2 pipx procps python3 python3-apt python3-docker python3-flake8 python3-jmespath python3-lxml python3-netaddr python3-pip python3-setuptools python3-vagrant python3-venv python3-virtualenv python3-wheel sudo tar unzip xz-utils yamllint zip 27 | fi 28 | 29 | # Prepare YUM dependencies 30 | if [ -x "$(command -v yum)" ]; then 31 | yum makecache 32 | yum update -y 33 | yum install -y ansible bzip2 ca-certificates curl gcc gnupg2 gzip iproute pipx procps-ng python3 python3-ansible-lint python3-dnf-plugin-versionlock python3-docker python3-flake8 python3-jmespath python3-libselinux python3-lxml python3-netaddr python3-pip python3-setuptools python3-vagrant python3-virtualenv python3-wheel sudo tar unzip xz yamllint yum-utils zip 34 | fi 35 | 36 | # Prepare Zypper dependencies 37 | if [ -x "$(command -v zypper)" ]; then 38 | zypper -n --gpg-auto-import-keys refresh 39 | zypper -n dist-upgrade -y --allow-vendor-change 40 | zypper -n install -y ansible ansible-lint bzip2 ca-certificates curl gcc gpg2 gzip iproute2 procps python3 python3-docker python3-flake8 python3-jmespath python3-lxml python3-netaddr python3-pip python3-pipx python3-setuptools python3-vagrant python3-virtualenv python3-wheel python3-yamllint sudo tar unzip xz zip 41 | fi 42 | 43 | # Install Ansible Collection dependencies 44 | ansible-galaxy collection install --force --requirements-file ansible-galaxy-requirements.yml 45 | -------------------------------------------------------------------------------- /tasks/debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: apt-key add 17 | vars: 18 | ansible_python_interpreter: "python3" 19 | ansible.builtin.get_url: 20 | url: "{{ item.url }}" 21 | dest: "{{ item.dest }}" 22 | checksum: "{{ item.checksum }}" 23 | mode: "{{ item.mode | default('0644') }}" 24 | timeout: 300 25 | loop: "{{ _apt_key }}" 26 | register: result 27 | until: result is succeeded 28 | 29 | - name: apt-add-repository 30 | ansible.builtin.deb822_repository: 31 | name: "{{ item.name }}" 32 | types: "{{ item.types }}" 33 | uris: "{{ item.uris }}" 34 | suites: "{{ item.suites }}" 35 | components: "{{ item.components }}" 36 | signed_by: "{{ item.signed_by }}" 37 | enabled: "{{ item.enabled }}" 38 | state: "{{ item.state }}" 39 | architectures: "{{ item.architectures | default(None) or omit }}" 40 | loop: "{{ _deb822_repository }}" 41 | register: result 42 | until: result is succeeded 43 | 44 | - name: apt-get update 45 | ansible.builtin.apt: 46 | update_cache: true 47 | changed_when: false 48 | 49 | - name: apt-mark unhold 50 | ansible.builtin.dpkg_selections: 51 | name: "{{ item.name | regex_replace('^(.*)=[0-9]*:*[0-9]+\\..*$', '\\1') }}" 52 | selection: install 53 | loop: "{{ _apt }}" 54 | when: item.state == "present" 55 | changed_when: false 56 | failed_when: false 57 | 58 | - name: apt-get install 59 | ansible.builtin.apt: 60 | name: "{{ item.name }}" 61 | state: "{{ item.state }}" 62 | loop: "{{ _apt }}" 63 | register: result 64 | until: result is succeeded 65 | notify: 66 | - confluence | systemctl restart confluence.service 67 | 68 | - name: apt-mark hold 69 | ansible.builtin.dpkg_selections: 70 | name: "{{ item.name | regex_replace('^(.*)=[0-9]*:*[0-9]+\\..*$', '\\1') }}" 71 | selection: hold 72 | loop: "{{ _apt }}" 73 | when: item.state == "present" 74 | changed_when: false 75 | failed_when: false 76 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: include default variables 17 | ansible.builtin.include_vars: ../vars/main.yml 18 | 19 | - name: include release specific variables 20 | ansible.builtin.include_vars: "{{ loop_var }}" 21 | loop: "{{ query('first_found', params) }}" 22 | loop_control: 23 | loop_var: loop_var 24 | vars: 25 | params: 26 | files: 27 | - "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" 28 | - "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml" 29 | - "{{ ansible_distribution | lower }}.yml" 30 | - "{{ ansible_os_family | lower }}-{{ ansible_distribution_version | lower }}.yml" 31 | - "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml" 32 | - "{{ ansible_os_family | lower }}.yml" 33 | paths: 34 | - ../vars 35 | skip: true 36 | 37 | - name: include release specific tasks 38 | ansible.builtin.include_tasks: "{{ loop_var }}" 39 | loop: "{{ query('first_found', params) }}" 40 | loop_control: 41 | loop_var: loop_var 42 | vars: 43 | params: 44 | files: 45 | - "{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" 46 | - "{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml" 47 | - "{{ ansible_distribution | lower }}.yml" 48 | - "{{ ansible_os_family | lower }}-{{ ansible_distribution_version | lower }}.yml" 49 | - "{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml" 50 | - "{{ ansible_os_family | lower }}.yml" 51 | paths: 52 | - . 53 | skip: true 54 | 55 | - name: groupadd 56 | ansible.builtin.group: 57 | name: "{{ confluence_group }}" 58 | system: true 59 | state: present 60 | 61 | - name: useradd 62 | ansible.builtin.user: 63 | name: "{{ confluence_owner }}" 64 | group: "{{ confluence_group }}" 65 | home: "{{ confluence_home }}" 66 | shell: /bin/bash 67 | system: true 68 | create_home: false 69 | state: present 70 | 71 | - name: prepare directories 72 | ansible.builtin.file: 73 | dest: "{{ item.dest }}" 74 | owner: "{{ item.owner | default('root') }}" 75 | group: "{{ item.group | default('root') }}" 76 | mode: "{{ item.mode | default('0755') }}" 77 | state: "{{ item.state | default('directory') }}" 78 | loop: 79 | - dest: /etc/systemd/system 80 | - dest: "{{ confluence_catalina }}" 81 | owner: "{{ confluence_owner }}" 82 | group: "{{ confluence_group }}" 83 | mode: "0700" 84 | - dest: "{{ confluence_catalina }}/bin" 85 | owner: "{{ confluence_owner }}" 86 | group: "{{ confluence_group }}" 87 | - dest: "{{ confluence_catalina }}/conf" 88 | owner: "{{ confluence_owner }}" 89 | group: "{{ confluence_group }}" 90 | - dest: "{{ confluence_home }}" 91 | owner: "{{ confluence_owner }}" 92 | group: "{{ confluence_group }}" 93 | mode: "0750" 94 | 95 | - name: copy templates 96 | ansible.builtin.template: 97 | dest: "{{ item.dest }}" 98 | src: "{{ item.src | default('./templates' + item.dest + '.j2') }}" 99 | owner: "{{ item.owner | default('root') }}" 100 | group: "{{ item.group | default('root') }}" 101 | mode: "{{ item.mode | default('0644') }}" 102 | loop: 103 | - dest: /etc/systemd/system/confluence.service 104 | - dest: "{{ confluence_catalina }}/bin/setenv.sh" 105 | src: ./templates/opt/atlassian/confluence/bin/setenv.sh.j2 106 | owner: "{{ confluence_owner }}" 107 | group: "{{ confluence_group }}" 108 | mode: "0755" 109 | - dest: "{{ confluence_catalina }}/conf/server.xml" 110 | src: ./templates/opt/atlassian/confluence/conf/server.xml.j2 111 | owner: "{{ confluence_owner }}" 112 | group: "{{ confluence_group }}" 113 | notify: 114 | - confluence | systemctl daemon-reload 115 | - confluence | systemctl restart confluence.service 116 | 117 | - name: prepare files 118 | ansible.builtin.file: 119 | dest: "{{ item.dest }}" 120 | owner: "{{ item.owner | default('root') }}" 121 | group: "{{ item.group | default('root') }}" 122 | mode: "{{ item.mode | default('0644') }}" 123 | state: "{{ item.state | default('file') }}" 124 | loop: 125 | - dest: /etc/systemd/system/confluence.service 126 | - dest: "{{ confluence_catalina }}/bin/setenv.sh" 127 | owner: "{{ confluence_owner }}" 128 | group: "{{ confluence_group }}" 129 | mode: "0755" 130 | - dest: "{{ confluence_catalina }}/conf/server.xml" 131 | owner: "{{ confluence_owner }}" 132 | group: "{{ confluence_group }}" 133 | notify: 134 | - confluence | systemctl daemon-reload 135 | - confluence | systemctl restart confluence.service 136 | 137 | - name: patch /opt/atlassian/confluence/conf/web.xml 138 | vars: 139 | ansible_python_interpreter: python3 140 | community.general.xml: 141 | path: "{{ confluence_catalina }}/conf/web.xml" 142 | xpath: "{{ item.xpath }}" 143 | namespaces: 144 | ns: https://jakarta.ee/xml/ns/jakartaee 145 | value: "{{ item.value }}" 146 | pretty_print: true 147 | state: present 148 | loop: 149 | - xpath: /ns:web-app/ns:session-config/ns:session-timeout 150 | value: "{{ (confluence_session_timeout | int) | string }}" 151 | - xpath: /ns:web-app/ns:session-config/ns:tracking-mode 152 | value: "COOKIE" 153 | - xpath: /ns:web-app/ns:session-config/ns:cookie-config/ns:max-age 154 | value: "{{ ((confluence_autologin_cookie_age | int) * 60) | string }}" 155 | notify: 156 | - confluence | systemctl restart confluence.service 157 | 158 | - name: patch /opt/atlassian/confluence/confluence/WEB-INF/web.xml 159 | vars: 160 | ansible_python_interpreter: python3 161 | community.general.xml: 162 | path: "{{ confluence_catalina }}/confluence/WEB-INF/web.xml" 163 | xpath: "{{ item.xpath }}" 164 | namespaces: 165 | ns: http://xmlns.jcp.org/xml/ns/javaee 166 | value: "{{ item.value }}" 167 | pretty_print: true 168 | state: present 169 | loop: 170 | - xpath: /ns:web-app/ns:session-config/ns:session-timeout 171 | value: "{{ (confluence_session_timeout | int) | string }}" 172 | - xpath: /ns:web-app/ns:session-config/ns:tracking-mode 173 | value: "COOKIE" 174 | - xpath: /ns:web-app/ns:session-config/ns:cookie-config/ns:max-age 175 | value: "{{ ((confluence_autologin_cookie_age | int) * 60) | string }}" 176 | notify: 177 | - confluence | systemctl restart confluence.service 178 | 179 | - name: patch /opt/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml 180 | vars: 181 | ansible_python_interpreter: python3 182 | community.general.xml: 183 | path: "{{ confluence_catalina }}/confluence/WEB-INF/classes/seraph-config.xml" 184 | xpath: /security-config/parameters/init-param[param-name[text()='autologin.cookie.age']] 185 | pretty_print: true 186 | state: present 187 | notify: 188 | - confluence | systemctl restart confluence.service 189 | 190 | - name: patch /opt/atlassian/confluence/confluence/WEB-INF/classes/seraph-config.xml 191 | vars: 192 | ansible_python_interpreter: python3 193 | community.general.xml: 194 | path: "{{ confluence_catalina }}/confluence/WEB-INF/classes/seraph-config.xml" 195 | xpath: /security-config/parameters/init-param[param-name[text()='autologin.cookie.age']] 196 | set_children: 197 | - param-name: autologin.cookie.age 198 | - param-value: "{{ ((confluence_autologin_cookie_age | int ) * 60) | string }}" 199 | pretty_print: true 200 | state: present 201 | notify: 202 | - confluence | systemctl restart confluence.service 203 | 204 | - name: flush handlers 205 | ansible.builtin.meta: flush_handlers 206 | 207 | - name: systemctl start confluence.service 208 | ansible.builtin.service: 209 | name: confluence.service 210 | state: started 211 | enabled: true 212 | changed_when: false 213 | failed_when: false 214 | -------------------------------------------------------------------------------- /tasks/redhat-7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: rpm --import 17 | ansible.builtin.rpm_key: 18 | key: "{{ item.key }}" 19 | fingerprint: "{{ item.fingerprint }}" 20 | state: "{{ item.state }}" 21 | loop: "{{ _rpm_key }}" 22 | register: result 23 | until: result is succeeded 24 | 25 | - name: yum-config-manager --add-repo 26 | ansible.builtin.yum_repository: 27 | file: "{{ item.file }}" 28 | name: "{{ item.name }}" 29 | description: "{{ item.description }}" 30 | baseurl: "{{ item.baseurl }}" 31 | enabled: "{{ item.enabled }}" 32 | priority: "{{ item.priority }}" 33 | module_hotfixes: "{{ item.module_hotfixes }}" 34 | gpgcheck: "{{ item.gpgcheck }}" 35 | gpgkey: "{{ item.gpgkey }}" 36 | state: "{{ item.state }}" 37 | loop: "{{ _yum_repository }}" 38 | 39 | - name: yum versionlock delete 40 | community.general.yum_versionlock: 41 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 42 | state: absent 43 | loop: "{{ _yum }}" 44 | when: item.state == "present" 45 | changed_when: false 46 | failed_when: false 47 | 48 | - name: yum install 49 | ansible.builtin.yum: # noqa fqcn[action-core] 50 | name: "{{ item.name }}" 51 | state: "{{ item.state }}" 52 | loop: "{{ _yum }}" 53 | register: result 54 | until: result is succeeded 55 | notify: 56 | - confluence | systemctl restart confluence.service 57 | 58 | - name: yum versionlock add 59 | community.general.yum_versionlock: 60 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 61 | state: present 62 | loop: "{{ _yum }}" 63 | when: item.state == "present" 64 | changed_when: false 65 | failed_when: false 66 | -------------------------------------------------------------------------------- /tasks/redhat-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: rpm --import 17 | ansible.builtin.rpm_key: 18 | key: "{{ item.key }}" 19 | fingerprint: "{{ item.fingerprint }}" 20 | state: "{{ item.state }}" 21 | loop: "{{ _rpm_key }}" 22 | register: result 23 | until: result is succeeded 24 | 25 | - name: yum-config-manager --add-repo 26 | ansible.builtin.yum_repository: 27 | file: "{{ item.file }}" 28 | name: "{{ item.name }}" 29 | description: "{{ item.description }}" 30 | baseurl: "{{ item.baseurl }}" 31 | enabled: "{{ item.enabled }}" 32 | priority: "{{ item.priority }}" 33 | module_hotfixes: "{{ item.module_hotfixes }}" 34 | gpgcheck: "{{ item.gpgcheck }}" 35 | gpgkey: "{{ item.gpgkey }}" 36 | state: "{{ item.state }}" 37 | loop: "{{ _yum_repository }}" 38 | 39 | - name: yum versionlock delete 40 | community.general.yum_versionlock: 41 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 42 | state: absent 43 | loop: "{{ _yum }}" 44 | when: item.state == "present" 45 | changed_when: false 46 | failed_when: false 47 | 48 | - name: yum install 49 | ansible.builtin.yum: # noqa fqcn[action-core] 50 | name: "{{ item.name }}" 51 | state: "{{ item.state }}" 52 | loop: "{{ _yum }}" 53 | register: result 54 | until: result is succeeded 55 | notify: 56 | - confluence | systemctl restart confluence.service 57 | 58 | - name: yum versionlock add 59 | community.general.yum_versionlock: 60 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 61 | state: present 62 | loop: "{{ _yum }}" 63 | when: item.state == "present" 64 | changed_when: false 65 | failed_when: false 66 | -------------------------------------------------------------------------------- /tasks/redhat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: rpm --import 17 | ansible.builtin.rpm_key: 18 | key: "{{ item.key }}" 19 | fingerprint: "{{ item.fingerprint }}" 20 | state: "{{ item.state }}" 21 | loop: "{{ _rpm_key }}" 22 | register: result 23 | until: result is succeeded 24 | 25 | - name: yum-config-manager --add-repo 26 | ansible.builtin.yum_repository: 27 | file: "{{ item.file }}" 28 | name: "{{ item.name }}" 29 | description: "{{ item.description }}" 30 | baseurl: "{{ item.baseurl }}" 31 | enabled: "{{ item.enabled }}" 32 | priority: "{{ item.priority }}" 33 | module_hotfixes: "{{ item.module_hotfixes }}" 34 | gpgcheck: "{{ item.gpgcheck }}" 35 | gpgkey: "{{ item.gpgkey }}" 36 | state: "{{ item.state }}" 37 | loop: "{{ _yum_repository }}" 38 | 39 | - name: yum versionlock delete 40 | community.general.dnf_versionlock: 41 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 42 | state: absent 43 | loop: "{{ _yum }}" 44 | when: item.state == "present" 45 | changed_when: false 46 | failed_when: false 47 | 48 | - name: yum install 49 | ansible.builtin.dnf: 50 | name: "{{ item.name }}" 51 | state: "{{ item.state }}" 52 | loop: "{{ _yum }}" 53 | register: result 54 | until: result is succeeded 55 | notify: 56 | - confluence | systemctl restart confluence.service 57 | 58 | - name: yum versionlock add 59 | community.general.dnf_versionlock: 60 | name: "{{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\\..*$', '\\1-*') }}" 61 | state: present 62 | loop: "{{ _yum }}" 63 | when: item.state == "present" 64 | changed_when: false 65 | failed_when: false 66 | -------------------------------------------------------------------------------- /tasks/suse.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Copyright 2025 Wong Hoi Sing Edison 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); 5 | # you may not use this file except in compliance with the License. 6 | # You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | - name: rpm --import 17 | vars: 18 | ansible_python_interpreter: python3 19 | ansible.builtin.rpm_key: 20 | key: "{{ item.key }}" 21 | fingerprint: "{{ item.fingerprint }}" 22 | state: "{{ item.state }}" 23 | loop: "{{ _rpm_key }}" 24 | register: result 25 | until: result is succeeded 26 | 27 | - name: yum-config-manager --add-repo 28 | ansible.builtin.yum_repository: 29 | file: "{{ item.file }}" 30 | name: "{{ item.name }}" 31 | description: "{{ item.description }}" 32 | baseurl: "{{ item.baseurl }}" 33 | enabled: "{{ item.enabled }}" 34 | priority: "{{ item.priority }}" 35 | module_hotfixes: "{{ item.module_hotfixes }}" 36 | gpgcheck: "{{ item.gpgcheck }}" 37 | gpgkey: "{{ item.gpgkey }}" 38 | state: "{{ item.state }}" 39 | reposdir: "{{ item.reposdir | default('/etc/zypp/repos.d') }}" 40 | loop: "{{ _yum_repository }}" 41 | 42 | - name: zypper removelock 43 | ansible.builtin.command: 44 | cmd: zypper removelock {{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\..*$', '\1-*') }} 45 | loop: "{{ _zypper }}" 46 | when: item.state == "present" 47 | changed_when: false 48 | failed_when: false 49 | 50 | - name: zypper install 51 | vars: 52 | ansible_python_interpreter: python3 53 | community.general.zypper: 54 | name: "{{ item.name }}" 55 | state: "{{ item.state }}" 56 | force_resolution: true 57 | loop: "{{ _zypper }}" 58 | register: result 59 | until: result is succeeded 60 | notify: 61 | - confluence | systemctl restart confluence.service 62 | 63 | - name: zypper addlock 64 | ansible.builtin.command: 65 | cmd: zypper addlock {{ item.name | regex_replace('^(.*)-[0-9]*:*[0-9]+\..*$', '\1-*') }} 66 | loop: "{{ _zypper }}" 67 | when: item.state == "present" 68 | changed_when: false 69 | failed_when: false 70 | -------------------------------------------------------------------------------- /templates/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alvistack/ansible-role-confluence/65aeb44b7fcd8731b17f06e5e8e0feb0743547ac/templates/.keep -------------------------------------------------------------------------------- /templates/etc/systemd/system/confluence.service.j2: -------------------------------------------------------------------------------- 1 | # {{ ansible_managed }} 2 | 3 | [Unit] 4 | Description=Atlassian Confluence 5 | After=multi-user.target 6 | Wants=multi-user.target 7 | 8 | [Service] 9 | Type=forking 10 | User={{ confluence_owner }} 11 | Group={{ confluence_group }} 12 | ExecStart={{ confluence_catalina }}/bin/start-confluence.sh 13 | ExecStop={{ confluence_catalina }}/bin/stop-confluence.sh 14 | PIDFile={{ confluence_catalina }}/work/catalina.pid 15 | 16 | [Install] 17 | WantedBy=multi-user.target 18 | -------------------------------------------------------------------------------- /templates/opt/atlassian/confluence/bin/setenv.sh.j2: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # {{ ansible_managed }} 4 | 5 | CONFLUENCE_HOME="{{ confluence_home }}" 6 | CONFLUENCE_CATALINA="{{ confluence_catalina }}" 7 | 8 | #----------------------------------------------------------------------------------- 9 | # See the CATALINA_OPTS below for tuning the JVM arguments used to start Confluence 10 | #----------------------------------------------------------------------------------- 11 | 12 | echo "If you encounter issues starting up Confluence, please see the Installation guide at http://confluence.atlassian.com/display/DOC/Confluence+Installation+Guide" 13 | 14 | # set the location of the pid file 15 | if [ -z "$CATALINA_PID" ] ; then 16 | if [ -n "$CATALINA_BASE" ] ; then 17 | CATALINA_PID="$CATALINA_BASE"/work/catalina.pid 18 | elif [ -n "$CATALINA_HOME" ] ; then 19 | CATALINA_PID="$CATALINA_HOME"/work/catalina.pid 20 | fi 21 | fi 22 | export CATALINA_PID 23 | 24 | PRGDIR=`dirname "$0"` 25 | if [ -z "$CATALINA_BASE" ]; then 26 | if [ -z "$CATALINA_HOME" ]; then 27 | LOGBASE=$PRGDIR 28 | LOGTAIL=.. 29 | else 30 | LOGBASE=$CATALINA_HOME 31 | LOGTAIL=. 32 | fi 33 | else 34 | LOGBASE=$CATALINA_BASE 35 | LOGTAIL=. 36 | fi 37 | 38 | PUSHED_DIR=`pwd` 39 | cd $LOGBASE 40 | cd $LOGTAIL 41 | LOGBASEABS=`pwd` 42 | cd $PUSHED_DIR 43 | echo "" 44 | echo "Server startup logs are located in $LOGBASEABS/logs/catalina.out" 45 | 46 | # IMPORTANT NOTE: Only set JAVA_HOME or JRE_HOME above this line 47 | # Get standard Java environment variables 48 | if $os400; then 49 | # -r will Only work on the os400 if the files are: 50 | # 1. owned by the user 51 | # 2. owned by the PRIMARY group of the user 52 | # this will not work if the user belongs in secondary groups 53 | . "$CATALINA_HOME"/bin/setjre.sh 54 | else 55 | if [ -r "$CATALINA_HOME"/bin/setjre.sh ]; then 56 | . "$CATALINA_HOME"/bin/setjre.sh 57 | else 58 | echo "Cannot find $CATALINA_HOME/bin/setjre.sh" 59 | echo "This file is needed to run this program" 60 | exit 1 61 | fi 62 | fi 63 | 64 | echo "---------------------------------------------------------------------------" 65 | echo "Using Java: $JRE_HOME/bin/java" 66 | CONFLUENCE_CONTEXT_PATH=`$JRE_HOME/bin/java -jar $CATALINA_HOME/bin/confluence-context-path-extractor.jar $CATALINA_HOME` 67 | export CONFLUENCE_CONTEXT_PATH 68 | $JRE_HOME/bin/java -jar $CATALINA_HOME/bin/synchrony-proxy-watchdog.jar $CATALINA_HOME 69 | echo "---------------------------------------------------------------------------" 70 | 71 | #----------------------------------------------------------------------------------- 72 | # This section contains commonly modified Java options and system properties 73 | # When upgrading Confluence, copy this section to reapply your customizations 74 | # Always the review the new file for any changes to the default values 75 | 76 | # To learn more about Java 11 options see: 77 | # https://docs.oracle.com/en/java/javase/11/tools/java.html 78 | #----------------------------------------------------------------------------------- 79 | 80 | # Set the Java heap size 81 | CATALINA_OPTS="-Xms{{ confluence_jvm_minimum_memory }} -Xmx{{ confluence_jvm_maximum_memory }} ${CATALINA_OPTS}" 82 | 83 | # Default values for small to medium size instances 84 | CATALINA_OPTS="-XX:ReservedCodeCacheSize={{ confluence_jvm_reserved_code_cache_size }} ${CATALINA_OPTS}" 85 | 86 | # Add various JPMS arguments to allow Confluence to work on Java 17 87 | CATALINA_OPTS="@$CATALINA_HOME/confluence/WEB-INF/jpms-args.txt ${CATALINA_OPTS}" 88 | 89 | # Default garbage collector and its settings 90 | if [ -z "${CONFLUENCE_GC_OPTS}" ]; then 91 | CONFLUENCE_GC_OPTS="{{ confluence_jvm_gc_args }}" 92 | fi 93 | 94 | # Default garbage collector log 95 | if [ -z "${CONFLUENCE_GC_LOG}" ]; then 96 | CONFLUENCE_GC_LOG="-Xlog:gc*:file=$LOGBASEABS/logs/gc-%t.log:tags,time,uptime,level:filecount=5,filesize=2M" 97 | fi 98 | 99 | # Recommended values for medium to large, and enterprise size instances 100 | # For -XX:ReservedCodeCacheSize - comment out the default values in the block above, then uncomment the values below 101 | #CATALINA_OPTS="-XX:ReservedCodeCacheSize=384m ${CATALINA_OPTS}" 102 | # To learn more about the impact of disabling the upgrade recovery file see: 103 | # https://confluence.atlassian.com/x/ShtwPg 104 | #CATALINA_OPTS="-Dconfluence.upgrade.recovery.file.enabled=false ${CATALINA_OPTS}" 105 | # For -Xlog:gc - uncomment the default values in the block below, then comment out the values in the last block of this file 106 | #CATALINA_OPTS="-Xlog:gc*=debug:file=$LOGBASEABS/logs/gc-%t.log:tags,time,uptime,level:filecount=5,filesize=2M ${CATALINA_OPTS}" 107 | 108 | # Additional Confluence system properties 109 | # For a list of properties recognized by Confluence see: 110 | # https://confluence.atlassian.com/display/DOC/Recognized+System+Properties 111 | # We recommend you include a support ticket ID and/or note to help track the reason for change 112 | # For example: 113 | # CSP-123456 - Added example JVM option to help explain this section 114 | #CATALINA_OPTS="-Dexample.property=true ${CATALINA_OPTS}" 115 | 116 | # Uncomment this line to disable email notifications 117 | #CATALINA_OPTS="-Datlassian.mail.senddisabled=true -Datlassian.mail.fetchdisabled=true ${CATALINA_OPTS}" 118 | 119 | #----------------------------------------------------------------------------------- 120 | # End of commonly modified Java options. You should not need to change the options 121 | # below unless recommended by Atlassian Support 122 | #----------------------------------------------------------------------------------- 123 | 124 | CATALINA_OPTS="-XX:+IgnoreUnrecognizedVMOptions ${CATALINA_OPTS}" 125 | CATALINA_OPTS="${CONFLUENCE_GC_OPTS} ${CATALINA_OPTS}" 126 | CATALINA_OPTS="${CONFLUENCE_GC_LOG} ${CATALINA_OPTS}" 127 | CATALINA_OPTS="-Djava.awt.headless=true ${CATALINA_OPTS}" 128 | CATALINA_OPTS="-Dsynchrony.enable.xhr.fallback=true ${CATALINA_OPTS}" 129 | CATALINA_OPTS="-Dconfluence.catalina.connector.port={{ confluence_catalina_connector_port }} ${CATALINA_OPTS}" 130 | CATALINA_OPTS="-Dconfluence.catalina.connector.scheme={{ confluence_catalina_connector_scheme }} ${CATALINA_OPTS}" 131 | CATALINA_OPTS="-Dconfluence.catalina.connector.secure={{ confluence_catalina_connector_secure }} ${CATALINA_OPTS}" 132 | CATALINA_OPTS="-Dconfluence.catalina.connector.proxyname={{ confluence_catalina_connector_proxyname }} ${CATALINA_OPTS}" 133 | CATALINA_OPTS="-Dconfluence.catalina.connector.proxyport={{ confluence_catalina_connector_proxyport }} ${CATALINA_OPTS}" 134 | CATALINA_OPTS="-Dconfluence.catalina.context.path={{ confluence_catalina_context_path }} ${CATALINA_OPTS}" 135 | CATALINA_OPTS="-Dorg.apache.tomcat.websocket.DEFAULT_BUFFER_SIZE=32768 ${CATALINA_OPTS}" 136 | CATALINA_OPTS="-Djobs.limit.per.purge=1048576 ${CATALINA_OPTS}" 137 | CATALINA_OPTS="-Dall.jobs.ttl.hours=72 ${CATALINA_OPTS}" 138 | CATALINA_OPTS="-Dunsuccessful.jobs.ttl.hours=24 ${CATALINA_OPTS}" 139 | CATALINA_OPTS="-Dconfluence.home=${CONFLUENCE_HOME} ${CATALINA_OPTS}" 140 | CATALINA_OPTS="{{ confluence_jvm_support_recommended_args }} ${CATALINA_OPTS}" 141 | CATALINA_OPTS="${START_CONFLUENCE_JAVA_OPTS} ${CATALINA_OPTS}" 142 | 143 | export CATALINA_OPTS 144 | 145 | #----------------------------------------------------------------------------------- 146 | # End configuration options 147 | #----------------------------------------------------------------------------------- 148 | -------------------------------------------------------------------------------- /templates/opt/atlassian/confluence/conf/server.xml.j2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 12 | 19 | 32 | 33 | 40 | 41 | 48 | 49 | 58 | 59 | 71 | 72 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 97 | 98 | 99 | 100 | 101 | 102 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /vars/almalinux-10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_10_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/almalinux-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_8_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/almalinux-9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_9_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/centos-10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_10_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_10_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/centos-7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_7) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/centos-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_8_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/centos-9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_9_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/debian-12.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_12/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_12 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/debian-13.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_13/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_13 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_Testing/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Debian_Testing 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/fedora-41.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_41/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (Fedora_41) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_41 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_41/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/fedora-42.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_42/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (Fedora_42) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_42 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_42/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _confluence_version: 18 | "10.1": 10.1.0 19 | "9.2": 9.2.9 20 | "8.5": 8.5.27 21 | -------------------------------------------------------------------------------- /vars/redhat-7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_7) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_7/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/redhat-8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_8_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_8_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/redhat-9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (CentOS_9_Stream) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/CentOS_9_Stream/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/redhat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_Rawhide/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home:alvistack 24 | name: home_alvistack 25 | description: home:alvistack (Fedora_Rawhide) 26 | baseurl: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_Rawhide 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: https://downloadcontent.opensuse.org/repositories/home:/alvistack/Fedora_Rawhide/repodata/repomd.xml.key 32 | state: present 33 | 34 | _yum: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}*" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/suse-15.6.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: http://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Leap_15.6/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home_alvistack 24 | name: home_alvistack 25 | description: home:alvistack (openSUSE_Leap_15.6) 26 | baseurl: http://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Leap_15.6 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: http://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Leap_15.6/repodata/repomd.xml.key 32 | state: present 33 | 34 | _zypper: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/suse.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _rpm_key: 18 | - key: https://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Tumbleweed/repodata/repomd.xml.key 19 | fingerprint: 789CFFDE0295B8A1F4E5690C4BECC97550D0B1FD 20 | state: present 21 | 22 | _yum_repository: 23 | - file: home_alvistack 24 | name: home_alvistack 25 | description: home:alvistack (openSUSE_Tumbleweed) 26 | baseurl: https://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Tumbleweed 27 | enabled: true 28 | priority: "2" 29 | module_hotfixes: true 30 | gpgcheck: true 31 | gpgkey: https://downloadcontent.opensuse.org/repositories/home:/alvistack/openSUSE_Tumbleweed/repodata/repomd.xml.key 32 | state: present 33 | 34 | _zypper: 35 | - { state: present, name: "atlassian-confluence-100:{{ confluence_version }}" } 36 | - { state: latest, name: fontconfig } 37 | -------------------------------------------------------------------------------- /vars/ubuntu-20.04.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_20.04/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_20.04 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/ubuntu-22.04.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_22.04/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_22.04 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/ubuntu-24.04.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_24.04 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/ubuntu-25.04.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_25.04/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_25.04 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | -------------------------------------------------------------------------------- /vars/ubuntu-25.10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | # Copyright 2025 Wong Hoi Sing Edison 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | 17 | _apt_key: 18 | - url: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_25.10/Release.key 19 | dest: /etc/apt/keyrings/home-alvistack.asc 20 | checksum: "sha256:90b960d05e9c5f068f70a6afa1c2623c400312f4e719bd97719d85e49b7de2b2" 21 | 22 | _deb822_repository: 23 | - name: home-alvistack 24 | types: deb 25 | uris: http://downloadcontent.opensuse.org/repositories/home:/alvistack/xUbuntu_25.10 26 | suites: / 27 | components: 28 | signed_by: /etc/apt/keyrings/home-alvistack.asc 29 | enabled: true 30 | state: present 31 | 32 | _apt: 33 | - { state: present, name: "atlassian-confluence=100:{{ confluence_version }}*" } 34 | - { state: latest, name: fontconfig } 35 | --------------------------------------------------------------------------------