gilcot.ojdk

开源Java开发工具包

这个角色是为了管理大多数操作系统中的开源Java开发工具包(OpenJDK)。

OpenJDK 是一个免费的开源 参考实现 Java平台标准版(J2SE),由 Java社区过程(JCP) 定义。 它采用 GNU通用公共许可证第2版加链接例外 ,包括:HotSpot 虚拟机 (JVM), 以及 javac(官方的Sun 编译器, 不是:ECJGCJJikes等。)

作为一个参考,它提供了预期的通用基础(其他 实现可能添加类或不止于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)

安装

创建或添加以下行到您的角色依赖文件:

- 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/falseyes/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系统进行部署。

贡献

  • 在Ansible Galaxy上对这个角色评分
  • 提交问题以帮助改善它
  • 请求将代码合并到代码中
  • 感谢作者(们):
关于项目

Ansible role to manage OpenJDK package

安装
ansible-galaxy install gilcot.ojdk
许可证
gpl-3.0
下载
111
拥有者