community.general.alternatives 模块 – 管理常用命令的替代程序
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible 包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用:ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,请参阅 要求了解详情。
要在剧本中使用它,请指定:community.general.alternatives。
摘要
- 使用“update-alternatives”工具管理符号链接。 
- 当安装了多个程序但提供类似功能(例如不同的编辑器)时非常有用。 
要求
执行此模块的主机需要以下要求。
- update-alternatives 
参数
| 参数 | 注释 | 
|---|---|
| family 将相似的替代项分组。此选项仅在基于 RHEL 的发行版上可用。 | |
| 应指向实际可执行文件的符号链接的路径。 此选项在基于 RHEL 的发行版中始终是必需的。在基于 Debian 的发行版中,当替代项  | |
| 链接的通用名称。 | |
| 链接应指向的实际可执行文件的路径。 | |
| 替代项的优先级。如果创建时未指定优先级,则使用  | |
| 
 
 
 
 选项 
 | |
| 子命令列表。 每个子命令都需要一个名称、一个链接和一个路径参数。 子命令也称为“slaves”(从属)或“followers”(跟随者),具体取决于 alternatives 的版本。 | |
| 应指向实际子命令可执行文件的符号链接的路径。 | |
| 子命令的通用名称。 | |
| 子命令应指向的实际可执行文件的路径。 | 
属性
| 属性 | 支持 | 描述 | 
|---|---|---|
| 支持:完全支持 | 可以在  | |
| 支持:完全支持 | 在 diff 模式下,将返回有关已更改内容(或可能需要在  | 
示例
- name: Correct java version selected
  community.general.alternatives:
    name: java
    path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
- name: Select java-11-openjdk.x86_64 family
  community.general.alternatives:
    name: java
    family: java-11-openjdk.x86_64
  when: ansible_os_family == 'RedHat'
- name: Alternatives link created
  community.general.alternatives:
    name: hadoop-conf
    link: /etc/hadoop/conf
    path: /etc/hadoop/conf.ansible
- name: Make java 32 bit an alternative with low priority
  community.general.alternatives:
    name: java
    path: /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java
    priority: -10
- name: Install Python 3.5 but do not select it
  community.general.alternatives:
    name: python
    path: /usr/bin/python3.5
    link: /usr/bin/python
    state: present
- name: Install Python 3.5 and reset selection to auto
  community.general.alternatives:
    name: python
    path: /usr/bin/python3.5
    link: /usr/bin/python
    state: auto
- name: keytool is a subcommand of java
  community.general.alternatives:
    name: java
    link: /usr/bin/java
    path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
    subcommands:
      - name: keytool
        link: /usr/bin/keytool
        path: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/keytool
