fernandrone.ansible_sdkman

Ansible 角色: fernandrone.ansible_sdkman

Galaxy 角色 下载量 Apache 2.0 许可证 构建状态

这是一个 Ansible 角色,执行以下功能:

  • 安装 SDKMAN
  • 安装/卸载 SDKMAN 管理的软件 候选项
  • 设置 SDK 版本默认值
  • 管理 SDKMAN 配置文件:/path/to/sdkman/etc/config
  • 刷新 SDKMAN 缓存

警告:Oracle 已逐步增加安装其 JDK 的难度,这影响了通过 SDKMAN 安装它们的能力。建议使用 OpenJDK,或者通过其他方式安装/管理 Oracle JDK。

要求

无。

角色变量

有关每个可重写变量的描述,请查看 defaults

依赖关系

无。

示例剧本

这是一个示例!

- hosts: servers
  roles:
    - role: fernandrone.ansible_sdkman
      sdkman_user: vagrant
      sdkman_group: vagrant
      sdkman_auto_answer: true
      sdkman_update: true
      sdkman_uninstall_packages:
        - { candidate: groovy, version: 1.8.9 }
      sdkman_install_packages:
        - { candidate: java, version: 8.0.202-zulu }
        - { candidate: gradle, version: '3.5' }
        - { candidate: gradle, version: 2.14.1 }
        - { candidate: maven, version: 3.5.0 }
        - { candidate: maven, version: 3.3.9 }
        # 如果希望 SDKMAN 知道通过 *不使用* SDKMAN 安装的包,使用此语法,例如 Oracle JDK
        - { candidate: java, version: 1.8.0-oracle, localpath: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk }
      sdkman_defaults:
        gradle: '3.5'
        maven: 3.3.9
        java: 8.0.202-zulu
      sdkman_flush_caches_before:
        - temp
      sdkman_flush_caches_after:
        - archives
        - broadcast
        - candidates
        - temp
      sdkman_offline_mode: false
      sdkman_update_alternatives:
        - candidate: java
          name: java
          link: /usr/bin/java
        - candidate: java
          name: javac
          link: /usr/bin/javac
      sdkman_fix_permissions: false

附加说明

如果要跳过任何需要提升权限的步骤(即 sudo 命令),该角色已将这些任务标记为 sdkman_privilege。在命令行上传递 --skip-tags 标志和此标签,以跳过您系统管理员可能已经完成的任何步骤(例如安装系统包)。

在 Alpine Linux 上测试此角色是一个艰难的过程。通过 SDKMAN 提供的较新 JDK 构建(>-11)与 Alpine 不兼容。建议通过 apk 包存储库安装 JDK/JRE。虽然如此,我目前不确定 SDKMAN 包在 Alpine 上的运行情况。结果可能会有所不同。_请您注意_。

许可证

Apache 2.0

作者信息

关于项目

An Ansible role that installs/manages SDKMAN

安装
ansible-galaxy install fernandrone.ansible_sdkman
许可证
apache-2.0
下载
75
拥有者
YAML Engineer. Likes Go.