professormanhattan.java

Java

出自 Megabyte Labs



一个可以在几乎任何平台上安装Java的Ansible角色


目录

概述

这个仓库是一个 Ansible 角色的家,它可以在几乎任何平台上安装Java。 Java 是一种面向对象的编程语言,旨在尽可能减少实现依赖。

特点

确保安装Java:

  • 在Windows上使用Chocolatey安装Java
  • 确保设置JAVA_HOME变量
  • 在macOS、Linux和Windows系统上安装Java
  • 确保Java添加到PATH

Windows优化:

  • 从Windows开始菜单中删除Java文件夹

快速开始

想要安装Java而无需处理 Ansible 吗?只需根据你的操作系统运行以下命令:

Linux/macOS:

curl -sS https://install.doctor/java | bash

Windows:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/java?os=win'))

重要提示: 在运行上述命令之前,你应该直接访问URL以确保代码是合法的。我们已知是安全的,但在你的计算机上运行任何脚本之前,你应该先检查它。

你也可以查看 **Install Doctor**。这是我们创建的一个应用程序,可以通过一行命令安装任何Ansible角色。它还有其他一些方便的功能,比如在不需要密码的情况下随意安装二进制文件。但是如果你想将此角色融入Ansible剧本中(并自定义设置),请继续阅读下面的内容。

支持的操作系统

下面的图表显示了我们已经在其上测试该角色的操作系统。这个列表是使用位于 molecule/ 文件夹中的Ansible Molecule测试自动生成的。我们有CI逻辑来自动处理Windows、macOS、Ubuntu、Fedora、CentOS、Debian和Archlinux的测试。如果你的操作系统没有列出,但它是我们测试的系统的变种(例如,Debian或RedHat的变种),那么这个角色可能仍然可以工作。

操作系统系列 操作系统版本 状态 幂等 测试在

幂等是什么意思? 幂等的意思是,如果你连续两次运行该角色,则第二次运行时,系统不会发生变化。

我们花了很多时间来完善我们的CI配置和构建工具。如果你想了解更多关于我们如何完善我们的过程,你可能会对我们的 Ansible通用文件Ansible文档 仓库感兴趣。有关详细信息,请参阅 CONTRIBUTING.md 指南。

依赖

我们的角色大多数依赖于 Ansible Galaxy 集合。我们的一些项目还依赖于在Ansible Galaxy上发布的其他角色和集合。在运行此角色之前,你需要安装集合和角色依赖项,以及Python要求,运行:

if type poetry &> /dev/null; then poetry install --no-root; else pip3 install -r .config/assets/requirements.txt; fi
ansible-galaxy install -r requirements.yml

另外,如果你对Ansible不太熟悉,并且不介意安装开发要求,你可以简单地运行 bash .config/scripts/start.sh。这是一种确保一切正常工作的简单方法。

Python

尽管在标准机器上运行此剧本的唯一必要工具是Ansible(一个Python包),我们包含了多个其他Python依赖项,这些依赖项是针对特殊用例和开发所需的。下面的表格详细说明了这些包:

包名 描述 是否必需
ansible 一种配置管理系统,可以远程配置计算机
✔️
docker 使得使用Ansible配置Docker容器的能力
✔️
python-vagrant 必需用于配置Vagrant虚拟机
✔️
pywinrm 必需用于配置使用WinRM的Windows机器
✔️
ansible-lint Ansible文件的Linting工具
ansibler 用于生成高级文档的自定义工具(例如,它生成兼容性图表和其他一些图表)
black Python文件的自动格式化工具,包括项目使用Python测试脚本时
blocklint Linting工具,防止某些单词进入代码库
flake8 Python Linter,用于报告Python语法和样式错误
mod-ansible-autodoc 自定义分支的 ansible-autodoc,允许我们根据角色YAML文件中的注释自动生成文档
molecule Ansible的测试框架
molecule-docker Molecule插件,用于配置Docker容器
molecule-vagrant Molecule插件,用于配置Vagrant虚拟机
pre-commit-hooks 有助于linting的工具套件
proselint 用于生成英语改进的Linting工具(用于改进文档)
yamllint 用于YAML文件的Linting工具,确保使用正确的语法和样式

Galaxy角色

虽然我们的大多数角色没有依赖关系,但在某些情况下,必须在逻辑继续之前安装另一个角色。在剧本开始时,列在 meta/main.yml 中的Ansible Galaxy角色依赖项将运行。这些依赖项被配置为每个剧本只运行一次。如果你在剧本中包含了多个我们具有共同依赖关系的角色,那么在第一次运行之后,依赖项安装将被跳过。我们的一些角色也直接使用任务文件中的辅助角色,帮助保持我们的 主要剧本(加油站) DRY。

requirements.yml 文件包含此角色所需的Ansible Galaxy依赖项的完整列表(即 meta/main.yml 角色依赖项、辅助角色、集合等)。为了你的方便,下面是角色依赖项的快速描述列表:

角色依赖项

Galaxy集合

此角色依赖于多个Ansible Galaxy集合。集合及其源的链接如下所示。

  • chocolatey.chocolatey Ansible Galaxy徽章
  • community.general Ansible Galaxy徽章
  • google.cloud Ansible Galaxy徽章

示例剧本

安装依赖项后,你只需将角色添加到你的主剧本中。该角色处理become行为,因此你可以简单地将角色添加到你的剧本中,而不必担心不应以root身份运行的命令:

- hosts: all
  roles:
    - professormanhattan.java

如果你将这个角色融入一个已有的剧本中,那么最好是将 pyproject.tomlrequirements.yml 中概述的要求复制到剧本根目录中的相应文件中,这样在将来的使用中你只需关心安装一组要求。请注意,pyproject.toml中的依赖项可以移动到更传统的 requirements.txt 中,如果这是你当前用于跟踪Python依赖项的方式。

真实世界示例

你可以在我们的主要剧本(又名 加油站)中找到一个包含此角色的剧本示例。这个剧本是学习如何使用Ansible的一个很好示例。它还结合了许多经过深思熟虑的构建工具,更高级的Ansible用户会欣赏它。而那些对Ansible不太感兴趣的人也可以从中受益,因为它基本上可以将你的计算机(和网络)变成终极开发环境。总之,这是一个开发人员应该了解的很酷的项目!

贡献

欢迎贡献、问题和功能请求!欢迎查看 问题页面。如果你想要贡献,请查看 贡献指南

赞助

亲爱的优秀人士,

我出于热爱而创建开源项目。虽然我有工作、住所和尽可能多的快餐,但能得到社区的认可还是很不错的,因为我在这些项目上投入了很多时间和金钱。请考虑赞助我!谁知道呢?也许我能辞去工作,全职发布开源项目。

诚挚的,

Brian Zalewski

Open Collective赞助商 GitHub赞助商 Patreon

推荐项目

以下是我们利用的服务列表,通过我们的特殊链接注册可享受特别优惠:

MailChimp DigitalOcean推荐徽章

许可证

版权 © 2020-2021 Megabyte LLC。本项目采用 MIT 许可证。

安装
ansible-galaxy install professormanhattan.java
许可证
other
下载
1.2k
拥有者
Often imitated, never duplicated