srsp.oracle-java

srsp.oracle-java 用于 Ansible Galaxy

构建状态

概述

Ansible Galaxy中的角色名称: srsp.oracle-java

这个 Ansible 角色与 Oracle JDK 相关的功能包括:

这个角色基于 williamyeh.oracle-java,但我希望支持更近期的 Java 版本,因此决定放弃对旧版本的支持。

如果你更喜欢 OpenJDK,可以试试 geerlingguy.java

从 Oracle 自动下载

注意: 在以前,这个角色会直接从 Oracle 网站下载所有 JDK。Oracle 逐步削减了这一可能性。现在,下载任何版本的 JDK 8 需要Oracle的登录。JDK 11 只能下载一个较旧的版本。而 JDK 13 目前可以下载。

由于每次 Oracle 发布新 Java 版本时这种情况都可能变化,所以你不应该依赖它。我建议手动下载 JDK,然后通过这个角色安装。

角色变量

基本用法

这将尝试从 Oracle 下载 JDK 并安装。

- hosts: all

  roles:
    - srsp.oracle-java

  vars:
    # 你应该设置这个:
    - java_version: 13
    # 你可以省略这个(角色会使用它知道的最新版本):
    - java_subversion: 0.2

示例

安装手动下载的 JDK

将下载的 JDK 文件放入 files 目录,并将 java_download_from 设置为 local:

- hosts: all

  roles:
    - srsp.oracle-java

  vars:
    - java_version: 8
    - java_subversion: 201
    - java_download_from: local

从你的镜像安装

- hosts: all

  roles:
    - srsp.oracle-java

  vars:
    - java_version: 8
    - java_subversion: 172
    - java_download_from: mirror
    - java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"

将 JDK 下载到本地机器(预取)

如果你只想在本地机器上获取 JDK(例如用于分子测试或上传到公司内网镜像),可以使用这个角色中的 prefetch.yml 剧本:

ansible-playbook prefetch.yml

根据你的需要更改剧本。

如果从命令行运行

ansible-playbook --ask-become-pass playbook.yml

可选变量

用户可配置的默认值:

# Java 版本
java_version: 8

# Java 子版本
java_subversion: 201

# 是否直接从 Oracle 下载 Java
# - oracle: 从 Oracle 网站动态下载。
# - mirror: 从在 'java_mirror' 定义的 URL 下载。
# - local: 从控制机器上的角色或剧本的 `files` 目录复制。
java_download_from: oracle

# 根据 'java_download_from' 的值会发生不同的事情:
# - oracle: 你不需要设置。它会预填充值为 Oracle 下载镜像。
# - mirror: 你需要设置要下载的镜像。必须设置完整的 URL,包括文件,如下例所示。如果你还要 JCE,需要同时设置 'jce_zip_url'。
# - local: 不使用 'java_mirror',因此该值被忽略。
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"

# 是否删除暂时下载的文件?
java_remove_download: true

# 是否设置 $JAVA_HOME?
java_set_java_home: true

# 安装 JCE?
java_install_jce: false

关于其他可配置选项,可以阅读 tasks/set-role-variables.yml 文件;例如,查看支持的 java_version/java_subversion 组合。

我想安装一个你还不支持的 JDK!

没问题!你只需在变量 java_buildjdk_tarball_hash 中指定相应的 Java 构建号,以及 java_versionjava_subversion,例如:

# 文件: playbook.yml
- hosts: all

  roles:
    - srsp.oracle-java

  vars:
    - java_version: 8
    - java_subversion: 141
    - java_build: 15
    - jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7

许可证

根据 Apache 许可证 V2.0 进行许可。详细信息见 LICENSE 文件

开发

测试

测试使用 molecule。由于这个角色需要 Oracle 的 JDK,分子测试容器将挂载 /tmp/java,因此 JDK 保留在本地机器上,并在测试容器销毁后仍可用。你还可以预取安装文件并将其放入 /tmp/java

这将针对默认场景执行完整的测试周期:

molecule test

如果你想在某个特定的发行版上工作,可以使用如下命令:

molecule converge --scenario-name opensuse15

如果你想测试所有内容,可以输入:

molecule test --all

这会花费一些时间。

关于项目

Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX

安装
ansible-galaxy install srsp.oracle-java
许可证
apache-2.0
下载
186.3k
拥有者
Doing software things @holisticon