frieder.oraclejdk

ansible-role-oraclejdk

一个用于安装 Oracle JDK 的 Ansible 角色。

平台支持

Platform Platform Platform Platform Platform Platform Platform

OracleJDK OracleJDK

概述

此 Ansible 角色用于在目标主机上安装 Oracle JDK 和 Java 加密扩展(可选)。不支持 OpenJDK。已在以下 Linux 发行版上测试了 Oracle JDK 8u144/8u151 和 JDK 9u181/9.0.1。

  • Ubuntu 16.04
  • Debian 9
  • RHEL 7.4
  • CentOS 7.3
  • Fedora 26
  • SLE 12 SP2
  • openSUSE 42.2

依赖

Ansible 版本 >= 2.x(已在 2.3.2.0 和 2.4.0.0 中测试)。

此外,目标主机上需要安装以下软件包:

  • tar - 始终需要用来解压 JDK tar.gz 存档
  • unzip - 仅在需要安装 JDK8 的 JCE 时需要

安装

要使用此角色,必须首先从 Ansible Galaxy 下载。要安装角色,请在您的 Ansible 控制机器上执行以下命令。有关更多信息,请参阅 官方文档

ansible-galaxy install frieder.oraclejdk

上面的命令将始终从 Galaxy 拉取最新版本。另一个选项是从 Github 拉取角色并定义一个特定的发布版本进行下载。这将允许更好地控制所使用的角色版本。创建一个 requirements.yml 文件并将以下内容放入其中。

---
- name: frieder.oraclejdk
  src: https://github.com/frieder/ansible-role-oraclejdk
  version: 2.0.0

接下来,您可以执行 ansible-galaxy install -r ./requirements.yml --ignore-errors,它将下载此列表中定义的所有依赖项。--ignore-errors 将确保即使某些依赖项已下载,整个列表也会被处理。可以在 这里 找到可能的 requirements.yml 条目的良好概述。

角色变量

所有角色变量都在 defaults/main.yml 中定义。可以在剧本中覆盖这些值(请参见底部的示例)。

变量 默认值 描述
oraclejdk_license_accept false 安装 JDK 时必须设置为 true,否则剧本将失败。卸载 JDK 时不需要。
oraclejdk_state present 定义是否将 JDK 添加到或从目标主机中移除。可能的值为 [present,absent]
oraclejdk_cleanup true 安装后删除所有临时文件/文件夹(本地和远程)。设置为 true 时将导致“已更改”剧本执行。
oraclejdk_dl_dir /tmp/oraclejdk 下载/复制/解压缩存档的文件夹(本地和远程)。
oraclejdk_home 根据 oraclejdk_state 的值,此属性取不同的值。当为 present 时,它将为指向 JAVA_HOME 的字符串。当为 absent 时,它将取包含应删除的旧 JDK 位置的列表。在这种情况下,请提供至少一个条目的列表。
oraclejdk_profile_file /etc/profile.d/java.sh 角色将在此文件中设置 JAVA_HOME 和 PATH 的导出。
oraclejdk_cookie Cookie:oraclelicense=accept-securebackup-cookie 从 oracle.com 自动下载所需的 Cookie。许可证检查使用不同的变量进行。
oraclejdk_url JDK 存档在 oracle.com 或本地公司存储库的 URL(建议使用)。
oraclejdk_url_user 如果需要简单的 HTTP 验证,可以在此提供用户名。
oraclejdk_url_pass 如果需要简单的 HTTP 验证,可以在此提供密码。
oraclejdk_checksum JDK 存档的 SHA256 校验和。用于验证下载文件是否有效。要禁用此检查,只需提供空的校验和值 (oraclejdk_checksum: '')。
oraclejdk_sethome true 设置为 true 时将更新全局变量 JAVA_HOME,以指向 JDK 的安装目录,并将二进制文件添加到 PATH 变量。同时请查看 oraclejdk_profile_file 变量。
oraclejdk_alternative_upd true 设置为 true 时,将通过 (update-alternatives --config java) 将当前 JDK 设置为 Java 的替代项。
oraclejdk_alternative_prio 1 用于 update-alternatives 命令的优先级。优先级最高的 JDK 获胜。
oraclejdk_alternative_items
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
此属性允许定义应为 JDK 配置的替代项类型。
oraclejdk_jce_install false 设置为 true 时,将安装并将最新的 Java 加密扩展 (JCE) 添加到 JDK。请注意,JDK9 默认启用无限密钥强度,无需额外操作。有关更多信息,请参考 security-dev 邮件列表
oraclejdk_jce_name UnlimitedJCEPolicyJDK8 仅限 JDK8。JCE 存档内文件夹的名称。
oraclejdk_jce_url 仅限 JDK8。JCE 存档在 oracle.com 或本地公司存储库的 URL(建议使用)。
oraclejdk_jce_checksum 仅限 JDK8。JCE 存档的 SHA256 校验和。要禁用此检查,只需提供空的校验和值 (oraclejdk_jce_checksum: '')。

示例剧本

以下是一些如何在 Ansible 剧本中使用此角色的示例。

JDK8 和 JDK9 一起安装,为 JDK8 设置家目录,为两个 JDK 更新不同的替代项优先级

- hosts: jdk
  pre_tasks:
  - name: 安装所需软件包(127.0.0.1)
    delegate_to: 127.0.0.1
    run_once: true
    package:
      name: '{{ item }}'
      state: present
    with_items:
    - tar
    - unzip
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_sethome: false
    oraclejdk_alternative_prio: 100
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8u151
    oraclejdk_alternative_prio: 200
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK8 最小配置

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8_151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'

JDK8 带 JCE

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK8 完整配置

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_cleanup: true
    oraclejdk_dl_dir: /tmp/java_download
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_sethome: true
    oraclejdk_alternative_upd: true
    oraclejdk_alternative_prio: 123
    oraclejdk_alternative_items:
    - jar
    - java
    - javac
    - jcmd
    - jconsole
    - jmap
    - jps
    - jstack
    - jstat
    - jstatd
    oraclejdk_profile_file: /etc/profile.d/java.sh
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK9

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'

JDK9 无校验和检查

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''

JDK9 添加新 JDK,移除旧 JDK

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''
  - role: frieder.oraclejdk
    oraclejdk_state: absent
    oraclejdk_home: 
    - /opt/java/jdk9.0.1
    - /opt/java/java-8-151
关于项目

Ansible role to install Oracle JDK 8/9

安装
ansible-galaxy install frieder.oraclejdk
许可证
mit
下载
113
拥有者