gilcot.ojdk
开源Java开发工具包
这个角色是为了管理大多数操作系统中的开源Java开发工具包(OpenJDK)。
OpenJDK 是一个免费的开源
参考实现
Java平台标准版(J2SE),由
Java社区过程(JCP) 定义。
它采用
GNU通用公共许可证第2版加链接例外
,包括:HotSpot 虚拟机
(JVM),
以及 javac
(官方的Sun 编译器,
不是:ECJ,
GCJ,
Jikes等。)
作为一个参考,它提供了预期的通用基础(其他 实现可能添加类或不止于J2SE……)因此,它与Oracle JDK有一些小的 差异 以及 发布模型 和 付费支持。
开始
本节介绍使角色运行所需的初始设置。
要求
此角色不依赖于其他角色。
此角色使用发行版的本地包管理器和配置的 仓库。
此角色适用于有构建的发行版(例如,查看 https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms 获取 几乎完整和最新的列表。)也请注意可用的 版本 可能根据您的发行版主版本而有所不同,编号也不同。
v6 | v7 | v8 | v9 | v10 | v11 | v12 | 发行版发布 |
---|---|---|---|---|---|---|---|
7 |
8 |
Alpine 3.3 / 3.4 / 3.5 / 3.6 / 3.7 / 3.8 /3.9 | |||||
7 |
8 |
9 |
Alpine edge | ||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
ALT Linux Sisyphus | ||||
7 |
8 |
10 |
|
Arch Linux | |||
1.6 .0 |
1.7 .0 |
1.8 .0 |
CentOS 6 | ||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
11 |
CentOS 7 | |||
6 |
7 |
Debian 7 (Wheezy) | |||||
7 |
Debian 8 (Jessie) | ||||||
8 |
Debian 9 (Stretch) | ||||||
8 |
11 |
Debian 10 (Buster) | |||||
8 |
11 |
12 |
Debian Sid | ||||
1.8 .0 |
9 |
11 |
... | Fedora 27 / 28 | |||
1.8 .0 |
... | 11 |
... | Fedora 29 / Rawhide | |||
(port) | (+port) |
8 (+port) |
FreeBSD 10 | ||||
(port) | (+port) |
8 (+port) |
11 |
FreeBSD 11 / 12 | |||
1.7 .0 |
Mageia 4.1 | ||||||
1.8 .0 |
Mageia 5.1 / 6.1 / Caudron | ||||||
7 |
8 |
NetBSD 7.0 / 7.1 / 7.2 | |||||
8 |
NetBSD 8.0 | ||||||
1.7 .0 |
1.8 .0 |
9 |
10 |
11 |
12 |
OpenMandriva Cooker | |
1.6 .0 |
1.7 .0 |
OpenMandriva Lx 2013.0 | |||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
OpenMandriva Lx 2014.2 | ||||
1.7 .0 |
1.8 .0 |
OpenMandriva Lx 3.0 | |||||
1_8 _0 |
10 |
11 |
openSUSE Leap 15.0 | ||||
1_7 _0 |
1_8 _0 |
openSUSE Leap 42.3 | |||||
1_8 _0 |
9 |
10 |
11 |
openSUSE Tumbleweed | |||
1.6 .0 |
ROSA 2012.1 / 企业桌面 | ||||||
1.7 .0 |
ROSA 2014.1 | ||||||
1.8 .0 |
ROSA 2016.1 | ||||||
(7-)7 |
8 |
Slackware 14.1/14.0/13.37/当前 | |||||
6-6 |
(7-)7 |
(8-)8 |
9-9 |
Slackware 14.2 | |||
6 |
7 |
Ubuntu 14.04 LTS (Trusty Thar) | |||||
8 |
9 |
Ubuntu 16.04 LTS (Xenial Xerus) | |||||
8 |
11 |
Ubuntu 18.04 LTS (Bionic Beaver) / 18.10 (Cosmic Cuttlefish) |
安装
创建或添加以下行到您的角色依赖文件:
- 从 GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- src: gilcot.openjdk
version: 1.0.0
name: openjdk
使用该文件,在您的控制主机中安装角色:
# $roles 指的是角色文件夹的路径,如果您没有使用默认路径
# $specs 是之前创建的要求文件
# 最后一个选项强制覆盖,有助于确保版本更改
ansible-galaxy install -p $roles -r $specs -f
使用
本节介绍如何在您的剧本中集成该角色。
变量
此角色使用非常少的变量:
ojdk_version
这是要安装的JDK版本。
请注意,这既不是软件包版本,也不是软件包名称中的数字!请参见 上表
此值是必需的,必须是整数。
ojdk_state
这是所需的 _状态_;因此是必需的。它可以是:
present
:如果尚未安装,则安装该软件包,absent
:如果仍然存在,则移除该软件包,- 所有其他由底层模块接受的值(例如,
latest
以将软件包升级到最新的修复发布)。
ojdk_gpg_uncheck
这是一个布尔值(no
/false
或 yes
/true
)与某些
包管理器一起使用,以禁用签名/证书检查。这在某些罕见情况下禁用检查可能会很有用。
ojdk_repository
后者被一些包管理器使用,以设置额外的 仓库。此字符串格式(URL或路径)及其含义依赖于操作系统。
发行版 | 必需 | 用于 |
---|---|---|
AIX | ✓ | 带有AIX软件包的路径(安装所需) |
基于Debian | ✗ | 找到所需OpenJDK版本的备用仓库的URL |
FreeBSD | ✗ | 重写默认端口源目录(软件包是从源代码构建的,因为默认情况下没有二进制文件) |
HP-UX | ✓ | 从中安装或升级软件包的仓库 |
Mac OSX | ✗ | 包文件的绝对路径 |
OpenBSD | ✗ | 重写默认端口源目录(软件包是从源代码构建的,因为默认情况下没有二进制文件) |
基于Red Hat | ✗ | 找到所需OpenJDK版本的备用仓库的URL |
Solaris | ✓ | 从中安装软件包的位置(必须是 pkgadd 的可接受路径或在 /etc/opt/csw/pkgutil.conf 中找到的有效仓库路径) |
Windows | ✗ | 包文件的绝对路径,或者是Chocolatey源的备用URL或带有.nupkg 文件的文件夹路径 |
请注意,对于某些发行版,例如CentOS和Ubuntu,在调用此角色之前,添加仓库(无论是手动还是通过前面的任务)可能会很有用。此参数进行非常基本的设置。
条件
由于它会向系统添加或删除软件包,因此使用提升的权限, 您必须相应地调用角色。
此角色还使用操作系统系列和发行版(名称和主要版本)事实。 因此,要么允许收集事实,要么以某种方式提供事实。
示例
现在,您已经准备好在您的剧本中使用它。
请注意,操作应作为 root 用户执行
(这就是为何在以下示例中使用提升权限的原因。)
在我的servlets组上安装JDK12(默认状态):
- hosts: servlets
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 12 }
在虚拟主机上移除JDK5(示例目的,因为这并不存在):
- hosts: dummy
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 5, ojdk_state: absent }
(同样,使用纯YAML语法)
- hosts: dummy
become: yes
gather_facts: yes
roles:
- role: openjdk
ojdk_version: 5
ojdk_state: absent
好了,现在,如果您的控制主机的清单是这样的:
[dummies]
dummy
[olders]
foo
bar
[newers]
baz
qix
[servlets:children]
olders
newers
[dummies:vars]
ojdk_version = 5
ojdk_state = absent
[olders:vars]
ojdk_version = 8
[newers:vars]
ojdk_version = 11
[servlets:vars]
ojdk_state = present
那么您的剧本将变得简单:
- hosts: dummy
become: yes
roles:
- openjdk
其他
许可证
该角色采用 GNU GPLv3 (见 LICENSE 文件)
作者
gilcot 是自由软件的坚定捍卫者,
并且只依靠Ansible系统进行部署。