├── .ansible-lint ├── .cookiecutter.yml ├── .gitattributes ├── .github ├── .pull_request_template.md ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── documentation_report.md │ └── feature_request.md └── workflows │ └── build.yml ├── .gitignore ├── .gitlab-ci.yml ├── .yamllint ├── LICENSE ├── README.md ├── defaults └── main.yml ├── meta └── main.yml ├── molecule ├── cloud-aws-adoptium-11 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-adoptium-12 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-adoptium-8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-adoptium-windows │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-corretto-11 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-corretto-8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-direct-11 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-direct-12 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-direct-6 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-direct-7 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-direct-8 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-dragonwell8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-openjdk-11 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-openjdk-12 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-openjdk-8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-openjdk-ga │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-openjdk-windows-ga │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-sapjvm-8 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-sapmachine-11 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-sapmachine-12 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-sapmachine-13 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-sapmachine-windows │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-windows-11 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-windows-12 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-windows-8 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-aws-windows-openjdk11-chocolatey │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-windows-openjdk13-chocolatey │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-windows-sapjvm-8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-windows-zulu-12 │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-windows-zulu12-chocolatey │ ├── molecule.yml │ └── playbook.yml ├── cloud-aws-zulu-12 │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-adoptium-windows │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-openjdk-windows-ga │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-sapmachine-windows │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-windows-11 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-azure-windows-12 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-azure-windows-8 │ ├── molecule.yml │ ├── playbook.yml │ └── prepare.yml ├── cloud-azure-windows-corretto │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-windows-openjdk14-chocolatey │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-windows-sapjvm-8 │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-windows-zulu-12 │ ├── molecule.yml │ └── playbook.yml ├── cloud-azure-windows-zulu12-chocolatey │ ├── molecule.yml │ └── playbook.yml ├── cloud-epc-delegated │ ├── molecule.yml │ └── playbook.yml ├── default │ ├── Dockerfile.j2 │ ├── molecule.yml │ └── playbook.yml └── resources │ ├── prepare.yml │ └── tests │ ├── verify.yml │ └── verify_win.yml ├── requirements.yml ├── sonar-project.properties ├── tasks ├── Linux │ ├── fetch │ │ ├── adoptium-fallback.yml │ │ ├── corretto-fallback.yml │ │ ├── dragonwell8-fallback.yml │ │ ├── local.yml │ │ ├── openjdk-fallback.yml │ │ ├── repositories.yml │ │ ├── s3.yml │ │ ├── sapjvm-fallback.yml │ │ ├── sapmachine-fallback.yml │ │ ├── security-fetch │ │ │ ├── security-fetch-local.yml │ │ │ ├── security-fetch-oracle_java-fallback.yml │ │ │ ├── security-fetch-s3.yml │ │ │ └── security-fetch-web.yml │ │ ├── web.yml │ │ └── zulu-fallback.yml │ ├── finalize_paths.yml │ ├── install │ │ ├── Amazon_2_corretto_8.yml │ │ ├── Debian.yml │ │ ├── Debian_adoptium.yml │ │ ├── RedHat.yml │ │ ├── RedHat_adoptium.yml │ │ ├── Suse.yml │ │ ├── sapjvm_tarball.yml │ │ └── tarball.yml │ ├── security_policy.yml │ ├── system.yml │ └── system_repositories.yml ├── Win32NT │ ├── fetch │ │ ├── adoptium-fallback.yml │ │ ├── chocolatey.yml │ │ ├── corretto-fallback.yml │ │ ├── local.yml │ │ ├── openjdk-fallback.yml │ │ ├── sapjvm-fallback.yml │ │ ├── sapmachine-fallback.yml │ │ ├── security-fetch │ │ │ ├── security-winfetch-local.yml │ │ │ ├── security-winfetch-oracle_java-fallback.yml │ │ │ └── security-winfetch-web.yml │ │ ├── web.yml │ │ └── zulu-fallback.yml │ ├── finalize_paths.yml │ ├── install │ │ ├── adoptium_tarball.yml │ │ ├── chocolatey.yml │ │ ├── corretto_package.yml │ │ ├── package.yml │ │ ├── sapjvm_tarball.yml │ │ ├── sapmachine_tarball.yml │ │ ├── tarball.yml │ │ └── zulu_tarball.yml │ ├── security_policy.yml │ ├── system.yml │ └── system_chocolatey.yml ├── main.yml ├── not-supported.yml └── unknown-transport.yml ├── templates └── java.sh.j2 └── vars ├── Debian.yml ├── RedHat.yml ├── Suse.yml ├── Windows.yml ├── default.yml ├── java_distro_configs ├── adoptium_vars.yml ├── corretto_vars.yml ├── dragonwell8_vars.yml ├── openjdk_vars.yml ├── oracle_java_vars.yml ├── sapjvm_vars.yml ├── sapmachine_vars.yml └── zulu_vars.yml ├── java_parts.yml └── main.yml /.ansible-lint: -------------------------------------------------------------------------------- 1 | --- 2 | exclude_paths: 3 | - ./molecule/ 4 | rulesdir: 5 | - ~/ansible-lint-rules/rules/ 6 | use_default_rules: true 7 | verbosity: 1 8 | -------------------------------------------------------------------------------- /.cookiecutter.yml: -------------------------------------------------------------------------------- 1 | --- 2 | default_context: 3 | role_name: java 4 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # yaml, yml, sh and py files will be always coverted to LF EOL 2 | *.yml text eol=lf 3 | *.py text eol=lf 4 | *.sh text eol=lf -------------------------------------------------------------------------------- /.github/.pull_request_template.md: -------------------------------------------------------------------------------- 1 | # Pull Request Template 2 | 3 | ## Description 4 | 5 | Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. 6 | 7 | Fixes # (issue) 8 | 9 | ## Type of change 10 | 11 | Please delete options that are not relevant. 12 | 13 | - [ ] Bug fix (non-breaking change which fixes an issue) 14 | - [ ] New feature (non-breaking change which adds functionality) 15 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 16 | - [ ] This change requires a documentation update 17 | 18 | ## Reviews 19 | 20 | Please identify developer to review this change 21 | 22 | - [ ] @developer 23 | 24 | ## Checklist: 25 | 26 | - [ ] I have performed a self-review of my own code 27 | - [ ] I have made corresponding changes to the documentation 28 | - [ ] My changes generate no new warnings 29 | - [ ] I have added tests that prove my fix is effective or that my feature works 30 | - [ ] New and existing tests pass with my changes 31 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 🐛 Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | 13 | 14 | ##### SUMMARY 15 | 16 | 17 | ##### ISSUE TYPE 18 | - Bug Report 19 | 20 | ##### COMPONENT NAME 21 | 23 | 24 | ##### ANSIBLE VERSION 25 | 26 | ``` 27 | 28 | ``` 29 | 30 | ##### CONFIGURATION 31 | 34 | 35 | ##### OS / ENVIRONMENT 36 | 40 | 41 | ##### STEPS TO REPRODUCE 42 | 44 | 45 | 46 | ```yaml 47 | 48 | ``` 49 | 50 | 51 | 52 | ##### EXPECTED RESULTS 53 | 54 | 55 | ##### ACTUAL RESULTS 56 | 57 | 58 | 59 | ``` 60 | 61 | ``` 62 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 📝 Documentation Report 3 | about: Ask us about docs 4 | 5 | --- 6 | 7 | 13 | 14 | ##### SUMMARY 15 | 16 | 17 | ##### ISSUE TYPE 18 | - Documentation Report 19 | 20 | ##### COMPONENT NAME 21 | 23 | 24 | ##### ANSIBLE VERSION 25 | 26 | ``` 27 | 28 | ``` 29 | 30 | ##### CONFIGURATION 31 | 34 | 35 | ##### OS / ENVIRONMENT 36 | 40 | 41 | ##### STEPS TO REPRODUCE 42 | 44 | 45 | 46 | ```yaml 47 | 48 | ``` 49 | 50 | 51 | 52 | ##### EXPECTED RESULTS 53 | 54 | 55 | ##### ACTUAL RESULTS 56 | 57 | 58 | 59 | ``` 60 | 61 | ``` 62 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: ✨ Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | 13 | 14 | ##### SUMMARY 15 | 16 | 17 | ##### ISSUE TYPE 18 | - Feature Idea 19 | 20 | ##### COMPONENT NAME 21 | 23 | 24 | ##### ANSIBLE VERSION 25 | 26 | ``` 27 | 28 | ``` 29 | 30 | ##### CONFIGURATION 31 | 34 | 35 | ##### OS / ENVIRONMENT 36 | 40 | 41 | ##### STEPS TO REPRODUCE 42 | 44 | 45 | 46 | ```yaml 47 | 48 | ``` 49 | 50 | 51 | 52 | ##### EXPECTED RESULTS 53 | 54 | 55 | ##### ACTUAL RESULTS 56 | 57 | 58 | 59 | ``` 60 | 61 | ``` 62 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: CI 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | types: [opened, synchronize, reopened] 9 | env: 10 | PY_COLORS: 1 11 | ANSIBLE_FORCE_COLOR: 1 12 | ANSIBLE_STDOUT_CALLBACK: yaml 13 | jobs: 14 | sonarcloud: 15 | name: SonarCloud 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v2 19 | with: 20 | fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis 21 | - name: SonarCloud Scan 22 | uses: SonarSource/sonarcloud-github-action@master 23 | env: 24 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any 25 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | *.pyc 3 | *.rst 4 | *.log -------------------------------------------------------------------------------- /.yamllint: -------------------------------------------------------------------------------- 1 | --- 2 | extends: default 3 | 4 | rules: 5 | braces: 6 | max-spaces-inside: 1 7 | level: error 8 | brackets: 9 | max-spaces-inside: 1 10 | level: error 11 | colons: 12 | max-spaces-after: -1 13 | level: error 14 | commas: 15 | max-spaces-after: -1 16 | level: error 17 | empty-lines: 18 | max: 3 19 | level: error 20 | hyphens: 21 | level: error 22 | truthy: disable 23 | comments: disable 24 | comments-indentation: disable 25 | indentation: disable 26 | key-duplicates: enable 27 | line-length: 28 | max: 350 29 | level: warning 30 | new-lines: 31 | type: unix 32 | -------------------------------------------------------------------------------- /defaults/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Java distribution type: 3 | # - openjdk 4 | # - oracle_java 5 | # - sapjvm 6 | # - zulu 7 | # - adoptium (not supported 9/10) 8 | # - alibaba_dragonwell (8 only) 9 | # - sapmachine 10 | # - Amazon Corretto (supported only 8/11) 11 | java_distribution: openjdk 12 | 13 | # OpenJDK tarball supported only jdk 14 | # Oracle java supported jre/server-jre/jdk 15 | # AdoptOpenJDK supported jdk/jre 16 | # SapMachine supported jdk/jre 17 | # Alibaba Dragonwell supported jdk only 18 | # Amazon Corretto 8 supported jdk/jre, jre only for Windows and Amazon Linux2 19 | # Amazon Corretto 11 supported only jdk 20 | java_package: jdk 21 | 22 | # AdoptOpenJDK Implementation (hotspot/openj9) 23 | adoptium_impl: hotspot 24 | 25 | # OpenJDK Redhat: 8 (packages) / 11 (package for centos7, tarball for all other) / 12 (tarball) 26 | # OpenJDK Debian: 8 (packages) / 11 (package for ubuntu18, tarball for all other) / 12 (tarball) 27 | # Oracle java: 8 (jre/server-jre/jdk) / 11 (jdk) 28 | java_major_version: 12 29 | java_minor_version: '*' 30 | java_product_id: '{{ java_product_id_ver[java_major_version | int] }}' 31 | 32 | # This features supported only for oracle java and rhel packages install 33 | # x64 (default), i586 34 | java_arch: 'x64' 35 | 36 | # java installation path 37 | java_path: "{{ (transport == 'repositories') | ternary('/usr/lib/jvm', java_default_path) }}" 38 | 39 | # local download path 40 | java_download_path: '{{ java_download_default_path }}' 41 | 42 | # Custom artifact source transport 43 | java_tarball_install: >- 44 | {{ transport != 'repositories' }} 45 | java_binary_type: >- 46 | {{ java_tarball_install | ternary('tarball', 'package') }} 47 | transport: fallback 48 | # available are: 49 | # - "web" Fetching artifact from custom web uri (not supporting idempotent operation) 50 | # - "s3" Fetching artifact from s3 bucket 51 | # - "chocolatey" Windows specific package manager 52 | # - "local" Local artifact 53 | # - "repositories" Install from repositories for Debian and RHEL 54 | # - "openjdk-fallback" Install from artifact downloaded from openjdk site 55 | # - "adoptium-fallback" Install from artifact downloaded from adoptium site 56 | # - "sapjvm-fallback" Install from artifact downloaded from SAP site 57 | # - "zulu-fallback" Install from artifact downloaded from AZUL site 58 | # - "sapmachine-fallback" Install from artifact downloaded from SapMachine site 59 | # - "dragonwell-fallback" Install from artifact downloaded from GitHub site 60 | # - "corretto-fallback" Install from artifact downloaded from AWS Amazon site 61 | 62 | transport_web: '{{ transport_web_default }}' 63 | transport_local: "/tmp/openjdk-11.0.2_linux-x64_bin.tar.gz" 64 | 65 | transport_s3_bucket: s3_bucket 66 | transport_s3_path: /folder/jdk-8u172-linux-x64.tar.gz 67 | transport_s3_aws_access_key: "{{ lookup('env','AWS_ACCESS_KEY') }}" 68 | transport_s3_aws_secret_key: "{{ lookup('env','AWS_SECRET_KEY') }}" 69 | 70 | java_setup_path: true 71 | java_alternative_priority: 100 72 | 73 | # Configure unlimited security policy 74 | java_unlimited_policy_enabled: false 75 | # For Java earlier than 1.8.0_151 76 | java_unlimited_policy_transport: '{{ transport }}' 77 | # available are: 78 | # - "oracle-fallback" Downloading artifact from pre-defined oracle otn path 79 | # - "web" Fetching artifact from custom web uri (not supporting idempotent operation) 80 | # - "s3" Fetching artifact from s3 bucket 81 | # - "local" Local artifact 82 | java_unlimited_policy_transport_s3_bucket: s3_bucket 83 | java_unlimited_policy_transport_s3_path: /folder/jce_policy-8.zip 84 | java_unlimited_policy_transport_web: http://my-storage.com/jce_policy-8.zip 85 | java_unlimited_policy_transport_local: /tmp/jce_policy-8.zip 86 | -------------------------------------------------------------------------------- /meta/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | galaxy_info: 3 | role_name: "java" 4 | author: "Lean Delivery team " 5 | description: "Lean Delivery Java install" 6 | company: "Epam Systems" 7 | license: "Apache" 8 | min_ansible_version: "2.8" 9 | issue_tracker_url: "https://github.com/lean-delivery/ansible-role-java/issues" 10 | platforms: 11 | - name: "Ubuntu" 12 | versions: 13 | - "xenial" 14 | - "bionic" 15 | - name: "Debian" 16 | versions: 17 | - "stretch" 18 | - "buster" 19 | - name: "EL" 20 | versions: 21 | - "6" 22 | - "7" 23 | - "8" 24 | - name: "Amazon" 25 | versions: 26 | - "2017.12" 27 | - "Candidate" 28 | - name: "Windows" 29 | versions: 30 | - "2016" 31 | - "2019" 32 | 33 | galaxy_tags: 34 | - "development" 35 | - "system" 36 | - "packaging" 37 | - "java" 38 | - "oracle" 39 | - "jdk" 40 | - "jre" 41 | - "openjdk" 42 | - "adoptopenjdk" 43 | - "sapmachine" 44 | - "zulu" 45 | - "sapjvm" 46 | - "windows" 47 | 48 | dependencies: [] 49 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-centos7-adoptium-hotspot-jre-tarball-11 13 | image: ami-9887c6e7 14 | platform: centos7 15 | instance_type: t3.micro 16 | region: us-east-1 17 | vpc_subnet_id: subnet-0f2b9cd66faea38af 18 | assign_public_ip: false 19 | spot_price: 0.04 20 | security_group_name: 21 | - default 22 | wait_timeout: 1800 23 | ssh_user: centos 24 | groups: 25 | - rhel_family 26 | - adoptium 27 | - hotspot 28 | - jre 29 | - adoptium_fallback 30 | 31 | - name: test-aws-ubuntu18-adoptium-openj9-jdk-tarball-11 32 | image: ami-012fd5eb46f56731f 33 | platform: ubuntu18 34 | instance_type: t3.micro 35 | region: us-east-1 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | assign_public_ip: false 38 | spot_price: 0.04 39 | security_group_name: 40 | - default 41 | wait_timeout: 1800 42 | ssh_user: ubuntu 43 | groups: 44 | - debian_family 45 | - adoptium 46 | - openj9 47 | - jdk 48 | - adoptium_fallback 49 | 50 | - name: test-aws-Debian9-adoptium-hotspot-jdk-repositories-11 51 | image: ami-003f19e0e687de1cd 52 | platform: debian9 53 | instance_type: t3.micro 54 | region: us-east-1 55 | vpc_subnet_id: subnet-0f2b9cd66faea38af 56 | assign_public_ip: false 57 | spot_price: 0.04 58 | security_group_name: 59 | - default 60 | wait_timeout: 1800 61 | ssh_user: admin 62 | groups: 63 | - debian_family 64 | - adoptium 65 | - hotspot 66 | - jdk 67 | - repositories 68 | 69 | # - name: test-aws-centos8-adoptium-openj9-jre-repositories-11 70 | # image: ami-0ed2ad9dc845b42b6 71 | # platform: centos8 72 | # instance_type: t3.micro 73 | # region: us-east-1 74 | # vpc_subnet_id: subnet-0f2b9cd66faea38af 75 | # assign_public_ip: false 76 | # spot_price: 0.04 77 | # security_group_name: 78 | # - default 79 | # wait_timeout: 1800 80 | # ssh_user: centos 81 | # groups: 82 | # - rhel_family 83 | # - adoptium 84 | # - openj9 85 | # - jre 86 | # - repositories 87 | 88 | - name: test-aws-centos7-adoptium-local-11 89 | image: ami-9887c6e7 90 | platform: centos7 91 | instance_type: t3.micro 92 | region: us-east-1 93 | vpc_subnet_id: subnet-0f2b9cd66faea38af 94 | assign_public_ip: false 95 | spot_price: 0.04 96 | security_group_name: 97 | - default 98 | wait_timeout: 1800 99 | ssh_user: centos 100 | groups: 101 | - rhel_family 102 | - adoptium 103 | - local 104 | 105 | provisioner: 106 | name: ansible 107 | log: false 108 | config_options: 109 | defaults: 110 | forks: 30 111 | callback_whitelist: profile_tasks,timer 112 | inventory: 113 | group_vars: 114 | adoptium: 115 | java_distribution: adoptium 116 | java_major_version: 11 117 | jdk: 118 | java_package: jdk 119 | jre: 120 | java_package: jre 121 | openj9: 122 | adoptium_impl: openj9 123 | hotspot: 124 | adoptium_impl: hotspot 125 | adoptium_fallback: 126 | transport: fallback 127 | repositories: 128 | transport: repositories 129 | local: 130 | transport: local 131 | transport_local: /tmp/OpenJDK11U-jdk_x64_linux_hotspot_11.0.3_7.tar.gz 132 | playbooks: 133 | create: ../resources/provisioning/AWS/create.yml 134 | prepare: ../cloud-aws-adoptium-11/prepare.yml 135 | destroy: ../resources/provisioning/AWS/destroy.yml 136 | verify: ../resources/tests/verify.yml 137 | scenario: 138 | name: cloud-aws-adoptium-11 139 | verifier: 140 | name: ansible 141 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-11/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - name: Enable EPEL repository 28 | yum: 29 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-\ 30 | {{ ansible_distribution_major_version }}.noarch.rpm" 31 | state: 'present' 32 | register: status 33 | retries: 10 34 | delay: 5 35 | until: status is succeeded 36 | become: true 37 | 38 | - name: Add python-dnf 39 | yum: 40 | name: >- 41 | {{ (ansible_facts.python.version.major|int ==3 ) 42 | | ternary('python3-dnf', 'python-dnf') }} 43 | state: 'present' 44 | register: status 45 | retries: 10 46 | delay: 5 47 | until: status is succeeded 48 | become: true 49 | 50 | - name: Prepare host to S3 transport 51 | hosts: localhost 52 | gather_facts: true 53 | vars: 54 | transport_s3_bucket: java-molecule-s3-test 55 | transport_s3_path: /java/adoptium/OpenJDK11U-jdk_x64_linux_hotspot_11.0.3_7.tar.gz 56 | java_download_path: /tmp 57 | tasks: 58 | - name: Download artifact from s3 59 | aws_s3: 60 | bucket: '{{ transport_s3_bucket }}' 61 | object: '{{ transport_s3_path }}' 62 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 63 | mode: get 64 | overwrite: different 65 | retries: 5 66 | delay: 2 67 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-12/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - name: Enable EPEL repository 28 | yum: 29 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-\ 30 | {{ ansible_distribution_major_version }}.noarch.rpm" 31 | state: 'present' 32 | register: status 33 | retries: 10 34 | delay: 5 35 | until: status is succeeded 36 | become: true 37 | 38 | - name: Add python-dnf 39 | yum: 40 | name: >- 41 | {{ (ansible_facts.python.version.major|int ==3 ) 42 | | ternary('python3-dnf', 'python-dnf') }} 43 | state: 'present' 44 | register: status 45 | retries: 10 46 | delay: 5 47 | until: status is succeeded 48 | become: true 49 | 50 | - name: Prepare host to S3 transport 51 | hosts: s3 52 | tasks: 53 | 54 | - name: Install python packages 55 | package: 56 | name: >- 57 | {{ (ansible_facts.python.version.major|int ==3 ) 58 | | ternary('python3-pip', 'python-pip') }} 59 | state: present 60 | register: status 61 | retries: 10 62 | until: status is succeeded 63 | become: true 64 | 65 | - name: Install boto module 66 | pip: 67 | name: 68 | - botocore 69 | - boto 70 | - boto3 71 | state: present 72 | executable: >- 73 | {{ (ansible_facts.python.version.major|int ==3 ) 74 | | ternary('pip3', 'pip') }} 75 | extra_args: --upgrade 76 | register: status 77 | retries: 10 78 | until: status is succeeded 79 | become: true 80 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-Debian9-adoptium-hotspot-jdk-tarball-8 13 | image: ami-003f19e0e687de1cd 14 | platform: debian9 15 | instance_type: t3.micro 16 | region: us-east-1 17 | vpc_subnet_id: subnet-0f2b9cd66faea38af 18 | assign_public_ip: false 19 | spot_price: 0.04 20 | security_group_name: 21 | - default 22 | wait_timeout: 1800 23 | ssh_user: admin 24 | groups: 25 | - debian_family 26 | - adoptium 27 | - hotspot 28 | - jdk 29 | - adoptium_fallback 30 | 31 | - name: test-aws-ubuntu18-adoptium-openj9-jre-tarball-8 32 | image: ami-012fd5eb46f56731f 33 | platform: ubuntu18 34 | instance_type: t3.micro 35 | region: us-east-1 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | assign_public_ip: false 38 | spot_price: 0.04 39 | security_group_name: 40 | - default 41 | wait_timeout: 1800 42 | ssh_user: ubuntu 43 | groups: 44 | - debian_family 45 | - adoptium 46 | - openj9 47 | - jre 48 | - adoptium_fallback 49 | 50 | - name: test-aws-centos7-adoptium-hotspot-jdk-repositories-8 51 | image: ami-9887c6e7 52 | platform: centos7 53 | instance_type: t3.micro 54 | region: us-east-1 55 | vpc_subnet_id: subnet-0f2b9cd66faea38af 56 | assign_public_ip: false 57 | spot_price: 0.04 58 | security_group_name: 59 | - default 60 | wait_timeout: 1800 61 | ssh_user: centos 62 | groups: 63 | - rhel_family 64 | - adoptium 65 | - hotspot 66 | - jdk 67 | - repositories 68 | 69 | - name: test-aws-amazon2-adoptium-openj9-jre-repositories-8 70 | image: ami-0b898040803850657 71 | platform: amazon2 72 | instance_type: t3.micro 73 | region: us-east-1 74 | vpc_subnet_id: subnet-0f2b9cd66faea38af 75 | assign_public_ip: false 76 | spot_price: 0.04 77 | security_group_name: 78 | - default 79 | wait_timeout: 1800 80 | ssh_user: ec2-user 81 | groups: 82 | - rhel_family 83 | - adoptium 84 | - openj9 85 | - jre 86 | - repositories 87 | 88 | - name: test-aws-ubuntu18-adoptium-web-8 89 | image: ami-012fd5eb46f56731f 90 | platform: ubuntu18 91 | instance_type: t3.micro 92 | region: us-east-1 93 | vpc_subnet_id: subnet-0f2b9cd66faea38af 94 | assign_public_ip: false 95 | spot_price: 0.04 96 | security_group_name: 97 | - default 98 | wait_timeout: 1800 99 | ssh_user: ubuntu 100 | groups: 101 | - debian_family 102 | - adoptium 103 | - web 104 | 105 | provisioner: 106 | name: ansible 107 | log: false 108 | config_options: 109 | defaults: 110 | forks: 30 111 | callback_whitelist: profile_tasks,timer 112 | inventory: 113 | group_vars: 114 | adoptium: 115 | java_distribution: adoptium 116 | java_major_version: 8 117 | jdk: 118 | java_package: jdk 119 | jre: 120 | java_package: jre 121 | openj9: 122 | adoptium_impl: openj9 123 | hotspot: 124 | adoptium_impl: hotspot 125 | adoptium_fallback: 126 | transport: fallback 127 | repositories: 128 | transport: repositories 129 | web: 130 | transport: web 131 | transport_web: >- 132 | https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u212-b04/OpenJDK8U-jdk_x64_linux_hotspot_8u212b04.tar.gz 133 | playbooks: 134 | create: ../resources/provisioning/AWS/create.yml 135 | prepare: ../resources/prepare.yml 136 | destroy: ../resources/provisioning/AWS/destroy.yml 137 | verify: ../resources/tests/verify.yml 138 | scenario: 139 | name: cloud-aws-adoptium-8 140 | verifier: 141 | name: ansible 142 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-windows/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-adoptium-tarball-13 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: false 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-0f2b9cd66faea38af 23 | groups: 24 | - windows 25 | - adoptium 26 | - hotspot 27 | - jdk 28 | - adoptium_fallback 29 | 30 | - name: test-aws-windows2019-adoptium-tarball-13 31 | aws_image_id: ami-0477b9335a5a75438 32 | platform: windows2019core 33 | aws_region: us-east-1 34 | instance_type: m5.large 35 | assign_public_ip: false 36 | spot_price: 0.14 37 | aws_sec_group: 38 | - default 39 | vpc_subnet_id: subnet-0f2b9cd66faea38af 40 | groups: 41 | - windows 42 | - adoptium 43 | - openj9 44 | - jre 45 | - adoptium_fallback 46 | 47 | - name: test-aws-windows2016-adoptium-chocolatey-13 48 | aws_image_id: ami-00a20f508263efd30 49 | platform: windows2016core 50 | aws_region: us-east-1 51 | instance_type: m5.large 52 | assign_public_ip: true 53 | spot_price: 0.14 54 | aws_sec_group: 55 | - default 56 | vpc_subnet_id: subnet-314c223d 57 | groups: 58 | - windows 59 | - adoptium 60 | - hotspot 61 | - jdk 62 | - chocolatey 63 | 64 | - name: test-aws-windows2019-adoptium-chocolatey-13 65 | aws_image_id: ami-0477b9335a5a75438 66 | platform: windows2019core 67 | aws_region: us-east-1 68 | instance_type: m5.large 69 | assign_public_ip: true 70 | spot_price: 0.14 71 | aws_sec_group: 72 | - default 73 | vpc_subnet_id: subnet-314c223d 74 | groups: 75 | - windows 76 | - adoptium 77 | - openj9 78 | - jre 79 | - chocolatey 80 | 81 | provisioner: 82 | name: ansible 83 | log: false 84 | inventory: 85 | group_vars: 86 | adoptium: 87 | java_distribution: adoptium 88 | java_major_version: 13 89 | jdk: 90 | java_package: jdk 91 | jre: 92 | java_package: jre 93 | openj9: 94 | adoptium_impl: openj9 95 | hotspot: 96 | adoptium_impl: hotspot 97 | adoptium_fallback: 98 | transport: fallback 99 | chocolatey: 100 | transport: chocolatey 101 | windows: 102 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 103 | ansible_winrm_transport: credssp 104 | ansible_winrm_server_cert_validation: ignore 105 | ansible_connection: winrm 106 | playbooks: 107 | create: ../resources/provisioning/AWS/create.yml 108 | destroy: ../resources/provisioning/AWS/destroy.yml 109 | verify: ../resources/tests/verify_win.yml 110 | config_options: 111 | defaults: 112 | callback_whitelist: profile_tasks,timer 113 | lint: 114 | name: ansible-lint 115 | scenario: 116 | name: cloud-aws-adoptium-windows 117 | verifier: 118 | name: ansible 119 | lint: 120 | name: ansible-lint 121 | -------------------------------------------------------------------------------- /molecule/cloud-aws-adoptium-windows/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-corretto-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-corretto-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-centos7-oracle_java-11-s3 13 | image: ami-9887c6e7 14 | platform: centos7 15 | instance_type: t3.micro 16 | profile_name: epmldi-instance-profile 17 | region: us-east-1 18 | vpc_subnet_id: subnet-0f2b9cd66faea38af 19 | assign_public_ip: false 20 | spot_price: 0.04 21 | security_group_name: 22 | - default 23 | wait_timeout: 1800 24 | ssh_user: centos 25 | groups: 26 | - rhel_family 27 | - s3 28 | - package 29 | 30 | - name: test-aws-ubuntu18-oracle_java-11-s3-deb 31 | image: ami-012fd5eb46f56731f 32 | platform: ubuntu18 33 | instance_type: t3.micro 34 | profile_name: epmldi-instance-profile 35 | region: us-east-1 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | assign_public_ip: false 38 | spot_price: 0.04 39 | security_group_name: 40 | - default 41 | wait_timeout: 1800 42 | ssh_user: ubuntu 43 | groups: 44 | - debian_family 45 | - s3 46 | - package 47 | 48 | - name: test-aws-Debian9-oracle_java-11-web-tb 49 | image: ami-003f19e0e687de1cd 50 | platform: debian9 51 | instance_type: t3.micro 52 | region: us-east-1 53 | vpc_subnet_id: subnet-0f2b9cd66faea38af 54 | assign_public_ip: false 55 | spot_price: 0.04 56 | security_group_name: 57 | - default 58 | wait_timeout: 1800 59 | ssh_user: admin 60 | groups: 61 | - debian_family 62 | - web 63 | - tarball 64 | 65 | provisioner: 66 | name: ansible 67 | log: false 68 | config_options: 69 | defaults: 70 | callback_whitelist: profile_tasks,timer 71 | inventory: 72 | group_vars: 73 | web: 74 | transport: web 75 | transport_web: >- 76 | {{ hostvars['localhost']['s3_link_tar']['url'] }} 77 | s3: 78 | transport: s3 79 | transport_s3_bucket: java-molecule-s3-test 80 | transport_s3_aws_access_key: "{{ lookup('env','AWS_ACCESS_KEY_ID') }}" 81 | transport_s3_aws_secret_key: "{{ lookup('env','AWS_SECRET_ACCESS_KEY') }}" 82 | tarball: 83 | java_distribution: oracle_java 84 | java_tarball_install: true 85 | transport_s3_path: /java/11/jdk-11.0.3_linux-x64_bin.tar.gz 86 | package: 87 | java_distribution: oracle_java 88 | java_tarball_install: false 89 | rhel_family: 90 | transport_s3_path: /java/11/jdk-11.0.3_linux-x64_bin.rpm 91 | debian_family: 92 | transport_s3_path: /java/11/jdk-11.0.3_linux-x64_bin.deb 93 | playbooks: 94 | create: ../resources/provisioning/AWS/create.yml 95 | prepare: ../cloud-aws-direct-11/prepare.yml 96 | destroy: ../resources/provisioning/AWS/destroy.yml 97 | verify: ../resources/tests/verify.yml 98 | scenario: 99 | name: cloud-aws-direct-11 100 | verifier: 101 | name: ansible 102 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: true 5 | vars: 6 | transport_s3_bucket: java-molecule-s3-test 7 | java_download_path: /tmp 8 | tasks: 9 | 10 | - name: Generate s3 link for tar.gz 11 | aws_s3: 12 | bucket: '{{ transport_s3_bucket }}' 13 | object: java/jdk-11.0.2_linux-x64_bin.tar.gz 14 | mode: geturl 15 | register: s3_link_tar 16 | changed_when: false 17 | 18 | - name: Converge 19 | hosts: all 20 | roles: 21 | - role: ansible-role-java 22 | java_unlimited_policy_enabled: True 23 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-11/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - name: Enable EPEL repository 28 | yum: 29 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-\ 30 | {{ ansible_distribution_major_version }}.noarch.rpm" 31 | state: 'present' 32 | register: status 33 | until: status is succeeded 34 | become: true 35 | 36 | - name: Prepare host to S3 transport 37 | hosts: s3 38 | gather_facts: true 39 | tasks: 40 | - name: Install pip package 41 | package: 42 | name: >- 43 | {{ (ansible_facts.python.version.major|int ==3 ) 44 | | ternary('python3-pip', 'python-pip') }} 45 | state: present 46 | register: status 47 | until: status is succeeded 48 | become: true 49 | 50 | - name: Install boto module 51 | pip: 52 | name: 53 | - botocore 54 | - boto 55 | - boto3 56 | state: present 57 | executable: >- 58 | {{ (ansible_facts.python.version.major|int ==3 ) 59 | | ternary('pip3', 'pip') }} 60 | extra_args: --upgrade 61 | register: status 62 | until: status is succeeded 63 | become: true 64 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-12/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - block: 28 | - name: Enable EPEL repository 29 | yum: 30 | name: '{{ epel_path }}' 31 | state: present 32 | register: status 33 | retries: 10 34 | until: status is succeeded 35 | become: true 36 | 37 | - name: Prepare host to S3 transport 38 | hosts: s3 39 | tasks: 40 | - name: Install pip package 41 | package: 42 | name: >- 43 | {{ (ansible_facts.python.version.major|int ==3 ) 44 | | ternary('python3-pip', 'python-pip') }} 45 | state: present 46 | register: status 47 | retries: 10 48 | until: status is succeeded 49 | become: true 50 | 51 | - name: Install boto module 52 | pip: 53 | name: 54 | - botocore 55 | - boto 56 | - boto3 57 | state: present 58 | executable: >- 59 | {{ (ansible_facts.python.version.major|int ==3 ) 60 | | ternary('pip3', 'pip') }} 61 | extra_args: --upgrade 62 | register: status 63 | until: status is succeeded 64 | become: true 65 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-6/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | 13 | - name: test-aws-centos6-oracle_java-6-rpm 14 | image: ami-1585c46a 15 | platform: centos6 16 | instance_type: t2.micro 17 | region: us-east-1 18 | vpc_subnet_id: subnet-0f2b9cd66faea38af 19 | assign_public_ip: false 20 | spot_price: 0.05 21 | security_group_name: 22 | - default 23 | wait_timeout: 1800 24 | ssh_user: centos 25 | groups: 26 | - rhel_family 27 | - rpm 28 | 29 | - name: test-aws-ubuntu18-oracle_java-6-tarball 30 | image: ami-012fd5eb46f56731f 31 | platform: ubuntu18 32 | instance_type: t3.micro 33 | region: us-east-1 34 | vpc_subnet_id: subnet-0f2b9cd66faea38af 35 | assign_public_ip: false 36 | spot_price: 0.04 37 | security_group_name: 38 | - default 39 | wait_timeout: 1800 40 | ssh_user: ubuntu 41 | groups: 42 | - debian_family 43 | - tarball 44 | 45 | provisioner: 46 | name: ansible 47 | log: false 48 | config_options: 49 | defaults: 50 | callback_whitelist: profile_tasks,timer 51 | inventory: 52 | group_vars: 53 | tarball: 54 | java_distribution: oracle_java 55 | java_package: jdk 56 | java_major_version: 6 57 | java_tarball_install: true 58 | transport: web 59 | transport_web: >- 60 | {{ hostvars['localhost']['s3_link_tar']['url'] }} 61 | java_unlimited_policy_enabled: true 62 | java_unlimited_policy_transport: fallback 63 | 64 | rpm: 65 | java_distribution: oracle_java 66 | java_package: jdk 67 | java_major_version: 6 68 | java_tarball_install: false 69 | transport: web 70 | transport_web: >- 71 | {{ hostvars['localhost']['s3_link_rpm']['url'] }} 72 | java_unlimited_policy_enabled: true 73 | java_unlimited_policy_transport: fallback 74 | playbooks: 75 | create: ../resources/provisioning/AWS/create.yml 76 | destroy: ../resources/provisioning/AWS/destroy.yml 77 | verify: ../resources/tests/verify.yml 78 | scenario: 79 | name: cloud-aws-direct-6 80 | verifier: 81 | name: ansible 82 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-6/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: true 5 | vars: 6 | transport_s3_bucket: java-molecule-s3-test 7 | java_download_path: /tmp 8 | tasks: 9 | - name: Generate s3 link for rpm 10 | aws_s3: 11 | bucket: '{{ transport_s3_bucket }}' 12 | object: 'java/jdk-6u45-linux-x64.rpm' 13 | mode: geturl 14 | register: s3_link_rpm 15 | changed_when: false 16 | 17 | - name: Generate s3 link for tar.gz 18 | aws_s3: 19 | bucket: '{{ transport_s3_bucket }}' 20 | object: 'java/jdk-6u45-linux-x64.tar.gz' 21 | mode: geturl 22 | register: s3_link_tar 23 | changed_when: false 24 | 25 | - name: Converge 26 | hosts: all 27 | roles: 28 | - role: ansible-role-java 29 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-7/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-aws-centos6-oracle_java-7-rpm 15 | image: ami-1585c46a 16 | platform: centos6 17 | instance_type: t2.medium 18 | region: us-east-1 19 | vpc_subnet_id: subnet-0f2b9cd66faea38af 20 | assign_public_ip: false 21 | spot_price: 0.05 22 | security_group_name: 23 | - default 24 | wait_timeout: 1800 25 | ssh_user: centos 26 | groups: 27 | - rhel_family 28 | - rpm 29 | 30 | - name: test-aws-Debian9-oracle_java-7-tarball 31 | image: ami-003f19e0e687de1cd 32 | platform: debian9 33 | instance_type: t3.micro 34 | region: us-east-1 35 | vpc_subnet_id: subnet-0f2b9cd66faea38af 36 | assign_public_ip: false 37 | spot_price: 0.04 38 | security_group_name: 39 | - default 40 | wait_timeout: 1800 41 | ssh_user: admin 42 | groups: 43 | - debian_family 44 | - tarball 45 | 46 | provisioner: 47 | name: ansible 48 | log: false 49 | config_options: 50 | defaults: 51 | callback_whitelist: profile_tasks,timer 52 | inventory: 53 | group_vars: 54 | tarball: 55 | java_distribution: oracle_java 56 | java_package: jdk 57 | java_major_version: 7 58 | java_tarball_install: true 59 | transport: web 60 | transport_web: "{{ lookup('env','STORAGE_AWS') }}/oracle-java/jdk-7u191-linux-x64.tar.gz" 61 | java_unlimited_policy_enabled: true 62 | java_unlimited_policy_transport: oracle-fallback 63 | rpm: 64 | java_distribution: oracle_java 65 | java_package: jdk 66 | java_major_version: 7 67 | java_tarball_install: false 68 | transport: web 69 | transport_web: "{{ lookup('env','STORAGE_AWS') }}/oracle-java/jdk-7u191-linux-x64.rpm" 70 | java_unlimited_policy_enabled: true 71 | java_unlimited_policy_transport: oracle-fallback 72 | playbooks: 73 | create: ../resources/provisioning/AWS/create.yml 74 | destroy: ../resources/provisioning/AWS/destroy.yml 75 | verify: ../resources/tests/verify.yml 76 | lint: 77 | name: ansible-lint 78 | scenario: 79 | name: cloud-aws-direct-7 80 | verifier: 81 | name: ansible 82 | lint: 83 | name: ansible-lint 84 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-7/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | 13 | # - name: test-aws-centos8-oracle_java-8-s3-rpm 14 | # image: ami-0ed2ad9dc845b42b6 15 | # platform: centos8 16 | # instance_type: t3.medium 17 | # profile_name: epmldi-instance-profile 18 | # region: us-east-1 19 | # vpc_subnet_id: subnet-0f2b9cd66faea38af 20 | # assign_public_ip: false 21 | # spot_price: 0.04 22 | # security_group_name: 23 | # - default 24 | # wait_timeout: 1800 25 | # ssh_user: centos 26 | # groups: 27 | # - rhel_family 28 | # - s3 29 | # - package 30 | # - pip3 31 | 32 | - name: test-aws-centos7-oracle_java-8-s3 33 | image: ami-9887c6e7 34 | platform: centos7 35 | instance_type: t3.micro 36 | profile_name: epmldi-instance-profile 37 | region: us-east-1 38 | vpc_subnet_id: subnet-0f2b9cd66faea38af 39 | assign_public_ip: false 40 | spot_price: 0.04 41 | security_group_name: 42 | - default 43 | wait_timeout: 1800 44 | ssh_user: centos 45 | groups: 46 | - rhel_family 47 | - s3 48 | - tarball 49 | - pip2 50 | 51 | - name: test-aws-ubuntu18-oracle_java-8-s3 52 | image: ami-012fd5eb46f56731f 53 | platform: ubuntu18 54 | instance_type: t3.micro 55 | profile_name: epmldi-instance-profile 56 | region: us-east-1 57 | vpc_subnet_id: subnet-0f2b9cd66faea38af 58 | assign_public_ip: false 59 | spot_price: 0.04 60 | security_group_name: 61 | - default 62 | wait_timeout: 1800 63 | ssh_user: ubuntu 64 | groups: 65 | - debian_family 66 | - s3 67 | - tarball 68 | - pip3 69 | 70 | - name: test-aws-debian9-oracle_java-8-local 71 | image: ami-003f19e0e687de1cd 72 | platform: debian9 73 | instance_type: t3.micro 74 | region: us-east-1 75 | vpc_subnet_id: subnet-0f2b9cd66faea38af 76 | assign_public_ip: false 77 | spot_price: 0.04 78 | security_group_name: 79 | - default 80 | wait_timeout: 1800 81 | ssh_user: admin 82 | groups: 83 | - debian_family 84 | - local 85 | - tarball 86 | - pip2 87 | 88 | provisioner: 89 | name: ansible 90 | log: false 91 | config_options: 92 | defaults: 93 | callback_whitelist: profile_tasks,timer 94 | inventory: 95 | group_vars: 96 | pip2: 97 | pip_executable: pip 98 | python_executable: python 99 | pip3: 100 | pip_executable: pip3 101 | python_executable: python3 102 | local: 103 | transport: local 104 | transport_local: /tmp/jdk-8u202-linux-x64.tar.gz 105 | s3: 106 | transport: s3 107 | transport_s3_bucket: java-molecule-s3-test 108 | transport_s3_aws_access_key: "{{ lookup('env','AWS_ACCESS_KEY_ID') }}" 109 | transport_s3_aws_secret_key: "{{ lookup('env','AWS_SECRET_ACCESS_KEY') }}" 110 | tarball: 111 | java_distribution: oracle_java 112 | java_package: jdk 113 | java_tarball_install: true 114 | transport_s3_path: /java/jdk-8u202-linux-x64.tar.gz 115 | package: 116 | java_distribution: oracle_java 117 | java_package: jdk 118 | java_tarball_install: false 119 | transport_s3_path: /java/jdk-8u202-linux-x64.rpm 120 | playbooks: 121 | create: ../resources/provisioning/AWS/create.yml 122 | prepare: prepare.yml 123 | destroy: ../resources/provisioning/AWS/destroy.yml 124 | verify: ../resources/tests/verify.yml 125 | scenario: 126 | name: cloud-aws-direct-8 127 | verifier: 128 | name: ansible 129 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | java_unlimited_policy_enabled: True 7 | -------------------------------------------------------------------------------- /molecule/cloud-aws-direct-8/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - name: Enable EPEL repository 28 | yum: 29 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest\ 30 | -{{ ansible_distribution_major_version }}.noarch.rpm" 31 | state: present 32 | register: status 33 | until: status is succeeded 34 | become: true 35 | 36 | - name: Prepare host to S3 transport 37 | hosts: s3 38 | tasks: 39 | - name: Install pip package 40 | package: 41 | name: >- 42 | {{ (ansible_facts.python.version.major|int ==3 ) 43 | | ternary('python3-pip', 'python-pip') }} 44 | state: present 45 | register: status 46 | retries: 10 47 | until: status is succeeded 48 | become: true 49 | 50 | - name: Install boto module 51 | pip: 52 | name: 53 | - botocore 54 | - boto 55 | - boto3 56 | state: present 57 | executable: >- 58 | {{ (ansible_facts.python.version.major|int ==3 ) 59 | | ternary('pip3', 'pip') }} 60 | extra_args: --upgrade 61 | register: status 62 | until: status is succeeded 63 | become: true 64 | 65 | - name: Prepare host to S3 transport 66 | hosts: localhost 67 | vars: 68 | transport_s3_bucket: java-molecule-s3-test 69 | transport_s3_path: /java/jdk-8u202-linux-x64.tar.gz 70 | java_download_path: /tmp 71 | tasks: 72 | - name: Download artifact from s3 73 | aws_s3: 74 | bucket: '{{ transport_s3_bucket }}' 75 | object: '{{ transport_s3_path }}' 76 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 77 | mode: get 78 | overwrite: different 79 | retries: 5 80 | delay: 2 81 | -------------------------------------------------------------------------------- /molecule/cloud-aws-dragonwell8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | # - name: test-aws-centos8-dragonwell8 13 | # image: ami-0ed2ad9dc845b42b6 14 | # platform: centos8 15 | # instance_type: t3.medium 16 | # region: us-east-1 17 | # vpc_subnet_id: subnet-314c223d 18 | # assign_public_ip: true 19 | # spot_price: 0.04 20 | # security_group_name: 21 | # - default 22 | # wait_timeout: 1800 23 | # ssh_user: centos 24 | # groups: 25 | # - rhel_family 26 | # - dragonwell8 27 | # - centos8 28 | 29 | - name: test-aws-centos7-dragonwell8 30 | image: ami-9887c6e7 31 | platform: centos7 32 | instance_type: t3.micro 33 | region: us-east-1 34 | vpc_subnet_id: subnet-314c223d 35 | assign_public_ip: true 36 | spot_price: 0.04 37 | security_group_name: 38 | - default 39 | wait_timeout: 1800 40 | ssh_user: centos 41 | groups: 42 | - rhel_family 43 | - dragonwell8 44 | 45 | - name: test-aws-ubuntu18-dragonwell8 46 | image: ami-012fd5eb46f56731f 47 | platform: ubuntu18 48 | instance_type: t3.micro 49 | region: us-east-1 50 | vpc_subnet_id: subnet-314c223d 51 | assign_public_ip: true 52 | spot_price: 0.04 53 | security_group_name: 54 | - default 55 | wait_timeout: 1800 56 | ssh_user: ubuntu 57 | groups: 58 | - debian_family 59 | - dragonwell8 60 | 61 | - name: test-aws-Debian9-dragonwell8 62 | image: ami-003f19e0e687de1cd 63 | platform: debian9 64 | instance_type: t3.micro 65 | region: us-east-1 66 | vpc_subnet_id: subnet-314c223d 67 | assign_public_ip: true 68 | spot_price: 0.04 69 | security_group_name: 70 | - default 71 | wait_timeout: 1800 72 | ssh_user: admin 73 | groups: 74 | - debian_family 75 | - dragonwell8 76 | 77 | provisioner: 78 | name: ansible 79 | log: false 80 | config_options: 81 | defaults: 82 | callback_whitelist: profile_tasks,timer 83 | inventory: 84 | group_vars: 85 | dragonwell8: 86 | java_distribution: dragonwell8 87 | transport: fallback 88 | java_major_version: 8 89 | playbooks: 90 | create: ../resources/provisioning/AWS/create.yml 91 | prepare: ../resources/prepare.yml 92 | destroy: ../resources/provisioning/AWS/destroy.yml 93 | verify: ../resources/tests/verify.yml 94 | scenario: 95 | name: cloud-aws-dragonwell8 96 | verifier: 97 | name: ansible 98 | -------------------------------------------------------------------------------- /molecule/cloud-aws-dragonwell8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-centos7-openjdk-11-repo 13 | image: ami-9887c6e7 14 | platform: centos7 15 | instance_type: t3.micro 16 | region: us-east-1 17 | vpc_subnet_id: subnet-0f2b9cd66faea38af 18 | assign_public_ip: false 19 | spot_price: 0.04 20 | security_group_name: 21 | - default 22 | wait_timeout: 1800 23 | ssh_user: centos 24 | groups: 25 | - rhel_family 26 | - repositories 27 | 28 | - name: test-aws-centos6-openjdk-11-tarball 29 | image: ami-1585c46a 30 | platform: centos6 31 | instance_type: t2.medium 32 | region: us-east-1 33 | vpc_subnet_id: subnet-0f2b9cd66faea38af 34 | assign_public_ip: false 35 | spot_price: 0.05 36 | security_group_name: 37 | - default 38 | wait_timeout: 1800 39 | ssh_user: centos 40 | groups: 41 | - rhel_family 42 | - web 43 | - tarball 44 | 45 | - name: test-aws-ubuntu18-openjdk-11-repo 46 | image: ami-012fd5eb46f56731f 47 | platform: ubuntu18 48 | instance_type: t3.micro 49 | region: us-east-1 50 | vpc_subnet_id: subnet-0f2b9cd66faea38af 51 | assign_public_ip: false 52 | spot_price: 0.04 53 | security_group_name: 54 | - default 55 | wait_timeout: 1800 56 | ssh_user: ubuntu 57 | groups: 58 | - debian_family 59 | - repositories 60 | 61 | provisioner: 62 | name: ansible 63 | log: false 64 | config_options: 65 | defaults: 66 | callback_whitelist: profile_tasks,timer 67 | inventory: 68 | group_vars: 69 | web: 70 | transport: web 71 | transport_web: "https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz" 72 | tarball: 73 | java_distribution: openjdk 74 | java_tarball_install: true 75 | repositories: 76 | java_distribution: openjdk 77 | java_major_version: 11 78 | transport: repositories 79 | java_tarball_install: false 80 | playbooks: 81 | create: ../resources/provisioning/AWS/create.yml 82 | prepare: ../resources/prepare.yml 83 | destroy: ../resources/provisioning/AWS/destroy.yml 84 | verify: ../resources/tests/verify.yml 85 | scenario: 86 | name: cloud-aws-openjdk-11 87 | verifier: 88 | name: ansible 89 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-centos7-openjdk-12-tb 14 | image: ami-9887c6e7 15 | platform: centos7 16 | instance_type: t3.micro 17 | region: us-east-1 18 | vpc_subnet_id: subnet-0f2b9cd66faea38af 19 | assign_public_ip: false 20 | spot_price: 0.04 21 | security_group_name: 22 | - default 23 | wait_timeout: 1800 24 | ssh_user: centos 25 | groups: 26 | - rhel_family 27 | - web 28 | - tarball 29 | 30 | - name: test-aws-centos6-openjdk-12-tarball 31 | image: ami-1585c46a 32 | platform: centos6 33 | instance_type: t2.medium 34 | region: us-east-1 35 | vpc_subnet_id: subnet-0f2b9cd66faea38af 36 | assign_public_ip: false 37 | spot_price: 0.05 38 | security_group_name: 39 | - default 40 | wait_timeout: 1800 41 | ssh_user: centos 42 | groups: 43 | - rhel_family 44 | - web 45 | - tarball 46 | 47 | - name: test-aws-ubuntu18-openjdk-12-tb 48 | image: ami-012fd5eb46f56731f 49 | platform: ubuntu18 50 | instance_type: t3.micro 51 | region: us-east-1 52 | vpc_subnet_id: subnet-0f2b9cd66faea38af 53 | assign_public_ip: false 54 | spot_price: 0.04 55 | security_group_name: 56 | - default 57 | wait_timeout: 1800 58 | ssh_user: ubuntu 59 | groups: 60 | - debian_family 61 | - web 62 | - tarball 63 | 64 | provisioner: 65 | name: ansible 66 | log: false 67 | config_options: 68 | defaults: 69 | callback_whitelist: profile_tasks,timer 70 | inventory: 71 | group_vars: 72 | web: 73 | transport: web 74 | transport_web: "https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_linux-x64_bin.tar.gz" 75 | tarball: 76 | java_distribution: openjdk 77 | java_tarball_install: true 78 | playbooks: 79 | create: ../resources/provisioning/AWS/create.yml 80 | prepare: ../resources/provisioning/AWS/prepare.yml 81 | destroy: ../resources/provisioning/AWS/destroy.yml 82 | verify: ../resources/tests/verify.yml 83 | lint: 84 | name: ansible-lint 85 | scenario: 86 | name: cloud-aws-openjdk-12 87 | verifier: 88 | name: ansible 89 | lint: 90 | name: ansible-lint 91 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | # - name: test-aws-centos8-openjdk-8-repo 13 | # image: ami-0ed2ad9dc845b42b6 14 | # platform: centos8 15 | # instance_type: t3.micro 16 | # region: us-east-1 17 | # vpc_subnet_id: subnet-0f2b9cd66faea38af 18 | # assign_public_ip: false 19 | # spot_price: 0.04 20 | # security_group_name: 21 | # - default 22 | # wait_timeout: 1800 23 | # ssh_user: centos 24 | # groups: 25 | # - rhel_family 26 | # - repositories 27 | # - centos8 28 | 29 | - name: test-aws-centos7-openjdk-8-repo 30 | image: ami-9887c6e7 31 | platform: centos7 32 | instance_type: t3.micro 33 | region: us-east-1 34 | vpc_subnet_id: subnet-0f2b9cd66faea38af 35 | assign_public_ip: false 36 | spot_price: 0.04 37 | security_group_name: 38 | - default 39 | wait_timeout: 1800 40 | ssh_user: centos 41 | groups: 42 | - rhel_family 43 | - repositories 44 | 45 | - name: test-aws-centos6-openjdk-8-repo 46 | image: ami-1585c46a 47 | platform: centos6 48 | instance_type: t2.medium 49 | region: us-east-1 50 | vpc_subnet_id: subnet-0f2b9cd66faea38af 51 | assign_public_ip: false 52 | spot_price: 0.05 53 | security_group_name: 54 | - default 55 | wait_timeout: 1800 56 | ssh_user: centos 57 | groups: 58 | - rhel_family 59 | - repositories 60 | 61 | - name: test-aws-ubuntu18-openjdk-8-repo 62 | image: ami-012fd5eb46f56731f 63 | platform: ubuntu18 64 | instance_type: t3.micro 65 | region: us-east-1 66 | vpc_subnet_id: subnet-0f2b9cd66faea38af 67 | assign_public_ip: false 68 | spot_price: 0.04 69 | security_group_name: 70 | - default 71 | wait_timeout: 1800 72 | ssh_user: ubuntu 73 | groups: 74 | - debian_family 75 | - repositories 76 | 77 | - name: test-aws-Debian9-openjdk-8-repo 78 | image: ami-003f19e0e687de1cd 79 | platform: debian9 80 | instance_type: t3.micro 81 | region: us-east-1 82 | vpc_subnet_id: subnet-0f2b9cd66faea38af 83 | assign_public_ip: false 84 | spot_price: 0.04 85 | security_group_name: 86 | - default 87 | wait_timeout: 1800 88 | ssh_user: admin 89 | groups: 90 | - debian_family 91 | - repositories 92 | 93 | provisioner: 94 | name: ansible 95 | log: false 96 | config_options: 97 | defaults: 98 | callback_whitelist: profile_tasks,timer 99 | inventory: 100 | group_vars: 101 | repositories: 102 | java_distribution: openjdk 103 | java_major_version: 8 104 | transport: repositories 105 | java_tarball_install: false 106 | playbooks: 107 | create: ../resources/provisioning/AWS/create.yml 108 | prepare: ../resources/prepare.yml 109 | destroy: ../resources/provisioning/AWS/destroy.yml 110 | verify: ../resources/tests/verify.yml 111 | 112 | scenario: 113 | name: cloud-aws-openjdk-8 114 | verifier: 115 | name: ansible 116 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-ga/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | # - name: test-aws-centos8-openjdk-ga 13 | # image: ami-0ed2ad9dc845b42b6 14 | # platform: centos8 15 | # instance_type: t3.medium 16 | # region: us-east-1 17 | # vpc_subnet_id: subnet-0f2b9cd66faea38af 18 | # assign_public_ip: false 19 | # spot_price: 0.04 20 | # security_group_name: 21 | # - default 22 | # wait_timeout: 1800 23 | # ssh_user: centos 24 | # groups: 25 | # - rhel_family 26 | # - centos8 27 | 28 | - name: test-aws-centos7-openjdk-ga 29 | image: ami-9887c6e7 30 | platform: centos7 31 | instance_type: t3.micro 32 | region: us-east-1 33 | vpc_subnet_id: subnet-0f2b9cd66faea38af 34 | assign_public_ip: false 35 | spot_price: 0.04 36 | security_group_name: 37 | - default 38 | wait_timeout: 1800 39 | ssh_user: centos 40 | groups: 41 | - rhel_family 42 | 43 | - name: test-aws-ubuntu18-openjdk-ga 44 | image: ami-012fd5eb46f56731f 45 | platform: ubuntu18 46 | instance_type: t3.micro 47 | region: us-east-1 48 | vpc_subnet_id: subnet-0f2b9cd66faea38af 49 | assign_public_ip: false 50 | spot_price: 0.04 51 | security_group_name: 52 | - default 53 | wait_timeout: 1800 54 | ssh_user: ubuntu 55 | groups: 56 | - debian_family 57 | 58 | - name: test-aws-Debian9-openjdk-ga 59 | image: ami-003f19e0e687de1cd 60 | platform: debian9 61 | instance_type: t3.micro 62 | region: us-east-1 63 | vpc_subnet_id: subnet-0f2b9cd66faea38af 64 | assign_public_ip: false 65 | spot_price: 0.04 66 | security_group_name: 67 | - default 68 | wait_timeout: 1800 69 | ssh_user: admin 70 | groups: 71 | - debian_family 72 | 73 | - name: test-aws-Debian10-openjdk-ga 74 | image: ami-0dedf6a6502877301 75 | platform: debian10 76 | instance_type: t3.micro 77 | region: us-east-1 78 | vpc_subnet_id: subnet-0f2b9cd66faea38af 79 | assign_public_ip: false 80 | spot_price: 0.05 81 | security_group_name: 82 | - default 83 | wait_timeout: 1800 84 | ssh_user: admin 85 | groups: 86 | - debian_family 87 | 88 | - name: test-aws-Amazon-openjdk-ga 89 | image: ami-035b3c7efe6d061d5 90 | platform: amazon 91 | instance_type: t3.micro 92 | region: us-east-1 93 | vpc_subnet_id: subnet-0f2b9cd66faea38af 94 | assign_public_ip: false 95 | spot_price: 0.04 96 | security_group_name: 97 | - default 98 | wait_timeout: 1800 99 | ssh_user: ec2-user 100 | groups: 101 | - rhel_family 102 | 103 | - name: test-aws-Amazon2-openjdk-ga 104 | image: ami-0b898040803850657 105 | platform: amazon2 106 | instance_type: t3.micro 107 | region: us-east-1 108 | vpc_subnet_id: subnet-0f2b9cd66faea38af 109 | assign_public_ip: false 110 | spot_price: 0.04 111 | security_group_name: 112 | - default 113 | wait_timeout: 1800 114 | ssh_user: ec2-user 115 | groups: 116 | - rhel_family 117 | 118 | provisioner: 119 | name: ansible 120 | log: false 121 | config_options: 122 | defaults: 123 | forks: 30 124 | callback_whitelist: profile_tasks,timer 125 | playbooks: 126 | create: ../resources/provisioning/AWS/create.yml 127 | prepare: ../resources/prepare.yml 128 | destroy: ../resources/provisioning/AWS/destroy.yml 129 | verify: ../resources/tests/verify.yml 130 | 131 | scenario: 132 | name: cloud-aws-openjdk-ga 133 | verifier: 134 | name: ansible 135 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-ga/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-windows-ga/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-openjdk-ga 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: false 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-0f2b9cd66faea38af 23 | groups: 24 | - windows 25 | 26 | - name: test-aws-windows2019-openjdk-ga 27 | aws_image_id: ami-0477b9335a5a75438 28 | platform: windows2019core 29 | aws_region: us-east-1 30 | instance_type: m5.large 31 | assign_public_ip: false 32 | spot_price: 0.14 33 | aws_sec_group: 34 | - default 35 | vpc_subnet_id: subnet-0f2b9cd66faea38af 36 | groups: 37 | - windows 38 | 39 | provisioner: 40 | name: ansible 41 | log: false 42 | config_options: 43 | defaults: 44 | callback_whitelist: profile_tasks,timer 45 | inventory: 46 | group_vars: 47 | windows: 48 | ansible_connection: winrm 49 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 50 | ansible_winrm_transport: credssp 51 | ansible_winrm_server_cert_validation: ignore 52 | playbooks: 53 | create: ../resources/provisioning/AWS/create.yml 54 | destroy: ../resources/provisioning/AWS/destroy.yml 55 | verify: ../resources/tests/verify_win.yml 56 | lint: 57 | name: ansible-lint 58 | scenario: 59 | name: cloud-aws-openjdk-windows-ga 60 | verifier: 61 | name: ansible 62 | lint: 63 | name: ansible-lint 64 | -------------------------------------------------------------------------------- /molecule/cloud-aws-openjdk-windows-ga/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapjvm-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | 13 | # - name: test-aws-centos8-sapjvm-8 14 | # image: ami-0ed2ad9dc845b42b6 15 | # platform: centos8 16 | # instance_type: t3.medium 17 | # region: us-east-1 18 | # vpc_subnet_id: subnet-0f2b9cd66faea38af 19 | # assign_public_ip: false 20 | # spot_price: 0.04 21 | # security_group_name: 22 | # - default 23 | # wait_timeout: 1800 24 | # ssh_user: centos 25 | # groups: 26 | # - rhel_family 27 | # - sapjvm 28 | # - centos8 29 | 30 | - name: test-aws-centos7-sapjvm-8 31 | image: ami-9887c6e7 32 | platform: centos7 33 | instance_type: t3.micro 34 | region: us-east-1 35 | vpc_subnet_id: subnet-0f2b9cd66faea38af 36 | assign_public_ip: false 37 | spot_price: 0.04 38 | security_group_name: 39 | - default 40 | wait_timeout: 1800 41 | ssh_user: centos 42 | groups: 43 | - rhel_family 44 | - sapjvm 45 | 46 | - name: test-aws-ubuntu18-sapjvm-8 47 | image: ami-012fd5eb46f56731f 48 | platform: ubuntu18 49 | instance_type: t3.micro 50 | region: us-east-1 51 | vpc_subnet_id: subnet-0f2b9cd66faea38af 52 | assign_public_ip: false 53 | spot_price: 0.04 54 | security_group_name: 55 | - default 56 | wait_timeout: 1800 57 | ssh_user: ubuntu 58 | groups: 59 | - debian_family 60 | - sapjvm 61 | 62 | - name: test-aws-Debian9-sapjvm-8 63 | image: ami-003f19e0e687de1cd 64 | platform: debian9 65 | instance_type: t3.micro 66 | region: us-east-1 67 | vpc_subnet_id: subnet-0f2b9cd66faea38af 68 | assign_public_ip: false 69 | spot_price: 0.04 70 | security_group_name: 71 | - default 72 | wait_timeout: 1800 73 | ssh_user: admin 74 | groups: 75 | - debian_family 76 | - sapjvm 77 | 78 | provisioner: 79 | name: ansible 80 | log: false 81 | config_options: 82 | defaults: 83 | callback_whitelist: profile_tasks,timer 84 | inventory: 85 | group_vars: 86 | sapjvm: 87 | java_distribution: sapjvm 88 | transport: fallback 89 | java_major_version: 8 90 | playbooks: 91 | create: ../resources/provisioning/AWS/create.yml 92 | prepare: prepare.yml 93 | destroy: ../resources/provisioning/AWS/destroy.yml 94 | verify: ../resources/tests/verify.yml 95 | 96 | scenario: 97 | name: cloud-aws-sapjvm-8 98 | verifier: 99 | name: ansible 100 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapjvm-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapjvm-8/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Include common prepare 3 | import_playbook: ../resources/prepare.yml 4 | 5 | - name: Prepare RHEL 6 | hosts: centos8 7 | tasks: 8 | 9 | - name: Install libnsl 10 | yum: 11 | name: libnsl 12 | state: present 13 | register: status 14 | until: status is succeeded 15 | become: true 16 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-centos7-sapmachine-jdk-tarball-12 13 | image: ami-9887c6e7 14 | platform: centos7 15 | instance_type: t3.micro 16 | region: us-east-1 17 | vpc_subnet_id: subnet-314c223d 18 | assign_public_ip: true 19 | spot_price: 0.04 20 | security_group_name: 21 | - default 22 | wait_timeout: 1800 23 | ssh_user: centos 24 | groups: 25 | - rhel_family 26 | - sapmachine 27 | - jdk 28 | - sapmachine_fallback 29 | - pip2 30 | 31 | - name: test-aws-amazon2-sapmachine-jre-tarball-11 32 | image: ami-0b898040803850657 33 | platform: amazon2 34 | instance_type: t3.micro 35 | region: us-east-1 36 | vpc_subnet_id: subnet-314c223d 37 | assign_public_ip: true 38 | spot_price: 0.04 39 | security_group_name: 40 | - default 41 | wait_timeout: 1800 42 | ssh_user: ec2-user 43 | groups: 44 | - amazon_family 45 | - sapmachine 46 | - jre 47 | - sapmachine_fallback 48 | - pip2 49 | 50 | - name: test-aws-Debian9-sapmachine-jre-tarball-12 51 | image: ami-003f19e0e687de1cd 52 | platform: debian9 53 | instance_type: t3.micro 54 | region: us-east-1 55 | vpc_subnet_id: subnet-314c223d 56 | assign_public_ip: true 57 | spot_price: 0.04 58 | security_group_name: 59 | - default 60 | wait_timeout: 1800 61 | ssh_user: admin 62 | groups: 63 | - debian_family 64 | - sapmachine 65 | - jre 66 | - sapmachine_fallback 67 | - pip2 68 | 69 | - name: test-aws-ubuntu18-sapmachine-jdk-tarball-12 70 | image: ami-012fd5eb46f56731f 71 | platform: ubuntu18 72 | instance_type: t3.micro 73 | region: us-east-1 74 | vpc_subnet_id: subnet-314c223d 75 | assign_public_ip: true 76 | spot_price: 0.04 77 | security_group_name: 78 | - default 79 | wait_timeout: 1800 80 | ssh_user: ubuntu 81 | groups: 82 | - debian_family 83 | - sapmachine 84 | - jdk 85 | - sapmachine_fallback 86 | - pip3 87 | 88 | # - name: test-aws-centos8-sapmachine-local-12 89 | # image: ami-0ed2ad9dc845b42b6 90 | # platform: centos8 91 | # instance_type: t3.medium 92 | # region: us-east-1 93 | # vpc_subnet_id: subnet-314c223d 94 | # assign_public_ip: true 95 | # spot_price: 0.04 96 | # security_group_name: 97 | # - default 98 | # wait_timeout: 1800 99 | # ssh_user: centos 100 | # groups: 101 | # - rhel_family 102 | # - sapmachine 103 | # - local 104 | # - pip3 105 | 106 | provisioner: 107 | name: ansible 108 | log: false 109 | config_options: 110 | defaults: 111 | callback_whitelist: profile_tasks,timer 112 | inventory: 113 | group_vars: 114 | sapmachine: 115 | java_distribution: sapmachine 116 | java_major_version: 12 117 | jdk: 118 | java_package: jdk 119 | jre: 120 | java_package: jre 121 | sapmachine_fallback: 122 | transport: fallback 123 | local: 124 | transport: local 125 | transport_local: /tmp/sapmachine-jdk-12.0.2_linux-x64_bin.tar.gz 126 | pip2: 127 | pip_executable: pip 128 | python_executable: python 129 | pip3: 130 | pip_executable: pip3 131 | python_executable: python3 132 | playbooks: 133 | create: ../resources/provisioning/AWS/create.yml 134 | prepare: ../cloud-aws-sapmachine-12/prepare.yml 135 | destroy: ../resources/provisioning/AWS/destroy.yml 136 | verify: ../resources/tests/verify.yml 137 | 138 | scenario: 139 | name: cloud-aws-sapmachine-12 140 | verifier: 141 | name: ansible 142 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-12/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | - name: Add universe repository for bionic 6 | apt_repository: 7 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 8 | state: present 9 | when: ansible_distribution_release == 'bionic' 10 | become: true 11 | 12 | - name: Install python packages 13 | apt: 14 | name: >- 15 | {{ (ansible_facts.python.version.major|int == 3 ) 16 | | ternary('python3-setuptools', 'python-setuptools') }} 17 | state: present 18 | register: status 19 | until: status is succeeded 20 | become: true 21 | 22 | - name: Prepare RHEL 23 | hosts: rhel_family 24 | tasks: 25 | - name: Enable EPEL repository 26 | yum: 27 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-\ 28 | {{ ansible_distribution_major_version }}.noarch.rpm" 29 | state: 'present' 30 | register: status 31 | retries: 10 32 | delay: 5 33 | until: status is succeeded 34 | become: true 35 | 36 | - name: Prepare Amazon 37 | hosts: amazon_family 38 | tasks: 39 | - name: Enable EPEL repository 40 | yum: 41 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm" 42 | state: 'present' 43 | register: status 44 | until: status is succeeded 45 | become: true 46 | 47 | - name: Prepare host to S3 transport 48 | hosts: localhost 49 | gather_facts: true 50 | vars: 51 | transport_s3_bucket: java-molecule-s3-test 52 | transport_s3_path: /java/sapmachine/sapmachine-jdk-12.0.2_linux-x64_bin.tar.gz 53 | java_download_path: /tmp 54 | tasks: 55 | - name: Download artifact from s3 56 | aws_s3: 57 | bucket: '{{ transport_s3_bucket }}' 58 | object: '{{ transport_s3_path }}' 59 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 60 | mode: get 61 | overwrite: different 62 | retries: 5 63 | delay: 2 64 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-13/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-13/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare Debian 3 | hosts: debian_family 4 | tasks: 5 | 6 | - name: Add universe repository for bionic 7 | apt_repository: 8 | repo: deb http://archive.ubuntu.com/ubuntu bionic universe 9 | state: present 10 | when: ansible_distribution_release == 'bionic' 11 | become: true 12 | 13 | - name: Install python packages 14 | apt: 15 | name: >- 16 | {{ (ansible_facts.python.version.major|int == 3 ) 17 | | ternary('python3-setuptools', 'python-setuptools') }} 18 | state: present 19 | register: status 20 | until: status is succeeded 21 | become: true 22 | 23 | - name: Prepare RHEL 24 | hosts: rhel_family 25 | tasks: 26 | 27 | - name: Enable EPEL repository 28 | yum: 29 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-\ 30 | {{ ansible_distribution_major_version }}.noarch.rpm" 31 | state: 'present' 32 | register: status 33 | retries: 10 34 | delay: 5 35 | until: status is succeeded 36 | become: true 37 | 38 | - name: Prepare Amazon 39 | hosts: amazon_family 40 | tasks: 41 | - name: Enable EPEL repository 42 | yum: 43 | name: "https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm" 44 | state: 'present' 45 | register: status 46 | until: status is succeeded 47 | become: true 48 | 49 | - name: Prepare host to S3 transport 50 | hosts: s3 51 | tasks: 52 | - name: Install pip package 53 | package: 54 | name: >- 55 | {{ (ansible_facts.python.version.major|int ==3 ) 56 | | ternary('python3-pip', 'python-pip') }} 57 | state: present 58 | register: status 59 | until: status is succeeded 60 | become: true 61 | 62 | - name: Install boto module 63 | pip: 64 | name: 65 | - botocore 66 | - boto 67 | - boto3 68 | state: present 69 | executable: >- 70 | {{ (ansible_facts.python.version.major|int ==3 ) 71 | | ternary('pip3', 'pip') }} 72 | extra_args: --upgrade 73 | register: status 74 | until: status is succeeded 75 | become: true 76 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-windows/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-sapmachine-tarball-13 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: true 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-314c223d 23 | groups: 24 | - windows 25 | - sapmachine 26 | - jdk 27 | - sapmachine_fallback 28 | - ver13 29 | 30 | - name: test-aws-windows2019-sapmachine-tarball-11 31 | aws_image_id: ami-0477b9335a5a75438 32 | platform: windows2019core 33 | aws_region: us-east-1 34 | instance_type: m5.large 35 | assign_public_ip: true 36 | spot_price: 0.14 37 | aws_sec_group: 38 | - default 39 | vpc_subnet_id: subnet-314c223d 40 | groups: 41 | - windows 42 | - sapmachine 43 | - jre 44 | - sapmachine_fallback 45 | - ver11 46 | 47 | - name: test-aws-windows2019-sapmachine-chocolatey-13 48 | aws_image_id: ami-0477b9335a5a75438 49 | platform: windows2019core 50 | aws_region: us-east-1 51 | instance_type: m5.large 52 | assign_public_ip: true 53 | spot_price: 0.14 54 | aws_sec_group: 55 | - default 56 | vpc_subnet_id: subnet-314c223d 57 | groups: 58 | - windows 59 | - sapmachine 60 | - ver13 61 | - chocolatey 62 | 63 | provisioner: 64 | name: ansible 65 | log: false 66 | inventory: 67 | group_vars: 68 | sapmachine: 69 | java_distribution: sapmachine 70 | ver11: 71 | java_major_version: 11 72 | java_minor_version: 0.3 73 | ver13: 74 | java_major_version: 13 75 | sapmachine_fallback: 76 | transport: fallback 77 | chocolatey: 78 | transport: chocolatey 79 | windows: 80 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 81 | ansible_winrm_transport: credssp 82 | ansible_winrm_server_cert_validation: ignore 83 | ansible_connection: winrm 84 | playbooks: 85 | create: ../resources/provisioning/AWS/create.yml 86 | destroy: ../resources/provisioning/AWS/destroy.yml 87 | verify: ../resources/tests/verify_win.yml 88 | config_options: 89 | defaults: 90 | callback_whitelist: profile_tasks,timer 91 | lint: 92 | name: ansible-lint 93 | scenario: 94 | name: cloud-aws-sapmachine-windows 95 | verifier: 96 | name: ansible 97 | lint: 98 | name: ansible-lint 99 | -------------------------------------------------------------------------------- /molecule/cloud-aws-sapmachine-windows/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2019-oracle_java-11-zip 14 | aws_image_id: ami-03ad37b4adab50a4c 15 | platform: windows2019core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: false 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-0f2b9cd66faea38af 23 | groups: 24 | - windows 25 | - zip 26 | 27 | - name: test-aws-windows2016-oracle_java-11-exe 28 | aws_image_id: ami-0a125a00b5b736e77 29 | platform: windows2016core 30 | aws_region: us-east-1 31 | instance_type: m5.large 32 | assign_public_ip: false 33 | spot_price: 0.14 34 | aws_sec_group: 35 | - default 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | groups: 38 | - windows 39 | - exe 40 | 41 | provisioner: 42 | name: ansible 43 | log: false 44 | config_options: 45 | defaults: 46 | callback_whitelist: profile_tasks,timer 47 | inventory: 48 | group_vars: 49 | windows: 50 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 51 | ansible_winrm_transport: credssp 52 | ansible_winrm_server_cert_validation: ignore 53 | ansible_connection: winrm 54 | zip: 55 | java_distribution: oracle_java 56 | java_tarball_install: true 57 | transport: local 58 | transport_local: /tmp/jdk-11.0.3_windows-x64_bin.zip 59 | exe: 60 | java_distribution: oracle_java 61 | java_tarball_install: false 62 | transport: local 63 | transport_local: /tmp/jdk-11.0.3_windows-x64_bin.exe 64 | playbooks: 65 | create: ../resources/provisioning/AWS/create.yml 66 | destroy: ../resources/provisioning/AWS/destroy.yml 67 | verify: ../resources/tests/verify_win.yml 68 | lint: 69 | name: ansible-lint 70 | scenario: 71 | name: cloud-aws-windows-11 72 | verifier: 73 | name: ansible 74 | lint: 75 | name: ansible-lint 76 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | java_path: C:\Temp\Java 7 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-11/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | vars: 5 | transport_s3_bucket: java-molecule-s3-test 6 | java_download_path: /tmp 7 | tasks: 8 | - name: Download artifact from s3 9 | aws_s3: 10 | bucket: '{{ transport_s3_bucket }}' 11 | object: '{{ item }}' 12 | dest: '{{ java_download_path }}/{{ item | basename }}' 13 | mode: get 14 | overwrite: different 15 | retries: 5 16 | delay: 2 17 | loop: 18 | - java/11/jdk-11.0.3_windows-x64_bin.exe 19 | - java/11/jdk-11.0.3_windows-x64_bin.zip 20 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-oracle_java-12-zip 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: false 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-0f2b9cd66faea38af 23 | groups: 24 | - windows 25 | - zip 26 | 27 | - name: test-aws-windows2019-oracle_java-12-exe 28 | aws_image_id: ami-0477b9335a5a75438 29 | platform: windows2019core 30 | aws_region: us-east-1 31 | instance_type: m5.large 32 | assign_public_ip: false 33 | spot_price: 0.14 34 | aws_sec_group: 35 | - default 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | groups: 38 | - windows 39 | - exe 40 | 41 | provisioner: 42 | name: ansible 43 | log: false 44 | config_options: 45 | defaults: 46 | callback_whitelist: profile_tasks,timer 47 | inventory: 48 | group_vars: 49 | windows: 50 | ansible_connection: winrm 51 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 52 | ansible_winrm_transport: credssp 53 | ansible_winrm_server_cert_validation: ignore 54 | zip: 55 | java_distribution: oracle_java 56 | java_tarball_install: true 57 | transport: local 58 | transport_local: /tmp/jdk-12.0.1_windows-x64_bin.zip 59 | exe: 60 | java_distribution: oracle_java 61 | java_tarball_install: false 62 | transport: local 63 | transport_local: /tmp/jdk-12.0.1_windows-x64_bin.exe 64 | playbooks: 65 | create: ../resources/provisioning/AWS/create.yml 66 | destroy: ../resources/provisioning/AWS/destroy.yml 67 | verify: ../resources/tests/verify_win.yml 68 | lint: 69 | name: ansible-lint 70 | scenario: 71 | name: cloud-aws-windows-12 72 | verifier: 73 | name: ansible 74 | lint: 75 | name: ansible-lint 76 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | java_path: C:\Temp\Java 7 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-12/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: true 5 | vars: 6 | transport_s3_bucket: java-molecule-s3-test 7 | java_download_path: /tmp 8 | tasks: 9 | - name: Download artifact from s3 10 | aws_s3: 11 | bucket: '{{ transport_s3_bucket }}' 12 | object: '{{ item }}' 13 | dest: '{{ java_download_path }}/{{ item | basename }}' 14 | mode: get 15 | overwrite: different 16 | retries: 5 17 | delay: 2 18 | loop: 19 | - java/12/jdk-12.0.1_windows-x64_bin.exe 20 | - java/12/jdk-12.0.1_windows-x64_bin.zip 21 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-oracle_java-8-web 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: false 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-0f2b9cd66faea38af 23 | groups: 24 | - windows 25 | - web 26 | 27 | - name: test-aws-windows2019-oracle_java-8-s3-local 28 | aws_image_id: ami-03ad37b4adab50a4c 29 | platform: windows2019core 30 | aws_region: us-east-1 31 | instance_type: m5.large 32 | assign_public_ip: false 33 | spot_price: 0.14 34 | aws_sec_group: 35 | - default 36 | vpc_subnet_id: subnet-0f2b9cd66faea38af 37 | groups: 38 | - windows 39 | - local 40 | 41 | provisioner: 42 | name: ansible 43 | log: false 44 | config_options: 45 | defaults: 46 | callback_whitelist: profile_tasks,timer 47 | lint: 48 | name: ansible-lint 49 | inventory: 50 | group_vars: 51 | windows: 52 | ansible_connection: winrm 53 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 54 | ansible_winrm_transport: credssp 55 | ansible_winrm_server_cert_validation: ignore 56 | local: 57 | java_distribution: oracle_java 58 | transport: local 59 | java_tarball_install: false 60 | transport_local: /tmp/jdk-8u202-windows-x64.exe 61 | web: 62 | java_distribution: oracle_java 63 | transport: web 64 | java_tarball_install: false 65 | transport_web: "{{ lookup('env','STORAGE_AWS') }}/oracle-java/jdk-8u45-windows-x64.exe" 66 | java_unlimited_policy_transport: oracle-fallback 67 | java_unlimited_policy_enabled: true 68 | playbooks: 69 | create: ../resources/provisioning/AWS/create.yml 70 | prepare: prepare.yml 71 | destroy: ../resources/provisioning/AWS/destroy.yml 72 | verify: ../resources/tests/verify_win.yml 73 | scenario: 74 | name: cloud-aws-windows-8 75 | verifier: 76 | name: ansible 77 | lint: 78 | name: ansible-lint 79 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | java_major_version: 8 7 | java_path: C:\Temp\Java 8 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-8/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: true 5 | vars: 6 | transport_s3_bucket: java-molecule-s3-test 7 | transport_s3_path: java/jdk-8u202-windows-x64.exe 8 | java_download_path: /tmp 9 | tasks: 10 | - name: Download artifact from s3 11 | aws_s3: 12 | bucket: '{{ transport_s3_bucket }}' 13 | object: '{{ transport_s3_path }}' 14 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 15 | mode: get 16 | overwrite: different 17 | retries: 5 18 | delay: 2 19 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-openjdk11-chocolatey/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-aws-windows2016-openjdk-11-chocolatey 15 | aws_image_id: ami-0a125a00b5b736e77 16 | platform: windows2016core 17 | aws_region: us-east-1 18 | instance_type: m5.large 19 | assign_public_ip: true 20 | spot_price: 0.14 21 | aws_sec_group: 22 | - default 23 | vpc_subnet_id: subnet-314c223d 24 | groups: 25 | - windows 26 | - chocolatey 27 | 28 | - name: test-aws-windows2019-openjdk-11-chocolatey 29 | aws_image_id: ami-03ad37b4adab50a4c 30 | platform: windows2019core 31 | aws_region: us-east-1 32 | instance_type: m5.large 33 | assign_public_ip: true 34 | spot_price: 0.14 35 | aws_sec_group: 36 | - default 37 | vpc_subnet_id: subnet-314c223d 38 | groups: 39 | - windows 40 | - chocolatey 41 | 42 | provisioner: 43 | name: ansible 44 | log: false 45 | config_options: 46 | defaults: 47 | callback_whitelist: profile_tasks,timer 48 | inventory: 49 | group_vars: 50 | windows: 51 | ansible_connection: winrm 52 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 53 | ansible_winrm_transport: credssp 54 | ansible_winrm_server_cert_validation: ignore 55 | chocolatey: 56 | java_distribution: openjdk 57 | transport: chocolatey 58 | java_major_version: 11 59 | java_minor_version: 0.4 60 | playbooks: 61 | create: ../resources/provisioning/AWS/create.yml 62 | destroy: ../resources/provisioning/AWS/destroy.yml 63 | verify: ../resources/tests/verify_win.yml 64 | lint: 65 | name: ansible-lint 66 | scenario: 67 | name: cloud-aws-windows-openjdk11-chocolatey 68 | verifier: 69 | name: ansible 70 | lint: 71 | name: ansible-lint 72 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-openjdk11-chocolatey/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-openjdk13-chocolatey/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-aws-windows2016-openjdk-13-chocolatey 15 | aws_image_id: ami-0a125a00b5b736e77 16 | platform: windows2016core 17 | aws_region: us-east-1 18 | instance_type: m5.large 19 | assign_public_ip: true 20 | spot_price: 0.14 21 | aws_sec_group: 22 | - default 23 | vpc_subnet_id: subnet-314c223d 24 | groups: 25 | - windows 26 | - chocolatey 27 | 28 | - name: test-aws-windows2019-openjdk-13-chocolatey 29 | aws_image_id: ami-03ad37b4adab50a4c 30 | platform: windows2019core 31 | aws_region: us-east-1 32 | instance_type: m5.large 33 | assign_public_ip: true 34 | spot_price: 0.14 35 | aws_sec_group: 36 | - default 37 | vpc_subnet_id: subnet-314c223d 38 | groups: 39 | - windows 40 | - chocolatey 41 | 42 | provisioner: 43 | name: ansible 44 | log: false 45 | config_options: 46 | defaults: 47 | callback_whitelist: profile_tasks,timer 48 | inventory: 49 | group_vars: 50 | windows: 51 | ansible_connection: winrm 52 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 53 | ansible_winrm_transport: credssp 54 | ansible_winrm_server_cert_validation: ignore 55 | chocolatey: 56 | java_distribution: openjdk 57 | transport: chocolatey 58 | java_major_version: 13 59 | playbooks: 60 | create: ../resources/provisioning/AWS/create.yml 61 | destroy: ../resources/provisioning/AWS/destroy.yml 62 | verify: ../resources/tests/verify_win.yml 63 | lint: 64 | name: ansible-lint 65 | scenario: 66 | name: cloud-aws-windows-openjdk13-chocolatey 67 | verifier: 68 | name: ansible 69 | lint: 70 | name: ansible-lint 71 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-openjdk13-chocolatey/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-sapjvm-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-sapjvm-8 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: true 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-314c223d 23 | groups: 24 | - windows 25 | - sapjvm 26 | 27 | - name: test-aws-windows2019-sapjvm-8 28 | aws_image_id: ami-0477b9335a5a75438 29 | platform: windows2019core 30 | aws_region: us-east-1 31 | instance_type: m5.large 32 | assign_public_ip: true 33 | spot_price: 0.14 34 | aws_sec_group: 35 | - default 36 | vpc_subnet_id: subnet-314c223d 37 | groups: 38 | - windows 39 | - sapjvm 40 | 41 | provisioner: 42 | name: ansible 43 | log: false 44 | config_options: 45 | defaults: 46 | callback_whitelist: profile_tasks,timer 47 | inventory: 48 | group_vars: 49 | windows: 50 | ansible_connection: winrm 51 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 52 | ansible_winrm_transport: credssp 53 | ansible_winrm_server_cert_validation: ignore 54 | sapjvm: 55 | java_distribution: sapjvm 56 | transport: fallback 57 | java_major_version: 8 58 | playbooks: 59 | create: ../resources/provisioning/AWS/create.yml 60 | destroy: ../resources/provisioning/AWS/destroy.yml 61 | verify: ../resources/tests/verify_win.yml 62 | lint: 63 | name: ansible-lint 64 | scenario: 65 | name: cloud-aws-windows-sapjvm-8 66 | verifier: 67 | name: ansible 68 | lint: 69 | name: ansible-lint 70 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-sapjvm-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-zulu-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-zulu-12 14 | aws_image_id: ami-00a20f508263efd30 15 | platform: windows2016core 16 | aws_region: us-east-1 17 | instance_type: m5.large 18 | assign_public_ip: true 19 | spot_price: 0.14 20 | aws_sec_group: 21 | - default 22 | vpc_subnet_id: subnet-314c223d 23 | groups: 24 | - windows 25 | - zulu 26 | 27 | - name: test-aws-windows2019-zulu-12 28 | aws_image_id: ami-0477b9335a5a75438 29 | platform: windows2019core 30 | aws_region: us-east-1 31 | instance_type: m5.large 32 | assign_public_ip: true 33 | spot_price: 0.14 34 | aws_sec_group: 35 | - default 36 | vpc_subnet_id: subnet-314c223d 37 | groups: 38 | - windows 39 | - zulu 40 | 41 | provisioner: 42 | name: ansible 43 | log: false 44 | config_options: 45 | defaults: 46 | callback_whitelist: profile_tasks,timer 47 | inventory: 48 | group_vars: 49 | windows: 50 | ansible_connection: winrm 51 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 52 | ansible_winrm_transport: credssp 53 | ansible_winrm_server_cert_validation: ignore 54 | zulu: 55 | java_distribution: zulu 56 | transport: fallback 57 | playbooks: 58 | create: ../resources/provisioning/AWS/create.yml 59 | destroy: ../resources/provisioning/AWS/destroy.yml 60 | verify: ../resources/tests/verify_win.yml 61 | lint: 62 | name: ansible-lint 63 | scenario: 64 | name: cloud-aws-windows-zulu-12 65 | verifier: 66 | name: ansible 67 | lint: 68 | name: ansible-lint 69 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-zulu-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-zulu12-chocolatey/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-aws-windows2016-zulu-12-chocolatey 15 | aws_image_id: ami-0a125a00b5b736e77 16 | platform: windows2016core 17 | aws_region: us-east-1 18 | instance_type: m5.large 19 | assign_public_ip: true 20 | spot_price: 0.14 21 | aws_sec_group: 22 | - default 23 | vpc_subnet_id: subnet-314c223d 24 | groups: 25 | - windows 26 | - chocolatey 27 | 28 | - name: test-aws-windows2019-zulu-12-chocolatey 29 | aws_image_id: ami-03ad37b4adab50a4c 30 | platform: windows2019core 31 | aws_region: us-east-1 32 | instance_type: m5.large 33 | assign_public_ip: true 34 | spot_price: 0.14 35 | aws_sec_group: 36 | - default 37 | vpc_subnet_id: subnet-314c223d 38 | groups: 39 | - windows 40 | - chocolatey 41 | 42 | provisioner: 43 | name: ansible 44 | log: false 45 | config_options: 46 | defaults: 47 | callback_whitelist: profile_tasks,timer 48 | inventory: 49 | group_vars: 50 | windows: 51 | ansible_connection: winrm 52 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 53 | ansible_winrm_transport: credssp 54 | ansible_winrm_server_cert_validation: ignore 55 | chocolatey: 56 | java_distribution: zulu 57 | transport: chocolatey 58 | java_major_version: 12 59 | playbooks: 60 | create: ../resources/provisioning/AWS/create.yml 61 | destroy: ../resources/provisioning/AWS/destroy.yml 62 | verify: ../resources/tests/verify_win.yml 63 | lint: 64 | name: ansible-lint 65 | scenario: 66 | name: cloud-aws-windows-zulu12-chocolatey 67 | verifier: 68 | name: ansible 69 | lint: 70 | name: ansible-lint 71 | -------------------------------------------------------------------------------- /molecule/cloud-aws-windows-zulu12-chocolatey/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-aws-zulu-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: | 9 | yamllint 10 | ansible-lint 11 | platforms: 12 | - name: test-aws-centos7-zulu-12 13 | image: ami-9887c6e7 14 | platform: centos7 15 | instance_type: t3.micro 16 | region: us-east-1 17 | vpc_subnet_id: subnet-314c223d 18 | assign_public_ip: true 19 | spot_price: 0.04 20 | security_group_name: 21 | - default 22 | wait_timeout: 1800 23 | ssh_user: centos 24 | groups: 25 | - rhel_family 26 | - zulu 27 | 28 | - name: test-aws-ubuntu18-zulu-12 29 | image: ami-012fd5eb46f56731f 30 | platform: ubuntu18 31 | instance_type: t3.micro 32 | region: us-east-1 33 | vpc_subnet_id: subnet-314c223d 34 | assign_public_ip: true 35 | spot_price: 0.04 36 | security_group_name: 37 | - default 38 | wait_timeout: 1800 39 | ssh_user: ubuntu 40 | groups: 41 | - debian_family 42 | - zulu 43 | 44 | - name: test-aws-Debian9-zulu-12 45 | image: ami-003f19e0e687de1cd 46 | platform: debian9 47 | instance_type: t3.micro 48 | region: us-east-1 49 | vpc_subnet_id: subnet-314c223d 50 | assign_public_ip: true 51 | spot_price: 0.04 52 | security_group_name: 53 | - default 54 | wait_timeout: 1800 55 | ssh_user: admin 56 | groups: 57 | - debian_family 58 | - zulu 59 | 60 | provisioner: 61 | name: ansible 62 | log: false 63 | config_options: 64 | defaults: 65 | callback_whitelist: profile_tasks,timer 66 | inventory: 67 | group_vars: 68 | zulu: 69 | java_distribution: zulu 70 | transport: fallback 71 | playbooks: 72 | create: ../resources/provisioning/AWS/create.yml 73 | prepare: ../resources/provisioning/AWS/prepare.yml 74 | destroy: ../resources/provisioning/AWS/destroy.yml 75 | verify: ../resources/tests/verify.yml 76 | 77 | scenario: 78 | name: cloud-aws-zulu-12 79 | verifier: 80 | name: ansible 81 | -------------------------------------------------------------------------------- /molecule/cloud-aws-zulu-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-adoptium-windows/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-adoptium-tarball-11 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | az_location: northeurope 17 | assign_public_ip: true 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - adoptium 25 | - hotspot 26 | - jdk 27 | - adoptium_fallback 28 | 29 | - name: test-azure-windows2019-adoptium-tarball-11 30 | platform: windows2019core 31 | vm_size: Standard_D2s_v3 32 | az_location: northeurope 33 | assign_public_ip: true 34 | az_resource_group_name: epm-ldi 35 | az_virtual_network_name: epm-ldi-northeurope-vnet 36 | az_subnet_name: epm-ldi-northeurope-subnet 37 | az_network_security_group: epm-ldi-northeurope-sg 38 | groups: 39 | - windows 40 | - adoptium 41 | - openj9 42 | - jre 43 | - adoptium_fallback 44 | 45 | - name: test-azure-windows2016-adoptium-chocolatey-13 46 | platform: windows2016core 47 | vm_size: Standard_D2s_v3 48 | az_location: northeurope 49 | assign_public_ip: true 50 | az_resource_group_name: epm-ldi 51 | az_virtual_network_name: epm-ldi-northeurope-vnet 52 | az_subnet_name: epm-ldi-northeurope-subnet 53 | az_network_security_group: epm-ldi-northeurope-sg 54 | groups: 55 | - windows 56 | - adoptium 57 | - hotspot 58 | - jdk 59 | - chocolatey 60 | 61 | - name: test-azure-windows2019-adoptium-chocolatey-13 62 | platform: windows2019core 63 | vm_size: Standard_D2s_v3 64 | az_location: northeurope 65 | assign_public_ip: true 66 | az_resource_group_name: epm-ldi 67 | az_virtual_network_name: epm-ldi-northeurope-vnet 68 | az_subnet_name: epm-ldi-northeurope-subnet 69 | az_network_security_group: epm-ldi-northeurope-sg 70 | groups: 71 | - windows 72 | - adoptium 73 | - openj9 74 | - jre 75 | - chocolatey 76 | 77 | provisioner: 78 | name: ansible 79 | log: true 80 | inventory: 81 | group_vars: 82 | adoptium: 83 | java_distribution: adoptium 84 | jdk: 85 | java_package: jdk 86 | jre: 87 | java_package: jre 88 | openj9: 89 | adoptium_impl: openj9 90 | hotspot: 91 | adoptium_impl: hotspot 92 | adoptium_fallback: 93 | transport: fallback 94 | java_major_version: 11 95 | chocolatey: 96 | transport: chocolatey 97 | java_major_version: 14 98 | windows: 99 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 100 | ansible_winrm_transport: credssp 101 | ansible_winrm_server_cert_validation: ignore 102 | ansible_connection: winrm 103 | playbooks: 104 | create: ../resources/provisioning/AZURE/create.yml 105 | destroy: ../resources/provisioning/AZURE/destroy.yml 106 | verify: ../resources/tests/verify_win.yml 107 | config_options: 108 | defaults: 109 | callback_whitelist: profile_tasks,timer 110 | lint: 111 | name: ansible-lint 112 | scenario: 113 | name: cloud-azure-adoptium-windows 114 | verifier: 115 | name: ansible 116 | lint: 117 | name: ansible-lint 118 | -------------------------------------------------------------------------------- /molecule/cloud-azure-adoptium-windows/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-openjdk-windows-ga/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-aws-windows2016-openjdk-ga 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | az_location: northeurope 17 | az_resource_group_name: epm-ldi 18 | az_virtual_network_name: epm-ldi-northeurope-vnet 19 | az_subnet_name: epm-ldi-northeurope-subnet 20 | az_network_security_group: epm-ldi-northeurope-sg 21 | groups: 22 | - windows 23 | 24 | - name: test-aws-windows2019-openjdk-ga 25 | platform: windows2019core 26 | vm_size: Standard_D2s_v3 27 | az_location: northeurope 28 | az_resource_group_name: epm-ldi 29 | az_virtual_network_name: epm-ldi-northeurope-vnet 30 | az_subnet_name: epm-ldi-northeurope-subnet 31 | az_network_security_group: epm-ldi-northeurope-sg 32 | groups: 33 | - windows 34 | 35 | provisioner: 36 | name: ansible 37 | log: false 38 | config_options: 39 | defaults: 40 | callback_whitelist: profile_tasks,timer 41 | inventory: 42 | group_vars: 43 | windows: 44 | ansible_connection: winrm 45 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 46 | ansible_winrm_transport: credssp 47 | ansible_winrm_server_cert_validation: ignore 48 | playbooks: 49 | create: ../resources/provisioning/AZURE/create.yml 50 | destroy: ../resources/provisioning/AZURE/destroy.yml 51 | verify: ../resources/tests/verify_win.yml 52 | lint: 53 | name: ansible-lint 54 | scenario: 55 | name: cloud-azure-openjdk-windows-ga 56 | verifier: 57 | name: ansible 58 | lint: 59 | name: ansible-lint 60 | -------------------------------------------------------------------------------- /molecule/cloud-azure-openjdk-windows-ga/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-sapmachine-windows/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-sapmachine-tarball-13 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: true 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - sapmachine 25 | - jdk 26 | - sapmachine_fallback 27 | - ver13 28 | 29 | - name: test-azure-windows2019-sapmachine-tarball-11 30 | platform: windows2019core 31 | vm_size: Standard_D2s_v3 32 | assign_public_ip: true 33 | az_location: northeurope 34 | az_resource_group_name: epm-ldi 35 | az_virtual_network_name: epm-ldi-northeurope-vnet 36 | az_subnet_name: epm-ldi-northeurope-subnet 37 | az_network_security_group: epm-ldi-northeurope-sg 38 | groups: 39 | - windows 40 | - sapmachine 41 | - jre 42 | - sapmachine_fallback 43 | - ver11 44 | 45 | # todo: enable after fix! 46 | - name: test-azure-windows2019-sapmachine-chocolatey-13 47 | platform: windows2019core 48 | vm_size: Standard_D2s_v3 49 | assign_public_ip: true 50 | az_location: northeurope 51 | az_resource_group_name: epm-ldi 52 | az_virtual_network_name: epm-ldi-northeurope-vnet 53 | az_subnet_name: epm-ldi-northeurope-subnet 54 | az_network_security_group: epm-ldi-northeurope-sg 55 | groups: 56 | - windows 57 | - sapmachine 58 | - ver13 59 | - chocolatey 60 | 61 | provisioner: 62 | name: ansible 63 | log: false 64 | inventory: 65 | group_vars: 66 | sapmachine: 67 | java_distribution: sapmachine 68 | ver11: 69 | java_major_version: 11 70 | java_minor_version: 0.3 71 | ver13: 72 | java_major_version: 13 73 | sapmachine_fallback: 74 | transport: fallback 75 | chocolatey: 76 | transport: chocolatey 77 | windows: 78 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 79 | ansible_winrm_transport: credssp 80 | ansible_winrm_server_cert_validation: ignore 81 | ansible_connection: winrm 82 | playbooks: 83 | create: ../resources/provisioning/AZURE/create.yml 84 | destroy: ../resources/provisioning/AZURE/destroy.yml 85 | verify: ../resources/tests/verify_win.yml 86 | config_options: 87 | defaults: 88 | callback_whitelist: profile_tasks,timer 89 | lint: 90 | name: ansible-lint 91 | scenario: 92 | name: cloud-azure-sapmachine-windows 93 | verifier: 94 | name: ansible 95 | lint: 96 | name: ansible-lint 97 | -------------------------------------------------------------------------------- /molecule/cloud-azure-sapmachine-windows/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-11/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2019-oracle_java-11-zip 14 | platform: windows2019core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: false 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - zip 25 | 26 | - name: test-azure-windows2016-oracle_java-11-exe 27 | platform: windows2016core 28 | vm_size: Standard_D2s_v3 29 | assign_public_ip: false 30 | az_location: northeurope 31 | az_resource_group_name: epm-ldi 32 | az_virtual_network_name: epm-ldi-northeurope-vnet 33 | az_subnet_name: epm-ldi-northeurope-subnet 34 | az_network_security_group: epm-ldi-northeurope-sg 35 | groups: 36 | - windows 37 | - exe 38 | 39 | provisioner: 40 | name: ansible 41 | log: false 42 | config_options: 43 | defaults: 44 | callback_whitelist: profile_tasks,timer 45 | inventory: 46 | group_vars: 47 | windows: 48 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 49 | ansible_winrm_transport: credssp 50 | ansible_winrm_server_cert_validation: ignore 51 | ansible_connection: winrm 52 | zip: 53 | java_distribution: oracle_java 54 | java_tarball_install: true 55 | transport: local 56 | transport_local: /tmp/jdk-11.0.3_windows-x64_bin.zip 57 | exe: 58 | java_distribution: oracle_java 59 | transport: web 60 | java_tarball_install: false 61 | transport_web: "https://storage11490.blob.core.windows.net/\ 62 | oracle-java/jdk-11.0.3_windows-x64_bin.exe?\ 63 | {{ hostvars['localhost']['storage_sig']['response']['serviceSasToken'] }}" 64 | playbooks: 65 | create: ../resources/provisioning/AZURE/create.yml 66 | destroy: ../resources/provisioning/AZURE/destroy.yml 67 | prepare: prepare.yml 68 | verify: ../resources/tests/verify_win.yml 69 | lint: 70 | name: ansible-lint 71 | scenario: 72 | name: cloud-azure-windows-11 73 | verifier: 74 | name: ansible 75 | lint: 76 | name: ansible-lint 77 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-11/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate SAS link 3 | hosts: localhost 4 | gather_facts: true 5 | connection: local 6 | vars: 7 | az_resource_group_name: epm-ldi 8 | az_storage_account_name: storage11490 9 | az_container_name: oracle-java 10 | java_download_path: /tmp 11 | az_file_name: jdk-11.0.3_windows-x64_bin.exe 12 | tasks: 13 | - name: Set expiration period 14 | set_fact: 15 | sas_time_start: '{{ ansible_date_time.iso8601_micro }}' 16 | sas_time_expire: >- 17 | {{ ('%Y-%m-%dT%H:%M:%S' 18 | | strftime(ansible_date_time.epoch|int + 60)) 19 | ~ (ansible_date_time.iso8601_micro | splitext)[1] }} 20 | 21 | - name: Generate access signature 22 | azure_rm_resource: 23 | resource_group: '{{ az_resource_group_name }}' 24 | method: POST 25 | url: "/subscriptions/{{ lookup('env','AZURE_SUBSCRIPTION_ID') }}\ 26 | /resourceGroups/{{ az_resource_group_name }}/providers/\ 27 | Microsoft.Storage/storageAccounts/\ 28 | {{ az_storage_account_name }}/ListServiceSas/" 29 | body: 30 | canonicalizedResource: '/blob/{{ az_storage_account_name }}/{{ az_container_name }}/{{ az_file_name }}' 31 | signedResource: b 32 | signedPermission: r 33 | signedStart: '{{ sas_time_start }}' 34 | signedExpiry: '{{ sas_time_expire }}' 35 | register: storage_sig 36 | changed_when: false 37 | 38 | - name: Converge 39 | hosts: all 40 | roles: 41 | - role: ansible-role-java 42 | java_path: C:\Temp\Java 43 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-11/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: false 5 | vars: 6 | az_resource_group_name: epm-ldi 7 | az_storage_account_name: storage11490 8 | az_container_name: oracle-java 9 | java_download_path: /tmp 10 | tasks: 11 | - name: Download artifact from Storage Blob 12 | azure_rm_storageblob: 13 | resource_group: '{{ az_resource_group_name }}' 14 | storage_account_name: '{{ az_storage_account_name }}' 15 | container: '{{ az_container_name }}' 16 | blob: '{{ item }}' 17 | dest: '{{ java_download_path }}/{{ item }}' 18 | loop: 19 | - jdk-11.0.3_windows-x64_bin.zip 20 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-oracle_java-12-zip 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: false 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - zip 25 | 26 | - name: test-azure-windows2019-oracle_java-12-exe 27 | platform: windows2019core 28 | vm_size: Standard_D2s_v3 29 | assign_public_ip: false 30 | az_location: northeurope 31 | az_resource_group_name: epm-ldi 32 | az_virtual_network_name: epm-ldi-northeurope-vnet 33 | az_subnet_name: epm-ldi-northeurope-subnet 34 | az_network_security_group: epm-ldi-northeurope-sg 35 | groups: 36 | - windows 37 | - exe 38 | 39 | provisioner: 40 | name: ansible 41 | log: false 42 | config_options: 43 | defaults: 44 | callback_whitelist: profile_tasks,timer 45 | inventory: 46 | group_vars: 47 | windows: 48 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 49 | ansible_winrm_transport: credssp 50 | ansible_winrm_server_cert_validation: ignore 51 | ansible_connection: winrm 52 | zip: 53 | java_distribution: oracle_java 54 | java_tarball_install: true 55 | transport: local 56 | transport_local: /tmp/jdk-12.0.1_windows-x64_bin.zip 57 | exe: 58 | java_distribution: oracle_java 59 | transport: web 60 | java_tarball_install: false 61 | transport_web: "https://storage11490.blob.core.windows.net/\ 62 | oracle-java/jdk-12.0.1_windows-x64_bin.exe?\ 63 | {{ hostvars['localhost']['storage_sig']['response']['serviceSasToken'] }}" 64 | playbooks: 65 | create: ../resources/provisioning/AZURE/create.yml 66 | destroy: ../resources/provisioning/AZURE/destroy.yml 67 | prepare: prepare.yml 68 | verify: ../resources/tests/verify_win.yml 69 | lint: 70 | name: ansible-lint 71 | scenario: 72 | name: cloud-azure-windows-12 73 | verifier: 74 | name: ansible 75 | lint: 76 | name: ansible-lint 77 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate SAS link 3 | hosts: localhost 4 | gather_facts: true 5 | connection: local 6 | vars: 7 | az_resource_group_name: epm-ldi 8 | az_storage_account_name: storage11490 9 | az_container_name: oracle-java 10 | java_download_path: /tmp 11 | az_file_name: jdk-12.0.1_windows-x64_bin.exe 12 | tasks: 13 | - name: Set expiration period 14 | set_fact: 15 | sas_time_start: '{{ ansible_date_time.iso8601_micro }}' 16 | sas_time_expire: >- 17 | {{ ('%Y-%m-%dT%H:%M:%S' 18 | | strftime(ansible_date_time.epoch|int + 120)) 19 | ~ (ansible_date_time.iso8601_micro | splitext)[1] }} 20 | 21 | - name: Generate access signature 22 | azure_rm_resource: 23 | resource_group: '{{ az_resource_group_name }}' 24 | method: POST 25 | url: "/subscriptions/{{ lookup('env','AZURE_SUBSCRIPTION_ID') }}\ 26 | /resourceGroups/{{ az_resource_group_name }}/providers/\ 27 | Microsoft.Storage/storageAccounts/\ 28 | {{ az_storage_account_name }}/ListServiceSas/" 29 | body: 30 | canonicalizedResource: '/blob/{{ az_storage_account_name }}/{{ az_container_name }}/{{ az_file_name }}' 31 | signedResource: b 32 | signedPermission: r 33 | signedStart: '{{ sas_time_start }}' 34 | signedExpiry: '{{ sas_time_expire }}' 35 | register: storage_sig 36 | changed_when: false 37 | 38 | - name: Converge 39 | hosts: all 40 | roles: 41 | - role: ansible-role-java 42 | java_path: C:\Temp\Java 43 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-12/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: false 5 | vars: 6 | az_resource_group_name: epm-ldi 7 | az_storage_account_name: storage11490 8 | az_container_name: oracle-java 9 | java_download_path: /tmp 10 | tasks: 11 | - name: Download artifact from Storage Blob 12 | azure_rm_storageblob: 13 | resource_group: '{{ az_resource_group_name }}' 14 | storage_account_name: '{{ az_storage_account_name }}' 15 | container: '{{ az_container_name }}' 16 | blob: '{{ item }}' 17 | dest: '{{ java_download_path }}/{{ item }}' 18 | loop: 19 | - jdk-12.0.1_windows-x64_bin.zip 20 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-azure-Windows2016-oracle_java-8-web 15 | platform: windows2016core 16 | vm_size: Standard_D2s_v3 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - web 25 | 26 | - name: test-azure-Windows2019-oracle_java-8-s3-local 27 | platform: windows2019core 28 | vm_size: Standard_D2s_v3 29 | az_location: northeurope 30 | az_resource_group_name: epm-ldi 31 | az_virtual_network_name: epm-ldi-northeurope-vnet 32 | az_subnet_name: epm-ldi-northeurope-subnet 33 | az_network_security_group: epm-ldi-northeurope-sg 34 | groups: 35 | - windows 36 | - local 37 | provisioner: 38 | name: ansible 39 | log: true 40 | config_options: 41 | defaults: 42 | callback_whitelist: profile_tasks,timer 43 | inventory: 44 | group_vars: 45 | windows: 46 | ansible_connection: winrm 47 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 48 | ansible_winrm_transport: credssp 49 | ansible_winrm_server_cert_validation: ignore 50 | local: 51 | java_distribution: oracle_java 52 | transport: local 53 | java_tarball_install: false 54 | transport_local: /tmp/jdk-8u202-windows-x64.exe 55 | web: 56 | java_distribution: oracle_java 57 | transport: web 58 | java_tarball_install: false 59 | transport_web: "https://storage11490.blob.core.windows.net/\ 60 | oracle-java/jdk-8u45-windows-x64.exe?\ 61 | {{ hostvars['localhost']['storage_sig']['response']['serviceSasToken'] }}" 62 | java_unlimited_policy_transport: fallback 63 | java_unlimited_policy_enabled: false 64 | playbooks: 65 | create: ../resources/provisioning/AZURE/create.yml 66 | prepare: prepare.yml 67 | destroy: ../resources/provisioning/AZURE/destroy.yml 68 | verify: ../resources/tests/verify_win.yml 69 | lint: 70 | name: ansible-lint 71 | scenario: 72 | name: cloud-azure-windows-8 73 | verifier: 74 | name: ansible 75 | lint: 76 | name: ansible-lint 77 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Generate SAS link 3 | hosts: localhost 4 | gather_facts: true 5 | connection: local 6 | vars: 7 | az_resource_group_name: epm-ldi 8 | az_storage_account_name: storage11490 9 | az_container_name: oracle-java 10 | java_download_path: /tmp 11 | az_file_name: jdk-8u45-windows-x64.exe 12 | tasks: 13 | - name: Set expiration period 14 | set_fact: 15 | sas_time_start: '{{ ansible_date_time.iso8601_micro }}' 16 | sas_time_expire: >- 17 | {{ ('%Y-%m-%dT%H:%M:%S' 18 | | strftime(ansible_date_time.epoch|int + 60)) 19 | ~ (ansible_date_time.iso8601_micro | splitext)[1] }} 20 | 21 | - name: Generate access signature 22 | azure_rm_resource: 23 | resource_group: '{{ az_resource_group_name }}' 24 | method: POST 25 | url: "/subscriptions/{{ lookup('env','AZURE_SUBSCRIPTION_ID') }}\ 26 | /resourceGroups/{{ az_resource_group_name }}/providers/\ 27 | Microsoft.Storage/storageAccounts/\ 28 | {{ az_storage_account_name }}/ListServiceSas/" 29 | api_version: '2019-06-01' 30 | body: 31 | canonicalizedResource: '/blob/{{ az_storage_account_name }}/{{ az_container_name }}/{{ az_file_name }}' 32 | signedResource: b 33 | signedPermission: r 34 | signedStart: '{{ sas_time_start }}' 35 | signedExpiry: '{{ sas_time_expire }}' 36 | register: storage_sig 37 | changed_when: false 38 | 39 | - name: Converge 40 | hosts: all 41 | roles: 42 | - role: ansible-role-java 43 | java_major_version: 8 44 | java_path: C:\Temp\Java 45 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-8/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Prepare host to S3 transport 3 | hosts: localhost 4 | gather_facts: false 5 | vars: 6 | az_resource_group_name: epm-ldi 7 | az_storage_account_name: storage11490 8 | az_container_name: oracle-java 9 | java_download_path: /tmp 10 | az_file_name: jdk-8u45-windows-x64.exe 11 | tasks: 12 | - name: Download artifact from Storage Blob 13 | azure_rm_storageblob: 14 | resource_group: '{{ az_resource_group_name }}' 15 | storage_account_name: '{{ az_storage_account_name }}' 16 | container: '{{ az_container_name }}' 17 | blob: jdk-8u202-windows-x64.exe 18 | dest: '{{ java_download_path }}/jdk-8u202-windows-x64.exe' 19 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-corretto/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-corretto-11-fb-msi 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: false 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - corretto 25 | - msi 26 | - java11 27 | 28 | - name: test-azure-windows2019-corretto-11-fb-msi 29 | platform: windows2019core 30 | vm_size: Standard_D2s_v3 31 | assign_public_ip: false 32 | az_location: northeurope 33 | az_resource_group_name: epm-ldi 34 | az_virtual_network_name: epm-ldi-northeurope-vnet 35 | az_subnet_name: epm-ldi-northeurope-subnet 36 | az_network_security_group: epm-ldi-northeurope-sg 37 | groups: 38 | - windows 39 | - corretto 40 | - msi 41 | - java11 42 | 43 | - name: test-azure-windows2016-corretto-8-fb-msi 44 | platform: windows2016core 45 | vm_size: Standard_D2s_v3 46 | assign_public_ip: false 47 | az_location: northeurope 48 | az_resource_group_name: epm-ldi 49 | az_virtual_network_name: epm-ldi-northeurope-vnet 50 | az_subnet_name: epm-ldi-northeurope-subnet 51 | az_network_security_group: epm-ldi-northeurope-sg 52 | groups: 53 | - windows 54 | - corretto 55 | - msi 56 | - java8 57 | 58 | - name: test-azure-windows2019-corretto-8-fb-msi 59 | platform: windows2019core 60 | vm_size: Standard_D2s_v3 61 | assign_public_ip: false 62 | az_location: northeurope 63 | az_resource_group_name: epm-ldi 64 | az_virtual_network_name: epm-ldi-northeurope-vnet 65 | az_subnet_name: epm-ldi-northeurope-subnet 66 | az_network_security_group: epm-ldi-northeurope-sg 67 | groups: 68 | - windows 69 | - corretto 70 | - msi 71 | - java8 72 | 73 | provisioner: 74 | name: ansible 75 | log: true 76 | config_options: 77 | defaults: 78 | callback_whitelist: profile_tasks,timer 79 | inventory: 80 | group_vars: 81 | windows: 82 | ansible_connection: winrm 83 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 84 | ansible_winrm_transport: credssp 85 | ansible_winrm_server_cert_validation: ignore 86 | corretto: 87 | java_distribution: corretto 88 | transport: fallback 89 | msi: 90 | java_tarball_install: false 91 | java8: 92 | java_major_version: 8 93 | java11: 94 | java_major_version: 11 95 | playbooks: 96 | create: ../resources/provisioning/AZURE/create.yml 97 | destroy: ../resources/provisioning/AZURE/destroy.yml 98 | verify: ../resources/tests/verify_win.yml 99 | lint: 100 | name: ansible-lint 101 | scenario: 102 | name: cloud-azure-windows-corretto 103 | verifier: 104 | name: ansible 105 | lint: 106 | name: ansible-lint 107 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-corretto/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-openjdk14-chocolatey/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: azure 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-azure-windows2016-openjdk-13-chocolatey 15 | platform: windows2016core 16 | vm_size: Standard_D2s_v3 17 | assign_public_ip: true 18 | az_location: northeurope 19 | az_resource_group_name: epm-ldi 20 | az_virtual_network_name: epm-ldi-northeurope-vnet 21 | az_subnet_name: epm-ldi-northeurope-subnet 22 | az_network_security_group: epm-ldi-northeurope-sg 23 | groups: 24 | - windows 25 | - chocolatey 26 | 27 | - name: test-azure-windows2019-openjdk-13-chocolatey 28 | platform: windows2019core 29 | vm_size: Standard_D2s_v3 30 | assign_public_ip: true 31 | az_location: northeurope 32 | az_resource_group_name: epm-ldi 33 | az_virtual_network_name: epm-ldi-northeurope-vnet 34 | az_subnet_name: epm-ldi-northeurope-subnet 35 | az_network_security_group: epm-ldi-northeurope-sg 36 | groups: 37 | - windows 38 | - chocolatey 39 | 40 | provisioner: 41 | name: ansible 42 | log: false 43 | config_options: 44 | defaults: 45 | callback_whitelist: profile_tasks,timer 46 | inventory: 47 | group_vars: 48 | windows: 49 | ansible_connection: winrm 50 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 51 | ansible_winrm_transport: credssp 52 | ansible_winrm_server_cert_validation: ignore 53 | chocolatey: 54 | java_distribution: openjdk 55 | transport: chocolatey 56 | java_major_version: 14 57 | playbooks: 58 | create: ../resources/provisioning/AZURE/create.yml 59 | destroy: ../resources/provisioning/AZURE/destroy.yml 60 | verify: ../resources/tests/verify_win.yml 61 | lint: 62 | name: ansible-lint 63 | scenario: 64 | name: cloud-azure-windows-openjdk14-chocolatey 65 | verifier: 66 | name: ansible 67 | lint: 68 | name: ansible-lint 69 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-openjdk14-chocolatey/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-sapjvm-8/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-sapjvm-8 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: true 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - sapjvm 25 | 26 | - name: test-azure-windows2019-sapjvm-8 27 | platform: windows2019core 28 | vm_size: Standard_D2s_v3 29 | assign_public_ip: true 30 | az_location: northeurope 31 | az_resource_group_name: epm-ldi 32 | az_virtual_network_name: epm-ldi-northeurope-vnet 33 | az_subnet_name: epm-ldi-northeurope-subnet 34 | az_network_security_group: epm-ldi-northeurope-sg 35 | groups: 36 | - windows 37 | - sapjvm 38 | 39 | provisioner: 40 | name: ansible 41 | log: false 42 | config_options: 43 | defaults: 44 | callback_whitelist: profile_tasks,timer 45 | inventory: 46 | group_vars: 47 | windows: 48 | ansible_connection: winrm 49 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 50 | ansible_winrm_transport: credssp 51 | ansible_winrm_server_cert_validation: ignore 52 | sapjvm: 53 | java_distribution: sapjvm 54 | transport: fallback 55 | java_major_version: 8 56 | playbooks: 57 | create: ../resources/provisioning/AZURE/create.yml 58 | destroy: ../resources/provisioning/AZURE/destroy.yml 59 | verify: ../resources/tests/verify_win.yml 60 | lint: 61 | name: ansible-lint 62 | scenario: 63 | name: cloud-azure-windows-sapjvm-8 64 | verifier: 65 | name: ansible 66 | lint: 67 | name: ansible-lint 68 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-sapjvm-8/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-zulu-12/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-azure-windows2016-zulu-12 14 | platform: windows2016core 15 | vm_size: Standard_D2s_v3 16 | assign_public_ip: false 17 | az_location: northeurope 18 | az_resource_group_name: epm-ldi 19 | az_virtual_network_name: epm-ldi-northeurope-vnet 20 | az_subnet_name: epm-ldi-northeurope-subnet 21 | az_network_security_group: epm-ldi-northeurope-sg 22 | groups: 23 | - windows 24 | - zulu 25 | 26 | - name: test-azure-windows2019-zulu-12 27 | platform: windows2019core 28 | vm_size: Standard_D2s_v3 29 | assign_public_ip: false 30 | az_location: northeurope 31 | az_resource_group_name: epm-ldi 32 | az_virtual_network_name: epm-ldi-northeurope-vnet 33 | az_subnet_name: epm-ldi-northeurope-subnet 34 | az_network_security_group: epm-ldi-northeurope-sg 35 | groups: 36 | - windows 37 | - zulu 38 | 39 | provisioner: 40 | name: ansible 41 | log: true 42 | config_options: 43 | defaults: 44 | callback_whitelist: profile_tasks,timer 45 | inventory: 46 | group_vars: 47 | windows: 48 | ansible_connection: winrm 49 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 50 | ansible_winrm_transport: credssp 51 | ansible_winrm_server_cert_validation: ignore 52 | zulu: 53 | java_distribution: zulu 54 | transport: fallback 55 | playbooks: 56 | create: ../resources/provisioning/AZURE/create.yml 57 | destroy: ../resources/provisioning/AZURE/destroy.yml 58 | verify: ../resources/tests/verify_win.yml 59 | lint: 60 | name: ansible-lint 61 | scenario: 62 | name: cloud-azure-windows-zulu-12 63 | verifier: 64 | name: ansible 65 | lint: 66 | name: ansible-lint 67 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-zulu-12/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-zulu12-chocolatey/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: ec2 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | 14 | - name: test-azure-windows2016-zulu-12-chocolatey 15 | platform: windows2016core 16 | vm_size: Standard_D2s_v3 17 | assign_public_ip: true 18 | az_location: northeurope 19 | az_resource_group_name: epm-ldi 20 | az_virtual_network_name: epm-ldi-northeurope-vnet 21 | az_subnet_name: epm-ldi-northeurope-subnet 22 | az_network_security_group: epm-ldi-northeurope-sg 23 | groups: 24 | - windows 25 | - chocolatey 26 | 27 | - name: test-azure-windows2019-zulu-12-chocolatey 28 | platform: windows2019core 29 | vm_size: Standard_D2s_v3 30 | assign_public_ip: true 31 | az_location: northeurope 32 | az_resource_group_name: epm-ldi 33 | az_virtual_network_name: epm-ldi-northeurope-vnet 34 | az_subnet_name: epm-ldi-northeurope-subnet 35 | az_network_security_group: epm-ldi-northeurope-sg 36 | groups: 37 | - windows 38 | - chocolatey 39 | 40 | provisioner: 41 | name: ansible 42 | log: false 43 | config_options: 44 | defaults: 45 | callback_whitelist: profile_tasks,timer 46 | inventory: 47 | group_vars: 48 | windows: 49 | ansible_connection: winrm 50 | ansible_password: "{{ lookup('env', 'WINRM_ADMIN_PWD') | default('M0leCule123!', true) }}" 51 | ansible_winrm_transport: credssp 52 | ansible_winrm_server_cert_validation: ignore 53 | chocolatey: 54 | java_distribution: zulu 55 | transport: chocolatey 56 | java_major_version: 12 57 | playbooks: 58 | create: ../resources/provisioning/AZURE/create.yml 59 | destroy: ../resources/provisioning/AZURE/destroy.yml 60 | verify: ../resources/tests/verify_win.yml 61 | lint: 62 | name: ansible-lint 63 | scenario: 64 | name: cloud-azure-windows-zulu12-chocolatey 65 | verifier: 66 | name: ansible 67 | lint: 68 | name: ansible-lint 69 | -------------------------------------------------------------------------------- /molecule/cloud-azure-windows-zulu12-chocolatey/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/cloud-epc-delegated/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: delegated 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-epc-centos7-oracle_java_jre 14 | image: CentOS7_64-bit 15 | shape: small 16 | region: EPAM-BY2 17 | wait_timeout: 3600 18 | groups: 19 | - rhel_family 20 | - web_jre 21 | - name: test-epc-ubuntu1804-oracle_java_jre 22 | image: Ubuntu18.04_64-bit 23 | shape: small 24 | region: EPAM-BY2 25 | wait_timeout: 3600 26 | groups: 27 | - debian_family 28 | - web_jre 29 | provisioner: 30 | name: ansible 31 | log: true 32 | inventory: 33 | group_vars: 34 | web_jre: 35 | java_distribution: oracle_java 36 | java_package: jre 37 | java_major_version: 8 38 | transport: web 39 | transport_web: "{{ lookup('env','STORAGE_EPC') }}/oracle-java/jre-8u211-linux-x64.tar.gz" 40 | java_tarball_install: true 41 | playbooks: 42 | create: ../resources/provisioning/EPC/create.yml 43 | prepare: ../resources/provisioning/EPC/prepare.yml 44 | destroy: ../resources/provisioning/EPC/destroy.yml 45 | verify: ../resources/tests/verify.yml 46 | config_options: 47 | ssh_connection: 48 | control_path: "/var/ans/%%h" 49 | defaults: 50 | callback_whitelist: profile_tasks,timer 51 | lint: 52 | name: ansible-lint 53 | env: 54 | ANSIBLE_LIBRARY: ${ANSIBLE_LIBRARY} 55 | scenario: 56 | name: cloud-epc-delegated 57 | verifier: 58 | name: ansible 59 | lint: 60 | name: ansible-lint 61 | -------------------------------------------------------------------------------- /molecule/cloud-epc-delegated/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/default/Dockerfile.j2: -------------------------------------------------------------------------------- 1 | # Molecule managed 2 | 3 | {% if item.registry is defined %} 4 | FROM {{ item.registry.url }}/{{ item.image }} 5 | {% else %} 6 | FROM {{ item.image }} 7 | {% endif %} 8 | 9 | RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo bash ca-certificates && apt-get clean; \ 10 | elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel python2-dnf bash && dnf clean all; \ 11 | elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python sudo yum-plugin-ovl bash util-linux && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \ 12 | elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python sudo bash python-xml && zypper clean -a; \ 13 | elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo bash ca-certificates; \ 14 | elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python sudo bash ca-certificates && xbps-remove -O; fi 15 | 16 | RUN if [ -f /sbin/agetty ]; then cp /bin/true /sbin/agetty; \ 17 | elif [ -f /sbin/mingetty ]; then cp /bin/true /sbin/mingetty; fi 18 | -------------------------------------------------------------------------------- /molecule/default/molecule.yml: -------------------------------------------------------------------------------- 1 | --- 2 | dependency: 3 | name: galaxy 4 | options: 5 | role-file: requirements.yml 6 | driver: 7 | name: docker 8 | lint: 9 | name: yamllint 10 | options: 11 | config-file: .yamllint 12 | platforms: 13 | - name: test-docker-centos7-openjdk 14 | image: leandelivery/docker-systemd:centos7 15 | privileged: true 16 | groups: 17 | - rhel_family 18 | - name: test-docker-ubuntu1804-openjdk 19 | image: leandelivery/docker-systemd:ubuntu-18.04 20 | privileged: true 21 | security_opts: 22 | - seccomp=unconfined 23 | volumes: 24 | - /sys/fs/cgroup:/sys/fs/cgroup:ro 25 | tmpfs: 26 | - /tmp 27 | - /run 28 | capabilities: 29 | - SYS_ADMIN 30 | groups: 31 | - debian_family 32 | provisioner: 33 | name: ansible 34 | log: false 35 | config_options: 36 | defaults: 37 | callback_whitelist: profile_tasks,timer 38 | playbooks: 39 | verify: ../resources/tests/verify.yml 40 | lint: 41 | name: ansible-lint 42 | scenario: 43 | name: default 44 | verifier: 45 | name: ansible 46 | lint: 47 | name: ansible-lint 48 | -------------------------------------------------------------------------------- /molecule/default/playbook.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Converge 3 | hosts: all 4 | roles: 5 | - role: ansible-role-java 6 | -------------------------------------------------------------------------------- /molecule/resources/prepare.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add epel 3 | hosts: centos8 4 | tasks: 5 | - name: Enable EPEL repository 6 | dnf: 7 | name: 'https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm' 8 | state: present 9 | update_cache: true 10 | register: status 11 | until: status is succeeded 12 | become: true 13 | -------------------------------------------------------------------------------- /molecule/resources/tests/verify.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Verify 3 | hosts: all 4 | tasks: 5 | 6 | - name: Check java 7 | command: java -version 8 | register: java_ver_cmd 9 | 10 | - name: Debug java ver 11 | debug: 12 | var: java_ver_cmd 13 | 14 | - name: Assert that java ver is present 15 | assert: 16 | that: "'Runtime Environment' in java_ver_cmd.stderr" 17 | -------------------------------------------------------------------------------- /molecule/resources/tests/verify_win.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Verify 3 | hosts: windows 4 | tasks: 5 | 6 | - name: Check java version 7 | win_command: java -version 8 | register: java_ver_cmd 9 | changed_when: false 10 | 11 | - name: Debug java version 12 | debug: 13 | var: java_ver_cmd 14 | 15 | - name: Assert that java is working 16 | assert: 17 | that: "'Runtime Environment' in java_ver_cmd.stderr" 18 | -------------------------------------------------------------------------------- /requirements.yml: -------------------------------------------------------------------------------- 1 | --- 2 | [] 3 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=lean-delivery_ansible-role-java 2 | sonar.organization=lean-delivery 3 | 4 | # This is the name and version displayed in the SonarCloud UI. 5 | #sonar.projectName=ansible-role-java 6 | #sonar.projectVersion=1.0 7 | 8 | # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. 9 | sonar.sources=. 10 | 11 | # Encoding of the source code. Default is default system encoding 12 | #sonar.sourceEncoding=UTF-8 13 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/adoptium-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Fetch download page 3 | uri: 4 | url: "{{ adoptium_api_page }}\ 5 | assets/feature_releases/{{ java_major_version }}/ga\ 6 | ?architecture={{ (java_arch == 'x64') | ternary('x64', 'x32') }}\ 7 | &heap_size=normal\ 8 | &image_type={{ java_package }}\ 9 | &jvm_impl={{ adoptium_impl }}\ 10 | &os=linux\ 11 | &project=jdk\ 12 | &vendor=adoptium" 13 | return_content: true 14 | follow_redirects: all 15 | register: download_page 16 | 17 | - name: "Find release url" 18 | set_fact: 19 | release_url: >- 20 | {{ (download_page.content | from_json)[0].binaries | map(attribute='package.link') | list + 21 | (download_page.content | from_json)[0].binaries | map(attribute='package.checksum_link') | list }} 22 | 23 | - name: Exit if AdoptOpenJDK version is not found 24 | fail: 25 | msg: 'AdoptOpenJDK version {{ java_major_version }} not found' 26 | when: release_url[0] is not defined 27 | 28 | - name: 'Fetch artifact checksum file {{ release_url[1] }}' 29 | uri: 30 | url: '{{ release_url[1] }}' 31 | return_content: true 32 | register: artifact_checksum_file 33 | 34 | - name: 'Get artifact checksum from file {{ release_url[1] }}' 35 | set_fact: 36 | artifact_checksum: >- 37 | {{ artifact_checksum_file['content'] 38 | | regex_search('([^\s]+)') }} 39 | java_downloaded_file: >- 40 | {{ (release_url[0]|urlsplit).path|basename }} 41 | 42 | - name: 'Download artifact from {{ release_url[0] }}' 43 | get_url: 44 | url: '{{ release_url[0] }}' 45 | dest: '{{ java_download_path }}/{{ java_downloaded_file }}' 46 | checksum: 'sha256:{{ artifact_checksum }}' 47 | register: file_downloaded 48 | retries: 20 49 | delay: 5 50 | until: file_downloaded is succeeded 51 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/corretto-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check requested major version for Corretto 3 | fail: 4 | msg: Supported versions of Amazon Corretto only 8 and 11 5 | when: 6 | - java_major_version|int != 8 7 | - java_major_version|int != 11 8 | 9 | - name: Check requested architecture for Corretto 10 | fail: 11 | msg: Amazon Corretto currently supports x64 platform only 12 | when: java_arch != 'x64' 13 | 14 | - name: Find release url 15 | set_fact: 16 | release_url: >- 17 | {{ 'https://corretto.aws/downloads/latest/amazon-corretto-' 18 | ~ java_major_version ~ '-' ~ java_arch ~ '-' ~ corretto_linux_distro ~ '-' ~ java_package ~'.' 19 | ~ java_package_type 20 | }} 21 | release_checksum: >- 22 | {{ 'https://corretto.aws/downloads/latest_checksum/amazon-corretto-' 23 | ~ java_major_version ~ '-' ~ java_arch ~ '-' ~ corretto_linux_distro ~ '-' ~ java_package ~ '.' 24 | ~ java_package_type 25 | }} 26 | 27 | - name: 'Download artifact from {{ release_url }}' 28 | get_url: 29 | url: '{{ release_url }}' 30 | dest: '{{ java_download_path }}/{{ (release_url|urlsplit).path|basename }}' 31 | checksum: >- 32 | md5:{{ lookup('url', release_checksum) }} 33 | register: file_downloaded 34 | retries: 20 35 | delay: 5 36 | until: file_downloaded is succeeded 37 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/dragonwell8-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check requested major version for Alibaba Dragonwell 3 | fail: 4 | msg: "Alibaba Dragonwell corresponds to OpenJDK 8 only" 5 | when: java_major_version != 8 6 | 7 | - name: Check requested architecture for Alibaba Dragonwell 8 | fail: 9 | msg: "Alibaba Dragonwell JDK currently supports Linux/x86_64 platform only" 10 | when: java_arch != "x64" 11 | 12 | - name: Prepare GitHub API release tag 13 | set_fact: 14 | sub_uri: >- 15 | {{ (java_minor_version != '*') 16 | | ternary('tags/v' + java_major_version|string + '.' + java_minor_version|string + '-GA', 'latest') }} 17 | 18 | - name: Fetch Dragonwell version by tag 19 | uri: 20 | url: '{{ github_api_page }}/repos/alibaba/dragonwell8/releases/{{ sub_uri }}' 21 | return_content: true 22 | body_format: json 23 | status_code: [200, 404] # Not found case we are handling below 24 | register: response 25 | 26 | - name: Exit if Dragonwell version is not found 27 | fail: 28 | msg: 'Dragonwell version {{ java_major_version }}.{{ java_minor_version }} not found' 29 | when: response.status == 404 30 | 31 | - name: Get release URL 32 | set_fact: 33 | release_url: >- 34 | {{ response.json.assets 35 | | selectattr('browser_download_url', 'match', '.*_x64_linux\.tar\.gz') 36 | | map(attribute='browser_download_url') | list | first }} 37 | 38 | - name: Download artifact from {{ release_url[0] }} 39 | get_url: 40 | url: '{{ release_url }}' 41 | dest: '{{ java_download_path }}' 42 | register: file_downloaded 43 | retries: 20 44 | delay: 5 45 | until: file_downloaded is succeeded 46 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/local.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Copy artifact to destination 3 | copy: 4 | src: '{{ transport_local }}' 5 | dest: '{{ java_download_path }}' 6 | mode: 0640 7 | register: file_downloaded 8 | retries: 5 9 | delay: 2 10 | until: file_downloaded is succeeded 11 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/openjdk-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch root page {{ openjdk_root_page }}' 3 | uri: 4 | url: '{{ openjdk_root_page }}' 5 | return_content: true 6 | register: root_page 7 | 8 | - name: Find GA release version 9 | set_fact: 10 | java_major_version: >- 11 | {{ root_page['content'] 12 | | regex_findall('Ready for use:.*>JDK ([\d]+)<') 13 | | first 14 | }} 15 | 16 | - name: Out java_major_version 17 | debug: 18 | var: java_major_version 19 | 20 | - name: Fetch GA release page 21 | uri: 22 | url: '{{ openjdk_root_page }}/{{ java_major_version }}/' 23 | return_content: true 24 | register: ga_release_page 25 | 26 | - name: Find release url 27 | set_fact: 28 | release_url: >- 29 | {{ ga_release_page['content'] 30 | | regex_findall('(https://download[\.\w]+/java/GA/jdk' 31 | + java_major_version|string + '[.\d]*/[\d\w]+/' 32 | + '[.\d]+/GPL/openjdk-' 33 | + java_major_version|string + '[\d._]+linux-x64_bin[\w\d.]+)') 34 | }} 35 | 36 | - name: Exit if OpenJDK version is not General-Availability Release 37 | fail: 38 | msg: 'OpenJDK version {{ java_major_version }} not GA Release' 39 | when: release_url[1] is not defined 40 | 41 | - name: 'Get artifact checksum {{ release_url[1] }}' 42 | uri: 43 | url: '{{ release_url[1] }}' 44 | return_content: true 45 | register: artifact_checksum 46 | 47 | - name: 'Download artifact from {{ release_url[0] }}' 48 | get_url: 49 | url: '{{ release_url[0] }}' 50 | dest: '{{ java_download_path }}/{{ (release_url[0]|urlsplit).path|basename }}' 51 | checksum: 'sha256:{{ artifact_checksum.content }}' 52 | register: file_downloaded 53 | retries: 20 54 | delay: 5 55 | until: file_downloaded is succeeded 56 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/repositories.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Install {{ java_distribution }} from repositories' 3 | debug: 4 | msg: 'Install {{ java_distribution }} from repositories' 5 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/s3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download artifact from s3 3 | aws_s3: 4 | bucket: '{{ transport_s3_bucket }}' 5 | object: '{{ transport_s3_path }}' 6 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 7 | aws_access_key: '{{ transport_s3_aws_access_key }}' 8 | aws_secret_key: '{{ transport_s3_aws_secret_key }}' 9 | mode: get 10 | overwrite: different 11 | ignore_nonexistent_bucket: true 12 | retries: 5 13 | delay: 2 14 | 15 | - name: Set downloaded artifact vars 16 | set_fact: 17 | file_downloaded: 18 | dest: '{{ java_download_path }}/{{ transport_s3_path | basename }}' 19 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/sapjvm-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch root page {{ sapjvm_root_page }}' 3 | uri: 4 | url: '{{ sapjvm_root_page }}' 5 | return_content: true 6 | register: root_page 7 | 8 | - name: Find release url 9 | set_fact: 10 | release_url: >- 11 | {{ root_page['content'] 12 | | regex_findall('(additional/sapjvm-' 13 | + java_major_version|string 14 | + '[\d.]+-linux-x64.zip)') 15 | }} 16 | 17 | - name: 'Download artifact from {{ release_url[0] }}' 18 | get_url: 19 | url: '{{ sapjvm_root_page }}/{{ release_url[0] }}' 20 | dest: '{{ java_download_path }}' 21 | headers: 22 | Cookie: eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt 23 | register: file_downloaded 24 | retries: 20 25 | delay: 5 26 | until: file_downloaded is succeeded 27 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/sapmachine-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Prepare for latest minor version' 3 | block: 4 | - name: 'Fetch version page' 5 | uri: 6 | url: 'https://sap.github.io/SapMachine/latest/{{ java_major_version }}/' 7 | return_content: true 8 | status_code: [200, 404] 9 | register: version_page 10 | 11 | - name: Find release version 12 | set_fact: 13 | release_version: >- 14 | {{ version_page.content | regex_search('(1.*[.|-]\d+)') }} 15 | when: java_minor_version == '*' 16 | 17 | - name: 'Fetch artifact page' 18 | uri: 19 | url: '{{ java_sapmachine_release_page }}' 20 | status_code: [200, 404] 21 | return_content: true 22 | body_format: json 23 | register: artifact_page 24 | 25 | - name: Exit if SapMachine version is wrong 26 | fail: 27 | msg: >- 28 | {{ 'SapMachine version ' + java_major_version|string 29 | + (java_minor_version == '*') | ternary('', '.' + java_minor_version|string) 30 | + '_' + java_arch|string + ' for Linux is not supported!' }} 31 | when: artifact_page.status == 404 32 | 33 | - name: Get artifact and checksum link 34 | set_fact: 35 | release_url: "{{ artifact_page.json | json_query(\"assets[?name=='\" + java_sapmachine_release_name + \".tar.gz'].browser_download_url\") }}" 36 | checksum_link: "{{ artifact_page.json | json_query(\"assets[?name=='\" + java_sapmachine_release_name + \".sha256.txt'].browser_download_url\") }}" 37 | 38 | - name: Fetch artifact checksum file 39 | uri: 40 | url: '{{ checksum_link[0] }}' 41 | return_content: true 42 | register: artifact_checksum_file 43 | 44 | - name: Find artifact checksum 45 | set_fact: 46 | artifact_checksum: >- 47 | {{ artifact_checksum_file.content | regex_search('(^\w*)') }} 48 | 49 | - name: Download artifact 50 | get_url: 51 | url: '{{ release_url[0] }}' 52 | dest: '{{ java_download_path }}/{{ (release_url[0]|urlsplit).path|basename }}' 53 | checksum: 'sha256:{{ artifact_checksum }}' 54 | register: file_downloaded 55 | retries: 20 56 | delay: 5 57 | until: file_downloaded is succeeded 58 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/security-fetch/security-fetch-local.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Copy security policy artifact to destination 3 | copy: 4 | src: '{{ java_unlimited_policy_transport_local }}' 5 | dest: '{{ java_download_path }}' 6 | mode: 0640 7 | register: policy_file_downloaded 8 | retries: 5 9 | delay: 2 10 | until: policy_file_downloaded is succeeded 11 | 12 | - name: Downloaded artifact 13 | set_fact: 14 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 15 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/security-fetch/security-fetch-oracle_java-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download security policy artifact from Oracle OTN 3 | get_url: 4 | url: '{{ fallback_oracle_security_policy_artifacts[java_major_version|int] }}' 5 | dest: '{{ java_download_path }}' 6 | mode: 0755 7 | headers: 8 | Cookie: >- 9 | gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; 10 | oraclelicense=accept-securebackup-cookie; 11 | --no-check-certificate 12 | register: policy_file_downloaded 13 | retries: 15 14 | delay: 5 15 | until: policy_file_downloaded is succeeded 16 | 17 | - name: Downloaded security policy artifact 18 | set_fact: 19 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 20 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/security-fetch/security-fetch-s3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download security policy artifact from s3 3 | aws_s3: 4 | bucket: '{{ java_unlimited_policy_transport_s3_bucket }}' 5 | object: '{{ java_unlimited_policy_transport_s3_path }}' 6 | dest: "{{ java_download_path }}/\ 7 | {{ java_unlimited_policy_transport_s3_path|basename }}" 8 | aws_access_key: '{{ transport_s3_aws_access_key }}' 9 | aws_secret_key: '{{ transport_s3_aws_secret_key }}' 10 | mode: get 11 | overwrite: different 12 | retries: 5 13 | delay: 2 14 | 15 | - name: Downloaded security policy artifact 16 | set_fact: 17 | security_policy_java_artifact: > 18 | {{ java_download_path }}/{{ java_unlimited_policy_transport_s3_path 19 | | basename }} 20 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/security-fetch/security-fetch-web.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download security policy artifact from web 3 | get_url: 4 | url: '{{ java_unlimited_policy_url }}' 5 | dest: '{{ java_download_path }}' 6 | register: policy_file_downloaded 7 | retries: 3 8 | delay: 2 9 | until: policy_file_downloaded is succeeded 10 | 11 | - name: Downloaded security policy artifact 12 | set_fact: 13 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 14 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/web.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download artifact from web 3 | get_url: 4 | url: '{{ transport_web }}' 5 | dest: '{{ java_download_path }}' 6 | register: file_downloaded 7 | retries: 5 8 | delay: 2 9 | until: file_downloaded is succeeded 10 | -------------------------------------------------------------------------------- /tasks/Linux/fetch/zulu-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Fetch download page 3 | uri: 4 | url: "{{ zulu_api_page }}/zulu/packages/\ 5 | ?java_version={{ java_major_version }}\ 6 | &os=linux\ 7 | &arch={{ (java_arch == 'x64') | ternary('x64', 'x86') }}\ 8 | &java_package_type={{ java_package }}\ 9 | &latest=true\ 10 | &archive_type=tar.gz\ 11 | &javafx_bundled=false\ 12 | &crac_supported=false" 13 | return_content: true 14 | follow_redirects: all 15 | register: root_page 16 | 17 | - name: Find release url 18 | set_fact: 19 | release_url: >- 20 | {{ root_page.json[0].download_url }} 21 | 22 | - name: Exit if Zulu version is not found 23 | fail: 24 | msg: 'Zulu version {{ java_major_version }} not found' 25 | when: release_url is not defined 26 | 27 | - name: 'Download artifact from {{ release_url }}' 28 | get_url: 29 | url: '{{ release_url }}' 30 | dest: '{{ java_download_path }}/{{ (release_url|urlsplit).path|basename }}' 31 | register: file_downloaded 32 | retries: 20 33 | delay: 5 34 | until: file_downloaded is succeeded 35 | -------------------------------------------------------------------------------- /tasks/Linux/finalize_paths.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Become block 3 | block: 4 | - name: Find java_folder 5 | find: 6 | paths: '{{ java_path }}' 7 | recurse: false 8 | file_type: directory 9 | patterns: '{{ java_folder }}' 10 | use_regex: true 11 | register: java_dir 12 | 13 | - name: Set actual java directory 14 | set_fact: 15 | java_folder: >- 16 | {{ java_dir.files | map(attribute='path') | list | last | basename }} 17 | 18 | - name: Put java profile 19 | template: 20 | src: java.sh.j2 21 | dest: /etc/profile.d/java.sh 22 | owner: root 23 | group: root 24 | mode: 0555 25 | 26 | - name: Check for java binaries existence 27 | stat: 28 | path: '{{ java_path }}/{{ java_folder }}/bin/{{ binary }}' 29 | register: java_binary_collection 30 | loop: 31 | - java 32 | - javac 33 | - jar 34 | - keytool 35 | loop_control: 36 | loop_var: binary 37 | 38 | - name: Update alternatives 39 | alternatives: 40 | name: '{{ java_item.binary }}' 41 | path: '{{ java_path }}/{{ java_folder }}/bin/{{ java_item.binary }}' 42 | link: '/usr/bin/{{ java_item.binary }}' 43 | priority: '{{ java_alternative_priority }}' 44 | when: java_item.stat.exists | bool 45 | loop: '{{ java_binary_collection.results }}' 46 | loop_control: 47 | loop_var: java_item 48 | become: true 49 | -------------------------------------------------------------------------------- /tasks/Linux/install/Amazon_2_corretto_8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Amazon Corretto 8 specific 3 | # Installing on Amazon Linux 2 from repo 4 | # https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/amazon-linux-install.html 5 | # As we cannot use amazon-linux-extras with Ansible, we're adding Amazon corretto8 repo manually 6 | - name: Add Amazon yum repository for corretto8 7 | yum_repository: 8 | name: amazon-corretto8 9 | description: Amazon Extras repo for corretto8 10 | mirrorlist: http://amazonlinux.$awsregion.$awsdomain/$releasever/extras/corretto8/latest/$basearch/mirror.list 11 | priority: 10 12 | 13 | # Install in any case via Yum 14 | - name: 'Install Corretto {{ java_major_version }}' 15 | include_tasks: RedHat.yml 16 | -------------------------------------------------------------------------------- /tasks/Linux/install/Debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install java packages 3 | apt: 4 | deb: '{{ java_artifact | default(omit, true) }}' 5 | name: '{{ (jdk_package if transport == "repositories") | default(omit, true) }}' 6 | state: present 7 | update_cache: true 8 | cache_valid_time: 3600 9 | register: package_install 10 | until: package_install is succeeded 11 | -------------------------------------------------------------------------------- /tasks/Linux/install/Debian_adoptium.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add apt-key for AdoptOpenJDK 3 | apt_key: 4 | url: https://adoptium.jfrog.io/adoptium/api/gpg/key/public 5 | state: present 6 | register: package_install 7 | until: package_install is succeeded 8 | 9 | - name: Add repository for AdoptOpenJDK 10 | apt_repository: 11 | repo: 'deb https://adoptium.jfrog.io/adoptium/deb/ bionic main' 12 | filename: adoptium 13 | state: present 14 | codename: trusty 15 | update_cache: true 16 | 17 | - name: Install java packages 18 | apt: 19 | deb: '{{ java_artifact | default(omit, true) }}' 20 | name: '{{ (jdk_package if transport == "repositories") | default(omit, true) }}' 21 | state: present 22 | update_cache: true 23 | cache_valid_time: 3600 24 | register: package_install 25 | until: package_install is succeeded 26 | -------------------------------------------------------------------------------- /tasks/Linux/install/RedHat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install java packages 3 | yum: 4 | name: '{{ (transport == "repositories") | ternary(jdk_package, java_artifact) }}' 5 | state: present 6 | register: package_install 7 | retries: 20 8 | delay: 5 9 | until: package_install is succeeded 10 | -------------------------------------------------------------------------------- /tasks/Linux/install/RedHat_adoptium.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Add repository for AdoptOpenJDK 3 | yum_repository: 4 | name: AdoptOpenJDK 5 | description: AdoptOpenJDK 6 | baseurl: "http://adoptium.jfrog.io/adoptium/rpm/centos/\ 7 | {{ rh_dist_repo_version }}/x86_64" 8 | enabled: true 9 | gpgcheck: true 10 | gpgkey: https://adoptium.jfrog.io/adoptium/api/gpg/key/public 11 | 12 | - name: Install java packages 13 | yum: 14 | name: '{{ (transport == "repositories") | ternary(jdk_package, java_artifact) }}' 15 | state: present 16 | register: package_install 17 | until: package_install is succeeded 18 | -------------------------------------------------------------------------------- /tasks/Linux/install/Suse.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: OpenJDK Repository 3 | community.general.zypper_repository: 4 | name: openjdk 5 | repo: "{{ openjdk_zypper_repo_url }}" 6 | state: present 7 | 8 | - name: Install java packages 9 | zypper: 10 | name: '{{ (transport == "repositories") | ternary(jdk_package, java_artifact) }}' 11 | state: present 12 | register: package_install 13 | retries: 20 14 | delay: 5 15 | until: package_install is succeeded 16 | -------------------------------------------------------------------------------- /tasks/Linux/install/sapjvm_tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check that the java_folder exists 3 | stat: 4 | path: '{{ java_path }}/{{ java_folder }}/bin' 5 | register: java_folder_bin 6 | 7 | - name: 'Install java {{ java_full_version }} from tarball' 8 | block: 9 | - name: Mkdir for java installation 10 | file: 11 | path: '{{ java_path }}/{{ java_folder }}' 12 | mode: 0755 13 | state: directory 14 | 15 | - name: Create temporary directory 16 | tempfile: 17 | state: directory 18 | register: temp_dir 19 | 20 | - name: Unarchive to temporary directory 21 | unarchive: 22 | src: '{{ java_artifact }}' 23 | dest: '{{ temp_dir.path }}' 24 | remote_src: true 25 | list_files: true 26 | register: unarchived_folder 27 | 28 | - name: Sync from temporary directory 29 | synchronize: 30 | src: '{{ temp_dir.path }}/{{ unarchived_folder.files[0].split("/")[0] }}/' 31 | dest: '{{ java_path }}/{{ java_folder }}' 32 | recursive: true 33 | archive: false 34 | checksum: true 35 | delegate_to: '{{ inventory_hostname }}' 36 | 37 | - name: Set permissions for java installation 38 | file: 39 | path: '{{ java_path }}/{{ java_folder }}' 40 | recurse: true 41 | owner: root 42 | group: root 43 | mode: 0755 44 | when: not java_folder_bin.stat.exists 45 | -------------------------------------------------------------------------------- /tasks/Linux/install/tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Mkdir for java installation 4 | file: 5 | path: '{{ java_path }}/{{ java_folder }}' 6 | state: directory 7 | owner: root 8 | group: root 9 | mode: 0755 10 | 11 | - name: 'Install java {{ java_full_version }}' 12 | unarchive: 13 | src: '{{ java_artifact }}' 14 | dest: '{{ java_path }}/{{ java_folder }}' 15 | remote_src: true 16 | owner: root 17 | group: root 18 | mode: 0755 19 | extra_opts: [--strip-components=1] 20 | creates: '{{ java_path }}/{{ java_folder }}/bin/' 21 | -------------------------------------------------------------------------------- /tasks/Linux/security_policy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch oracle security policy with {{ java_unlimited_policy_transport }} transport' 3 | include_tasks: '{{ transport_driver }}' 4 | with_first_found: 5 | - 'fetch/security-fetch/security-fetch-{{ java_unlimited_policy_transport }}.yml' 6 | - 'fetch/security-fetch/security-fetch-{{ java_distribution }}-{{ java_unlimited_policy_transport }}.yml' 7 | - 'fetch/unknown-transport.yml' 8 | loop_control: 9 | loop_var: transport_driver 10 | when: 11 | - java_unlimited_policy_enabled 12 | - java_distribution == 'oracle_java' 13 | - java_full_version is version('8.151', '<') 14 | 15 | - name: Become block 16 | block: 17 | - name: Unzip patch file 18 | unarchive: 19 | src: '{{ security_policy_java_artifact }}' 20 | dest: '{{ security_patch_path }}' 21 | remote_src: true 22 | owner: root 23 | group: root 24 | mode: 0755 25 | 26 | - name: Apply patch file 27 | copy: 28 | src: "{{ java_path }}/{{ java_folder }}/jre/lib/security/\ 29 | {{ security_patch_folders[java_major_version|int] }}/{{ policy_item }}" 30 | dest: '{{ security_patch_path }}/' 31 | remote_src: true 32 | directory_mode: true 33 | owner: root 34 | group: root 35 | mode: 0644 36 | loop: 37 | - local_policy.jar 38 | - US_export_policy.jar 39 | - README.txt 40 | loop_control: 41 | loop_var: policy_item 42 | when: java_full_version is version('8.151', '<') 43 | become: true 44 | 45 | - name: Apply setting 46 | replace: 47 | path: '{{ security_patch_path }}/java.security' 48 | regexp: '#crypto.policy=unlimited' 49 | replace: 'crypto.policy=unlimited' 50 | when: java_major_version | int < 9 51 | become: true 52 | -------------------------------------------------------------------------------- /tasks/Linux/system.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform install from artifacts 3 | block: 4 | - name: Install requirements 5 | package: 6 | name: >- 7 | {{ java_package_requirements 8 | | union(java_extra_package_requirements) | unique }} 9 | state: present 10 | register: installed_packages 11 | retries: 10 12 | delay: 5 13 | until: installed_packages is succeeded 14 | when: transport != 'repositories' 15 | 16 | - name: 'Perform {{ java_binary_type }} install' 17 | ansible.builtin.include_tasks: 18 | file: "{{ item }}" 19 | with_first_found: 20 | - files: 21 | - '{{ java_distribution }}_{{ java_binary_type }}.yml' 22 | - '{{ java_binary_type }}.yml' 23 | - '{{ ansible_os_family }}.yml' 24 | paths: 25 | - tasks/Linux/install 26 | become: true 27 | -------------------------------------------------------------------------------- /tasks/Linux/system_repositories.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Perform install from repositories 3 | block: 4 | - name: 'Perform repo install' 5 | include_tasks: '{{ install_task }}' 6 | with_first_found: 7 | - 'install/{{ ansible_distribution }}_{{ ansible_distribution_version }}_{{ java_distribution }}_{{ java_major_version }}.yml' 8 | - 'install/{{ ansible_os_family }}_{{ java_distribution }}.yml' 9 | - 'install/{{ ansible_os_family }}.yml' 10 | loop_control: 11 | loop_var: install_task 12 | become: true 13 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/adoptium-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Fetch download page 3 | win_uri: 4 | url: "{{ adoptium_api_page }}\ 5 | assets/feature_releases/{{ java_major_version }}/ga\ 6 | ?architecture={{ (java_arch == 'x64') | ternary('x64', 'x32') }}\ 7 | &heap_size=normal\ 8 | &image_type={{ java_package }}\ 9 | &jvm_impl={{ adoptium_impl }}\ 10 | &os=windows\ 11 | &project=jdk\ 12 | &vendor=adoptium" 13 | return_content: true 14 | follow_redirects: all 15 | register: download_page 16 | 17 | - name: Find release url 18 | set_fact: 19 | release_url: >- 20 | {{ (download_page.content | from_json).binaries | map(attribute='package.binary_link') | list + 21 | (download_page.content | from_json).binaries | map(attribute='package.checksum_link') | list }} 22 | 23 | - name: Exit if AdobtOpenJDK version is not found 24 | fail: 25 | msg: 'AdoptOpenJDK version {{ java_major_version }} not found' 26 | when: release_url[0] is not defined 27 | 28 | - name: 'Fetch artifact checksum file {{ release_url[1] }}' 29 | win_uri: 30 | url: '{{ release_url[1] }}' 31 | return_content: true 32 | register: artifact_checksum_file 33 | 34 | - name: 'Get artifact checksum from file {{ release_url[1] }}' 35 | set_fact: 36 | artifact_checksum: 37 | content: >- 38 | {{ artifact_checksum_file['content'] | 39 | regex_search('([^\s]+)') 40 | }} 41 | 42 | - name: 'Download artifact from {{ release_url[0] }}' 43 | win_get_url: 44 | url: '{{ release_url[0] }}' 45 | dest: '{{ java_download_path }}' 46 | force: true 47 | checksum: '{{ artifact_checksum.content }}' 48 | checksum_algorithm: sha256 49 | register: file_downloaded 50 | retries: 20 51 | delay: 5 52 | until: file_downloaded is succeeded 53 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/chocolatey.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Set java_binary_type = chocolatey 3 | set_fact: 4 | java_binary_type: chocolatey 5 | 6 | - name: Chocolatey will download artifact itself 7 | debug: 8 | msg: 'Chocolatey will download artifact itself' 9 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/corretto-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check requested major version for Corretto 3 | fail: 4 | msg: Supported versions of Amazon Corretto only 8 and 11 5 | when: 6 | - java_major_version|int != 8 7 | - java_major_version|int != 11 8 | 9 | - name: Check requested architecture for Corretto 10 | fail: 11 | msg: Amazon Corretto currently supports x64 platform only 12 | when: java_arch != 'x64' 13 | 14 | - name: Find release url 15 | set_fact: 16 | release_url: >- 17 | {{ 'https://corretto.aws/downloads/latest/amazon-corretto-' 18 | ~ java_major_version ~ '-' ~ java_arch ~ '-windows-' ~ java_package ~'.' 19 | ~ java_package_type 20 | }} 21 | release_checksum: >- 22 | {{ 'https://corretto.aws/downloads/latest_checksum/amazon-corretto-' 23 | ~ java_major_version ~ '-' ~ java_arch ~ '-windows-' ~ java_package ~ '.' 24 | ~ java_package_type 25 | }} 26 | 27 | - name: 'Download artifact from {{ release_url }}' 28 | win_get_url: 29 | url: '{{ release_url }}' 30 | dest: '{{ java_download_path }}\{{ (release_url|urlsplit).path|basename }}' 31 | checksum: >- 32 | {{ lookup('url', release_checksum) }} 33 | checksum_algorithm: md5 34 | register: file_downloaded 35 | retries: 20 36 | delay: 5 37 | until: file_downloaded is succeeded 38 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/local.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Copy artifact to destination 3 | win_copy: 4 | src: '{{ transport_local }}' 5 | dest: '{{ java_download_path }}\' 6 | register: file_downloaded 7 | retries: 5 8 | delay: 2 9 | until: file_downloaded is succeeded 10 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/openjdk-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch root page {{ openjdk_root_page }}' 3 | win_uri: 4 | url: '{{ openjdk_root_page }}' 5 | return_content: true 6 | register: root_page 7 | 8 | - name: Find GA release version 9 | set_fact: 10 | java_major_version: >- 11 | {{ root_page['content'] 12 | | regex_findall('Ready for use:.*>JDK ([\d]+)<') 13 | | first 14 | }} 15 | 16 | - name: Out java_major_version 17 | debug: 18 | var: java_major_version 19 | 20 | - name: Fetch GA release page 21 | win_uri: 22 | url: '{{ openjdk_root_page }}/{{ java_major_version }}/' 23 | return_content: true 24 | follow_redirects: all 25 | register: ga_release_page 26 | 27 | - name: Find release url 28 | set_fact: 29 | release_url: >- 30 | {{ ga_release_page['content'] | 31 | regex_findall('(https://download[\.\w]+/java/GA/jdk' + 32 | java_major_version|string + 33 | '[.\d]*/[\d\w]+/' + 34 | '[.\d]+/GPL/openjdk-' + 35 | java_major_version|string + 36 | '[\d._]+windows-x64_bin[\w\d.]+)') 37 | }} 38 | 39 | - name: Exit if OpenJDK version is not General-Availability Release 40 | fail: 41 | msg: 'OpenJDK version {{ java_major_version }} not GA Release, or maybe something wrong with java.net' 42 | when: release_url[1] is not defined 43 | 44 | - name: 'Get artifact checksum {{ release_url[1] }}' 45 | win_uri: 46 | url: '{{ release_url[1] }}' 47 | return_content: true 48 | register: artifact_checksum 49 | 50 | - name: 'Download artifact from {{ release_url[0] }}' 51 | win_get_url: 52 | url: '{{ release_url[0] }}' 53 | dest: '{{ java_download_path }}\{{ (release_url[0]|urlsplit).path|basename }}' 54 | force: true 55 | checksum: '{{ artifact_checksum.content }}' 56 | checksum_algorithm: sha256 57 | register: file_downloaded 58 | retries: 20 59 | delay: 5 60 | until: file_downloaded is succeeded 61 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/sapjvm-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch root page {{ sapjvm_root_page }}' 3 | win_uri: 4 | url: '{{ sapjvm_root_page }}' 5 | return_content: true 6 | register: root_page 7 | 8 | - name: Find release url 9 | set_fact: 10 | release_url: >- 11 | {{ root_page['content'] 12 | | regex_findall('(additional/sapjvm-' 13 | + java_major_version|string 14 | + '[\d.]+-windows-x64.zip)') 15 | }} 16 | 17 | - name: Download sapjvm artifact 18 | win_get_url: 19 | url: '{{ sapjvm_root_page }}/{{ release_url[0] }}' 20 | headers: 21 | Cookie: eula_3_1_agreed=tools.hana.ondemand.com/developer-license-3_1.txt 22 | dest: '{{ java_download_path }}' 23 | force: false 24 | register: file_downloaded 25 | retries: 20 26 | delay: 5 27 | until: file_downloaded is succeeded 28 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/sapmachine-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Prepare for latest minor version' 3 | block: 4 | - name: 'Fetch version page' 5 | win_uri: 6 | url: 'https://sap.github.io/SapMachine/latest/{{ java_major_version }}/' 7 | return_content: true 8 | status_code: [200, 404] 9 | register: version_page 10 | 11 | - name: Find release version 12 | set_fact: 13 | release_version: >- 14 | {{ version_page.content | regex_search('(1.*[.|-]\d)') }} 15 | when: java_minor_version == '*' 16 | 17 | - name: 'Fetch artifact page' 18 | win_uri: 19 | url: '{{ java_sapmachine_release_page }}' 20 | status_code: [200, 404] 21 | return_content: true 22 | headers: {"user-agent": "Mozilla/5.0"} 23 | register: artifact_page 24 | 25 | - name: Exit if SapMachine version is wrong 26 | fail: 27 | msg: >- 28 | {{ 'SapMachine version ' + java_major_version|string 29 | + (java_minor_version == '*') | ternary('', '.' + java_minor_version|string) 30 | + '_' + java_arch|string + ' for Windows is not supported!' }} 31 | when: artifact_page.status == 404 32 | 33 | - name: Get artifact link 34 | set_fact: 35 | artifact_link: "{{ artifact_page.json | json_query(\"assets[?name=='\" + java_sapmachine_release_name + \".zip'].browser_download_url\") }}" 36 | 37 | - name: Get checksum link 38 | set_fact: 39 | checksum_link: "{{ artifact_page.json | json_query(\"assets[?name=='\" + java_sapmachine_release_name + \".sha256.txt'].browser_download_url\") }}" 40 | 41 | - name: 'Fetch artifact checksum file' 42 | win_uri: 43 | url: '{{ checksum_link[0] }}' 44 | return_content: true 45 | register: artifact_checksum_file 46 | 47 | - name: Find artifact checksum 48 | set_fact: 49 | artifact_checksum: >- 50 | {{ artifact_checksum_file.content | regex_search('(^\w*)') }} 51 | 52 | - name: 'Download artifact' 53 | win_get_url: 54 | url: '{{ artifact_link[0] }}' 55 | dest: '{{ java_download_path }}' 56 | checksum: '{{ artifact_checksum }}' 57 | checksum_algorithm: sha256 58 | force: true 59 | register: file_downloaded 60 | retries: 20 61 | delay: 5 62 | until: file_downloaded is succeeded 63 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/security-fetch/security-winfetch-local.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Copy security policy artifact to destination 3 | win_copy: 4 | src: '{{ java_unlimited_policy_transport_local }}' 5 | dest: '{{ java_download_path }}' 6 | register: policy_file_downloaded 7 | retries: 5 8 | delay: 2 9 | until: policy_file_downloaded is succeeded 10 | 11 | - name: Downloaded artifact 12 | set_fact: 13 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 14 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/security-fetch/security-winfetch-oracle_java-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download security policy artifact from Oracle OTN 3 | win_get_url: 4 | url: '{{ fallback_oracle_security_policy_artifacts[java_major_version|int] }}' 5 | dest: >- 6 | {{ java_download_path }}\{{ (fallback_oracle_security_policy_artifacts[java_major_version|int] 7 | | urlsplit('path')).split('/')[-1] }} 8 | headers: 9 | Cookie: 'oraclelicense=accept-securebackup-cookie' 10 | force: false 11 | register: policy_file_downloaded 12 | retries: 15 13 | delay: 5 14 | until: policy_file_downloaded is succeeded 15 | 16 | - name: Downloaded security policy artifact 17 | set_fact: 18 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 19 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/security-fetch/security-winfetch-web.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download security policy artifact from web 3 | win_get_url: 4 | url: '{{ java_unlimited_policy_url }}' 5 | dest: >- 6 | {{ java_download_path }}\{{ (java_unlimited_policy_url 7 | | urlsplit('path')).split('/')[-1] }} 8 | force: false 9 | register: policy_file_downloaded 10 | retries: 3 11 | delay: 2 12 | until: policy_file_downloaded is succeeded 13 | 14 | - name: Downloaded security policy artifact 15 | set_fact: 16 | security_policy_java_artifact: '{{ policy_file_downloaded.dest }}' 17 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/web.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Download artifact from web 3 | win_get_url: 4 | url: '{{ transport_web }}' 5 | dest: >- 6 | {{ java_download_path }}\{{ (transport_web | urlsplit('path')).split('/')[-1] }} 7 | force: false 8 | register: file_downloaded 9 | retries: 5 10 | delay: 2 11 | until: file_downloaded is succeeded 12 | -------------------------------------------------------------------------------- /tasks/Win32NT/fetch/zulu-fallback.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Fetch download page 3 | win_uri: 4 | url: "{{ zulu_api_page }}\ 5 | /bundles/latest/\ 6 | ?version={{ java_major_version }}\ 7 | &ext=zip&os=win&\ 8 | arch={{ (java_arch == 'x64') | ternary('x64', 'x86') }}" 9 | return_content: true 10 | follow_redirects: all 11 | register: root_page 12 | 13 | - name: Set artifact checksum and url 14 | set_fact: 15 | artifact_url: >- 16 | {{ (root_page.content | from_json).url }} 17 | artifact_checksum: >- 18 | {{ (root_page.content | from_json).md5_hash }} 19 | 20 | - name: 'Download artifact from {{ artifact_url }}' 21 | win_get_url: 22 | url: '{{ artifact_url }}' 23 | dest: '{{ java_download_path }}' 24 | force: true 25 | checksum: '{{ artifact_checksum }}' 26 | checksum_algorithm: md5 27 | register: file_downloaded 28 | retries: 20 29 | delay: 5 30 | until: file_downloaded is succeeded 31 | -------------------------------------------------------------------------------- /tasks/Win32NT/finalize_paths.yml: -------------------------------------------------------------------------------- 1 | --- 2 | 3 | - name: Find java_folder 4 | win_find: 5 | paths: '{{ java_path }}' 6 | recurse: false 7 | file_type: directory 8 | patterns: '{{ java_folder }}' 9 | use_regex: true 10 | register: java_dir 11 | 12 | - name: Set actual java directory 13 | set_fact: 14 | java_act_path: >- 15 | {{ java_dir.files | map(attribute='path') | list | last }} 16 | 17 | - name: Set java environment variable 18 | win_environment: 19 | name: JAVA_HOME 20 | state: present 21 | value: '{{ java_act_path }}' 22 | level: machine 23 | 24 | - name: Ensure that 'JAVA_HOME\bin' present in 'Path' variable 25 | win_path: 26 | elements: '{{ java_act_path }}\bin' 27 | state: present 28 | scope: machine 29 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/adoptium_tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check that the java_folder exists 3 | win_stat: 4 | path: '{{ java_path }}\{{ java_folder }}/bin' 5 | register: java_folder_bin 6 | 7 | - name: Install java from tarball 8 | block: 9 | - name: Mkdir for java installation 10 | win_file: 11 | path: '{{ java_path }}\{{ java_folder }}' 12 | state: directory 13 | 14 | - name: Create temporary directory 15 | win_tempfile: 16 | state: directory 17 | register: temp_dir_path 18 | 19 | - name: Unarchive to temporary directory 20 | win_unzip: 21 | src: '{{ java_artifact }}' 22 | dest: '{{ temp_dir_path }}' 23 | 24 | - name: Find java_folder in temp 25 | win_find: 26 | paths: '{{ temp_dir_path }}' 27 | recurse: false 28 | file_type: directory 29 | register: java_temp_folder 30 | 31 | - name: Copy from temporary directory 32 | win_copy: 33 | src: '{{ java_temp_folder.files | map(attribute="path") | list | last }}\' 34 | dest: '{{ java_path }}\{{ java_folder }}' 35 | remote_src: true 36 | when: not java_folder_bin.stat.exists 37 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/chocolatey.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check choco 3 | win_chocolatey: 4 | name: chocolatey 5 | state: present 6 | 7 | - name: 'Install {{ choco_java_package }} from chocolatey' 8 | win_chocolatey: 9 | name: '{{ choco_java_package }}' 10 | register: choco_install 11 | retries: 15 12 | delay: 5 13 | until: choco_install is succeeded 14 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/corretto_package.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install java packages 3 | win_package: 4 | path: '{{ java_artifact }}' 5 | product_id: '{{ java_product_id }}' 6 | state: present 7 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/package.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Install java packages 3 | win_package: 4 | path: '{{ java_artifact }}' 5 | product_id: '{{ java_product_id }}' 6 | state: present 7 | arguments: '/s INSTALLDIR="{{ java_path }}\{{ java_folder }}"' 8 | creates_path: '{{ java_path }}\{{ java_folder }}' 9 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/sapjvm_tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check that the java_folder exists 3 | win_stat: 4 | path: '{{ java_path }}\{{ java_folder }}/bin' 5 | register: java_folder_bin 6 | 7 | - name: Install java from tarball 8 | block: 9 | - name: Mkdir for java installation 10 | win_file: 11 | path: '{{ java_path }}\{{ java_folder }}' 12 | state: directory 13 | 14 | - name: Create temporary directory 15 | win_tempfile: 16 | state: directory 17 | register: temp_dir_path 18 | 19 | - name: Unarchive to temporary directory 20 | win_unzip: 21 | src: '{{ java_artifact }}' 22 | dest: '{{ temp_dir_path }}' 23 | 24 | - name: Find java_folder in temp 25 | win_find: 26 | paths: '{{ temp_dir_path }}' 27 | recurse: false 28 | file_type: directory 29 | register: java_temp_folder 30 | 31 | - name: Copy from temporary directory 32 | win_copy: 33 | src: '{{ java_temp_folder.files | map(attribute="path") | list | last }}\' 34 | dest: '{{ java_path }}\{{ java_folder }}' 35 | remote_src: true 36 | 37 | - name: Check choco 38 | win_chocolatey: 39 | name: chocolatey 40 | state: present 41 | 42 | # https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/76137f42711e1014839a8273b0e91070.html 43 | - name: 'Install vcredist package prior to using SAP JVM' 44 | win_chocolatey: 45 | name: vcredist2013 46 | register: choco_install 47 | retries: 15 48 | delay: 5 49 | until: choco_install is succeeded 50 | when: not java_folder_bin.stat.exists 51 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/sapmachine_tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check that the java_folder exists 3 | win_stat: 4 | path: '{{ java_path }}\{{ java_folder }}/bin' 5 | register: java_folder_bin 6 | 7 | - name: Install java from tarball 8 | block: 9 | - name: Mkdir for java installation 10 | win_file: 11 | path: '{{ java_path }}\{{ java_folder }}' 12 | state: directory 13 | 14 | - name: Create temporary directory 15 | win_tempfile: 16 | state: directory 17 | register: temp_dir_path 18 | 19 | - name: Unarchive to temporary directory 20 | win_unzip: 21 | src: '{{ java_artifact }}' 22 | dest: '{{ temp_dir_path }}' 23 | 24 | - name: Find java_folder in temp 25 | win_find: 26 | paths: '{{ temp_dir_path }}' 27 | recurse: false 28 | file_type: directory 29 | register: java_temp_folder 30 | 31 | - name: Copy from temporary directory 32 | win_copy: 33 | src: '{{ java_temp_folder.files | map(attribute="path") | list | last }}\' 34 | dest: '{{ java_path }}\{{ java_folder }}' 35 | remote_src: true 36 | when: not java_folder_bin.stat.exists 37 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Mkdir for java installation 3 | win_file: 4 | path: '{{ java_path }}' 5 | state: directory 6 | 7 | - name: 'Install java {{ java_full_version }}' 8 | win_unzip: 9 | src: '{{ java_artifact }}' 10 | dest: '{{ java_path }}' 11 | creates: '{{ java_path }}\{{ java_folder }}' 12 | -------------------------------------------------------------------------------- /tasks/Win32NT/install/zulu_tarball.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Check that the java_folder exists 3 | win_stat: 4 | path: '{{ java_path }}\{{ java_folder }}\bin' 5 | register: java_folder_bin 6 | 7 | - name: Install java from tarball 8 | block: 9 | - name: Mkdir for java installation 10 | win_file: 11 | path: '{{ java_path }}\{{ java_folder }}' 12 | state: directory 13 | 14 | - name: Create temporary directory 15 | win_tempfile: 16 | state: directory 17 | register: temp_dir_path 18 | 19 | - name: Unarchive to temporary directory 20 | win_unzip: 21 | src: '{{ java_artifact }}' 22 | dest: '{{ temp_dir_path }}' 23 | 24 | - name: Find java_folder in temp 25 | win_find: 26 | paths: '{{ temp_dir_path }}' 27 | recurse: false 28 | file_type: directory 29 | register: java_temp_folder 30 | 31 | - name: Copy from temporary directory 32 | win_copy: 33 | src: '{{ java_temp_folder.files | map(attribute="path") | list | last }}\' 34 | dest: '{{ java_path }}\{{ java_folder }}' 35 | remote_src: true 36 | when: not java_folder_bin.stat.exists | bool 37 | -------------------------------------------------------------------------------- /tasks/Win32NT/security_policy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Fetch oracle security policy with {{ java_unlimited_policy_transport }} transport' 3 | include_tasks: '{{ transport_driver }}' 4 | with_first_found: 5 | - 'fetch/security-fetch/security-winfetch-{{ java_unlimited_policy_transport }}.yml' 6 | - 'fetch/security-fetch/security-winfetch-{{ java_distribution }}-{{ java_unlimited_policy_transport }}.yml' 7 | - 'fetch/unknown-transport.yml' 8 | loop_control: 9 | loop_var: transport_driver 10 | when: 11 | - java_unlimited_policy_enabled 12 | - java_full_version is version('8.151', '<') 13 | 14 | - name: Block 15 | block: 16 | - name: Unzip patch file 17 | win_unzip: 18 | src: '{{ security_policy_java_artifact }}' 19 | dest: '{{ java_act_path }}\jre\lib\security\' 20 | creates: '{{ java_act_path }}\jre\lib\security\{{ security_patch_folders[java_major_version|int] }}' 21 | 22 | - name: Apply patch file 23 | win_copy: 24 | src: '{{ java_act_path }}\jre\lib\security\{{ security_patch_folders[java_major_version|int] }}\{{ policy_item }}' 25 | dest: '{{ java_act_path }}\jre\lib\security\' 26 | remote_src: true 27 | loop: 28 | - local_policy.jar 29 | - US_export_policy.jar 30 | loop_control: 31 | loop_var: policy_item 32 | when: java_full_version is version('8.151', '<') 33 | 34 | - name: 'Apply setting' 35 | win_lineinfile: 36 | path: '{{ java_act_path }}\jre\lib\security\java.security' 37 | line: 'crypto.policy=unlimited' 38 | when: java_major_version | int < 9 39 | -------------------------------------------------------------------------------- /tasks/Win32NT/system.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Perform {{ java_binary_type }} install' 3 | include_tasks: '{{ install_task }}' 4 | with_first_found: 5 | - 'install/{{ java_distribution }}_{{ java_binary_type }}.yml' 6 | - 'install/{{ java_binary_type }}.yml' 7 | loop_control: 8 | loop_var: install_task 9 | -------------------------------------------------------------------------------- /tasks/Win32NT/system_chocolatey.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: 'Perform {{ java_binary_type }} install' 3 | include_tasks: '{{ install_task }}' 4 | with_first_found: 5 | - 'install/{{ java_distribution }}_{{ java_binary_type }}.yml' 6 | - 'install/{{ java_binary_type }}.yml' 7 | loop_control: 8 | loop_var: install_task 9 | -------------------------------------------------------------------------------- /tasks/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Load a system variables file based on distribution or OS family 3 | include_vars: '{{ distribution }}' 4 | with_first_found: 5 | - '{{ ansible_os_family }}.yml' 6 | - default.yml 7 | loop_control: 8 | loop_var: distribution 9 | 10 | - name: Set base variables based on java distribution 11 | include_vars: 'java_distro_configs/{{ java_distribution }}_vars.yml' 12 | 13 | - name: 'Fetch oracle artifact with {{ transport }} transport' 14 | include_tasks: '{{ transport_driver }}' 15 | with_first_found: 16 | - '{{ ansible_system }}/fetch/{{ java_distribution }}-{{ transport }}.yml' 17 | - '{{ ansible_system }}/fetch/{{ transport }}.yml' 18 | - unknown-transport.yml 19 | loop_control: 20 | loop_var: transport_driver 21 | 22 | - name: Choose platform based task 23 | include_tasks: '{{ java_os_platform }}' 24 | with_first_found: 25 | - '{{ ansible_system }}/system_{{ transport }}.yml' 26 | - '{{ ansible_system }}/system_{{ java_binary_type }}.yml' 27 | - '{{ ansible_system }}/system.yml' 28 | - not-supported.yml 29 | loop_control: 30 | loop_var: java_os_platform 31 | 32 | - name: Finalize binary paths 33 | include_tasks: '{{ ansible_system }}/finalize_paths.yml' 34 | when: java_setup_path | bool 35 | 36 | - name: Apply security policy patch 37 | include_tasks: '{{ java_os_platform }}' 38 | with_first_found: 39 | - '{{ ansible_system }}/security_policy.yml' 40 | - not-supported.yml 41 | loop_control: 42 | loop_var: java_os_platform 43 | when: 44 | - java_setup_path 45 | - java_unlimited_policy_enabled 46 | - java_distribution == 'oracle_java' 47 | -------------------------------------------------------------------------------- /tasks/not-supported.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Warn on unsupported platform 3 | fail: 4 | msg: | 5 | This role does not support '{{ ansible_os_family }}' platform. 6 | Please contact support@lean-delivery.com 7 | -------------------------------------------------------------------------------- /tasks/unknown-transport.yml: -------------------------------------------------------------------------------- 1 | --- 2 | - name: Warn on unsupported transport 3 | debug: 4 | msg: | 5 | This role does not support '{{ transport }}' transport. 6 | Please contact support@lean-delivery.com 7 | -------------------------------------------------------------------------------- /templates/java.sh.j2: -------------------------------------------------------------------------------- 1 | # /etc/profile.d/java.sh - set java stuff 2 | export JAVA_HOME={{ java_path }}/{{ java_folder }} 3 | export PATH=$JAVA_HOME/bin:$PATH 4 | -------------------------------------------------------------------------------- /vars/Debian.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_package_requirements: 3 | - unzip 4 | - rsync 5 | 6 | java_package_type: >- 7 | {{ java_tarball_install | ternary('tar.gz', 'deb') }} 8 | 9 | jdk_package_openjdk: >- 10 | {{ 'openjdk-' + java_major_version|string + '-' + java_package }} 11 | 12 | java_default_path: /usr/lib/jvm 13 | 14 | java_default_corretto_path: /usr/lib/jvm 15 | java_corretto_folder: '{{ java_folder_ext_transport }}' 16 | 17 | java_folder_repo_transport: >- 18 | {{ 'java-' + java_major_version|string + '-openjdk-*' 19 | | default(omit) }} 20 | -------------------------------------------------------------------------------- /vars/RedHat.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_package_requirements: 3 | - unzip 4 | - tar 5 | - rsync 6 | 7 | java_package_type: >- 8 | {{ java_tarball_install | ternary('tar.gz', 'rpm') }} 9 | 10 | 11 | rh_dist_repo_version: >- 12 | {{ (ansible_distribution == 'Amazon') | ternary('7', ansible_distribution_major_version) }} 13 | 14 | jdk_package_openjdk: >- 15 | {{ 'java-' + openjdk_package_rhel_versions|string 16 | + '-' + openjdk_package_rhel_spec|string }} 17 | 18 | java_default_path: >- 19 | {{ (java_distribution in ['zulu', 'corretto']) | ternary('/usr/lib/jvm', '/usr/java') }} 20 | java_corretto_folder: '{{ java_folder_ext_transport }}' 21 | 22 | java_default_corretto_path: /usr/lib/jvm 23 | 24 | java_folder_repo_transport: >- 25 | {{ 'java-' + openjdk_package_rhel_versions 26 | + '-openjdk-.+' + openjdk_arch_rhel 27 | | default(omit) }} 28 | -------------------------------------------------------------------------------- /vars/Suse.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_package_requirements: [] 3 | 4 | jdk_package_openjdk: "java-1_{{ java_major_version }}_0-openjdk-devel" 5 | 6 | java_folder_repo_transport: "java-1.{{ java_major_version }}.0-openjdk-1.{{ java_major_version }}.0" 7 | 8 | java_path: /usr/lib64/jvm 9 | 10 | openjdk_zypper_repo_url: https://download.opensuse.org/repositories/Java:/Factory/SLE_12_SP5/?ssl_verify=no 11 | -------------------------------------------------------------------------------- /vars/Windows.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_product_id_ver: 3 | 8: '{4A03706F-666A-4037-7777-5F2748764D10}' 4 | 11: '{26A5A3EF-92DC-5243-ABF9-00B12A3DF649}' 5 | 12: '{0D60E96D-0B74-55A5-ACA5-0F6786FDF256}' 6 | 7 | java_package_type: >- 8 | {{ java_tarball_install | ternary('zip', 'msi') }} 9 | 10 | checksum_alg: sha256 11 | 12 | transport_web_default: https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip 13 | 14 | java_download_default_path: '{{ ansible_env.TEMP }}' 15 | 16 | java_default_path: >- 17 | {{ (transport == 'chocolatey') | ternary(choco_path | default(omit), 'C:\Program Files\Java') }} 18 | 19 | java_default_corretto_path: C:\Program Files\Amazon Corretto 20 | 21 | java_artifact_basename: '{{ java_artifact | win_basename }}' 22 | 23 | java_corretto_folder: >- 24 | {{ (java_major_version|int == 8) 25 | | ternary(java_package + '1.' + java_major_version|string + '.0_' + java_minor_version|string, 26 | java_package ~ java_full_version|string) 27 | }} 28 | -------------------------------------------------------------------------------- /vars/default.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_package_requirements: [] 3 | 4 | java_default_path: /usr/java 5 | -------------------------------------------------------------------------------- /vars/java_distro_configs/adoptium_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | adoptium_api_page: https://api.adoptium.net/v3/ 3 | parts: >- 4 | {{ java_artifact_basename | default('undefined', true) 5 | | regex_findall('^OpenJ[DKRE]{1,2}[0-9]+U[\-]*([jdkre]+)' 6 | ~ '[\-_](x64)_(Linux|linux|windows)_(hotspot|openj9)' 7 | ~ '_([0-9]{1,2})[u_\.]{1}([^_]+)?(_\S+)?\.[t|z][\.argzip]+') 8 | | default([[]], true) 9 | | first 10 | | list }} 11 | 12 | java_minor_version: '{{ parts[5] | default("*") }}' 13 | java_os: '{{ parts[3] }}' 14 | java_arch: '{{ parts[1] | default("x64") }}' 15 | 16 | java_package_suffix: >- 17 | {{ (java_major_version == 13) | ternary('', java_major_version) }} 18 | 19 | java_jre_suffix: >- 20 | {{ (java_package == 'jdk') | ternary('', java_package) }} 21 | 22 | java_jre_regex_suffix: >- 23 | {{ (java_package == 'jdk') | ternary('[^-jre]$', '[jre]') }} 24 | 25 | adoptium_choco_folder: >- 26 | {{ java_package ~ '[-]*' ~ java_major_version|string ~ '.*' }} 27 | 28 | adoptium_folder: >- 29 | {{ (transport == 'chocolatey') | ternary(adoptium_choco_folder, java_def_folder_ext_transport) }} 30 | 31 | jdk_package: >- 32 | {{ 'adoptium-' + java_major_version|string+ '-' + adoptium_impl|string 33 | + ((java_package == 'jre') | ternary('-' + java_package, '')) }} 34 | 35 | java_folder_repo_transport: >- 36 | {{ 'adoptium-' ~ java_major_version|string ~ '-' ~ adoptium_impl|string 37 | ~ ((java_package == 'jre') | ternary('-' ~ java_package, '')) }} 38 | 39 | java_folder: >- 40 | {{ (not java_tarball_install|bool and (ansible_system == 'Linux')) 41 | | ternary(java_folder_repo_transport, adoptium_folder) }} 42 | 43 | choco_java_package: 'adoptium{{ java_package_suffix }}{{ java_jre_suffix }}' 44 | 45 | choco_path: 'C:\Program Files\AdoptOpenJDK' 46 | -------------------------------------------------------------------------------- /vars/java_distro_configs/dragonwell8_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | parts: >- 3 | {{ java_artifact_basename | default('undefined', true) 4 | | regex_findall('^(Alibaba_Dragonwell)_(8)\.([0-9]\.[0-9])-GA_(Linux)_(x64)(\.tar\.gz)') 5 | | default([[]], true) | first | list }} 6 | 7 | java_package: jdk 8 | 9 | java_minor_version: '{{ parts[2] | default("*") }}' 10 | java_os: '{{ parts[3] }}' 11 | java_arch: '{{ parts[4] | default("x64") }}' 12 | -------------------------------------------------------------------------------- /vars/java_distro_configs/openjdk_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | openjdk_root_page: https://jdk.java.net 3 | parts: >- 4 | {{ java_artifact_basename | default('undefined', true) 5 | | regex_findall('^.*(j[dkre]{2})-([0-9]+)\.?([0-9.]+)?[-_]([a-z]+)-(x64|i586).*') 6 | | default([[]], true) | first | list }} 7 | 8 | jdk_package: '{{ jdk_package_openjdk }}' 9 | java_package: '{{ parts[0] | default("jdk") }}' 10 | java_minor_version: '{{ parts[2] | default("*") }}' 11 | java_os: '{{ parts[3] }}' 12 | java_arch: '{{ parts[4] | default("x64") }}' 13 | 14 | java_package_suffix: >- 15 | {{ (java_major_version == 11) | ternary(java_major_version, '') }} 16 | 17 | choco_java_package: 'openjdk{{ java_package_suffix }}' 18 | 19 | choco_path: 'C:\Program Files\OpenJDK' 20 | 21 | # Variables for RHEL specific (example java-11-openjdk-devel.x86_64) 22 | # Define Centos arch specific for compatibility with oracle packages name 23 | openjdk_arch_rhel: '{{ (java_arch == "x64") | ternary("x86_64", "i686") }}' 24 | # java-11-openjdk.x86_64 is OpenJDK Runtime Environment 25 | # java-11-openjdk-devel.x86_64 : OpenJDK Development Environment 11 26 | # change variables for more compatibility jdk/jre 27 | openjdk_package_rhel_spec: >- 28 | {{ (java_package == 'jdk') 29 | | ternary('openjdk-devel.' + openjdk_arch_rhel, 30 | 'openjdk.' + openjdk_arch_rhel) 31 | }} 32 | # change java_major_version (if it 8) for rhel specific 1.8.0 33 | openjdk_package_rhel_versions: >- 34 | {{ (java_major_version|int <= 8) 35 | | ternary('1.' + java_major_version|string + '.0', 36 | java_major_version|string) 37 | }} 38 | 39 | java_folder_ext_transport: >- 40 | {{ ((java_minor_version | default('') | string).find('*') != -1) 41 | | ternary(java_package + '-' + java_major_version|string, 42 | java_def_folder_ext_transport) }} 43 | 44 | java_folder: >- 45 | {{ (not java_tarball_install | bool and (ansible_system == 'Linux')) 46 | | ternary(java_folder_repo_transport, java_folder_ext_transport) }} 47 | -------------------------------------------------------------------------------- /vars/java_distro_configs/oracle_java_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | # Urls for java security policy 3 | fallback_oracle_security_policy_artifacts: 4 | 6: http://download.oracle.com/otn-pub/java/jce_policy/6/jce_policy-6.zip 5 | 7: http://download.oracle.com/otn-pub/java/jce/7/UnlimitedJCEPolicyJDK7.zip 6 | 8: http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip 7 | 8 | # patch archive subfolder 9 | security_patch_folders: 10 | 6: jce 11 | 7: UnlimitedJCEPolicy 12 | 8: UnlimitedJCEPolicyJDK8 13 | 14 | # security policy path 15 | security_patch_path: >- 16 | {{ (java_package|string == 'jdk') 17 | | ternary(java_path + '/' + java_folder + '/jre/lib/security', 18 | java_path + '/' + java_folder + '/lib/security') 19 | }} 20 | 21 | parts: >- 22 | {{ java_artifact_basename 23 | | regex_findall('^.*(j[dkre]{2})-([0-9]+)[u.]([0-9.]+)[-_]([a-z]+)-(x64|i586)') 24 | | first | list }} 25 | 26 | java_package: >- 27 | {{ parts[0] | default('jdk') }} 28 | java_major_version: '{{ parts[1] }}' 29 | java_minor_version: '{{ parts[2] }}' 30 | java_os: '{{ parts[3] }}' 31 | java_arch: >- 32 | {{ parts[4] | default('x64') }} 33 | -------------------------------------------------------------------------------- /vars/java_distro_configs/sapjvm_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sapjvm_root_page: https://tools.hana.ondemand.com 3 | parts: >- 4 | {{ java_artifact_basename | default('undefined', true) 5 | | regex_findall('^(sapjvm)-([0-9]+)[u.]([0-9.]+)[-_]([a-z]+)-(x64|i586)') 6 | | default([[]], true) | first | list }} 7 | 8 | java_package: >- 9 | {{ parts[0] | default("jdk") }} 10 | 11 | java_minor_version: '{{ parts[2] }}' 12 | java_os: '{{ parts[3] }}' 13 | java_arch: '{{ parts[4] | default("x64") }}' 14 | -------------------------------------------------------------------------------- /vars/java_distro_configs/sapmachine_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sapmachine_root_page: https://github.com/SAP/SapMachine/releases/download/ 3 | sapmachine_api_page: https://api.github.com/repos/SAP/SapMachine/releases/tags/ 4 | 5 | java_sapmachine_release_page: >- 6 | {{ sapmachine_api_page|string + java_distribution|string + '-' 7 | + (java_minor_version == '*') | ternary(release_version|default ('')|string, 8 | java_major_version|string + '.' + java_minor_version|string) }} 9 | 10 | java_sapmachine_release_name: >- 11 | {{ java_distribution|string + '-' + java_package|string + '-' 12 | + (java_minor_version == '*') | ternary(release_version|default ('')|string, java_major_version|string + '.' + java_minor_version|string) 13 | + '_' + (ansible_system == 'Win32NT') | ternary('windows', ansible_system|lower ) + '-' + java_arch|string + '_bin' }} 14 | 15 | parts: >- 16 | {{ java_artifact_basename | default('undefined', true) 17 | | regex_findall('^.*(j[dkre]{2})-([0-9]+)\.?([0-9.]+)?[-_]([a-z]+)-(x64|i586).*') 18 | | default([[]], true) | first | list }} 19 | 20 | java_package: >- 21 | {{ parts[0] | default('jdk') }} 22 | 23 | java_minor_version: '{{ parts[2] | default("*") }}' 24 | java_os: '{{ parts[3] }}' 25 | java_arch: '{{ parts[4] | default("x64") }}' 26 | 27 | choco_java_package: 'sapmachine{{ java_major_version }}' 28 | 29 | choco_path: 'C:\Program Files\SapMachine' 30 | 31 | java_folder: '{{ java_package }}' 32 | -------------------------------------------------------------------------------- /vars/java_distro_configs/zulu_vars.yml: -------------------------------------------------------------------------------- 1 | --- 2 | zulu_api_page: https://api.azul.com/metadata/v1/ 3 | parts: >- 4 | {{ java_artifact_basename | default('undefined', true) 5 | | regex_findall('^(zulu)([0-9]+)\.([0-9.]+)-.+-([a-z]+)[_.](x64|i686|amd64|x86_64)') 6 | | default([[]], true) | first | list }} 7 | 8 | java_package: >- 9 | {{ parts[0] | default('jdk') }} 10 | 11 | java_minor_version: '{{ parts[2] | default("*") }}' 12 | java_os: '{{ parts[3] }}' 13 | java_arch: '{{ parts[4] | default("x64") }}' 14 | 15 | choco_java_package: 'zulu{{ java_major_version }}' 16 | 17 | java_folder_repo_transport: >- 18 | {{ java_package + '-' + java_major_version|string + '*' 19 | | default(omit) }} 20 | 21 | choco_path: 'C:\Program Files\Zulu' 22 | 23 | zulu_folder_ext_transport: >- 24 | {{ (transport == 'chocolatey') | ternary('', java_folder_ext_transport) }} 25 | 26 | zulu_folder: >- 27 | {{ (transport == 'chocolatey') | ternary('zulu-' + java_major_version|string, java_folder_ext_transport) }} 28 | 29 | java_folder: >- 30 | {{ (not java_tarball_install | bool and (ansible_system == 'Linux')) | ternary(java_folder_repo_transport, zulu_folder) }} 31 | -------------------------------------------------------------------------------- /vars/java_parts.yml: -------------------------------------------------------------------------------- 1 | --- 2 | java_package: >- 3 | {{ ((java_distribution == "dragonwell8") or (java_distribution == "corretto")) 4 | | ternary("jdk", parts[0]) | default("jdk") }} 5 | java_major_version: '{{ (java_distribution == "adoptium") | ternary(parts[4], parts[1]) }}' 6 | java_minor_version: '{{ (java_distribution == "adoptium") | ternary(parts[5], parts[2]) }}' 7 | java_os: '{{ parts[3] }}' 8 | java_arch: '{{ (java_distribution == "adoptium") | ternary(parts[1], parts[4] | default("x64")) }}' 9 | -------------------------------------------------------------------------------- /vars/main.yml: -------------------------------------------------------------------------------- 1 | --- 2 | github_api_page: https://api.github.com 3 | 4 | # vars file for java 5 | transport_web_default: https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz 6 | java_download_default_path: /tmp 7 | java_artifact: '{{ (file_downloaded|default({})).dest | default("", true) }}' 8 | java_artifact_basename: '{{ java_artifact | basename | default("", true) }}' 9 | jdk_package: '' 10 | 11 | java_full_version: >- 12 | {{ ( java_minor_version | default('') | string | length ) 13 | | ternary(java_major_version ~ '.' ~ java_minor_version, 14 | java_major_version) }} 15 | 16 | java_def_folder_ext_transport: >- 17 | {{ (java_major_version|int <= 8) 18 | | ternary(java_package + '1.' + java_major_version|string + '.0_' + java_minor_version|string, 19 | java_package + '-' + java_full_version|string) 20 | }} 21 | 22 | java_folder_ext_transport: '{{ java_def_folder_ext_transport }}' 23 | 24 | java_folder: '{{ java_folder_ext_transport }}' 25 | 26 | # Override the value of the variable in java_distro_configs 27 | # for specific java distribution if needed 28 | java_extra_package_requirements: [] 29 | --------------------------------------------------------------------------------