community.general.alternatives 模块 – 管理常用命令的替代程序
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,请参阅 要求 获取详细信息。
要在 playbook 中使用它,请指定: community.general.alternatives
。
概要
使用“update-alternatives”工具管理符号链接。
当安装了多个程序但提供类似功能(例如,不同的编辑器)时很有用。
要求
以下是执行此模块的主机上所需的条件。
update-alternatives
参数
参数 |
注释 |
---|---|
family 将类似的替代项分组。此选项仅在基于 RHEL 的发行版上可用。 |
|
指向实际可执行文件的符号链接的路径。 此选项在基于 RHEL 的发行版中始终是必需的。在基于 Debian 的发行版中,当替代项 |
|
链接的通用名称。 |
|
链接应指向的实际可执行文件的路径。 |
|
替代项的优先级。如果创建时未给出优先级,则使用 |
|
选项
|
|
子命令列表。 每个子命令都需要一个 name、一个 link 和一个 path 参数。 子命令也称为“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