我通常会使用以下代码安装带有Ansible的Java 8:
---
- name: Install add-apt-repostory
become: yes
apt: name=software-properties-common state=latest
- name: Add Oracle Java Repository
become: yes
apt_repository: repo='ppa:webupd8team/java'
- name: Accept Java 8 License
become: yes
debconf: name='oracle-java8-installer' question='shared/accepted-oracle-license-v1-1' value='true' vtype='select'
- name: Install Oracle Java 8
become: yes
apt: name={{item}} state=latest
with_items:
- oracle-java8-installer
- ca-certificates
- oracle-java8-set-default
参考。原作者的以下堆叠溢出问题。
How to install Oracle Java 8 using Ansible
但是,由于Oracle JDK许可证已于2019年4月16日更改了版本。此PPA已停止使用,我的ansible代码现在在尝试安装Java 8时返回以下错误...
包oracle-java8-installer不可用,但是由另一个包引用。这可能意味着包丢失,已被淘汰或仅可从其他来源获得
E:包'oracle-java8-installer'没有安装候选者
既然已经停止使用PPA并且Oracle许可证已经更改,有谁知道如何使用Ansible自动安装Java 8?
在我的情况下,我注册了oracle帐户,然后将.rpm / .tar.gz软件包直接从Oracle下载到我的一台PC中。我将文件传输到ansible控制服务器并使用ansible playbook使用复制模块将文件分发到其他远程服务器。最后,我编写了ansible角色,使用以下方法在本地提取和安装它们。
CentOS:您可以轻松使用yum来安装rpm包。
Ubuntu:按照以下步骤操作。 https://www.vultr.com/docs/how-to-manually-install-java-8-on-ubuntu-16-04
这不是一个好方法,因为您需要将安装程序传输到每个服务器。我还在寻找一种方法来直接从oracle网站上下载脚本,但没有办法在没有身份验证的情况下进行操作。
您需要下载JDK(Java Devolpment Kit)并安装。有一个名为readme的文件或类似文本格式的文件。然后复制文本并粘贴。您可以在互联网上轻松找到此类信息。