frieder.oraclejdk
ansible-role-oraclejdk
一个用于安装 Oracle JDK 的 Ansible 角色。
平台支持
概述
此 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 |
|
此属性允许定义应为 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